OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 cr.define('cloudprint', function() { | 5 cr.define('cloudprint', function() { |
6 'use strict'; | 6 'use strict'; |
7 | 7 |
8 /** Namespace which contains a method to parse cloud destinations directly. */ | 8 /** Namespace which contains a method to parse cloud destinations directly. */ |
9 function CloudDestinationParser() {}; | 9 function CloudDestinationParser() {}; |
10 | 10 |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
49 ANDROID: 'ANDROID_CHROME_SNAPSHOT', | 49 ANDROID: 'ANDROID_CHROME_SNAPSHOT', |
50 DOCS: 'DOCS', | 50 DOCS: 'DOCS', |
51 IOS: 'IOS_CHROME_SNAPSHOT' | 51 IOS: 'IOS_CHROME_SNAPSHOT' |
52 }; | 52 }; |
53 | 53 |
54 /** | 54 /** |
55 * Parses a destination from JSON from a Google Cloud Print search or printer | 55 * Parses a destination from JSON from a Google Cloud Print search or printer |
56 * response. | 56 * response. |
57 * @param {!Object} json Object that represents a Google Cloud Print search or | 57 * @param {!Object} json Object that represents a Google Cloud Print search or |
58 * printer response. | 58 * printer response. |
59 * @param {!print_preview.Destination.AuthType} authType The authentication | 59 * @param {!print_preview.Destination.Origin} origin The origin of the |
60 * type used to find printer. | 60 * response. |
61 * @return {!print_preview.Destination} Parsed destination. | 61 * @return {!print_preview.Destination} Parsed destination. |
62 */ | 62 */ |
63 CloudDestinationParser.parse = function(json, authType) { | 63 CloudDestinationParser.parse = function(json, origin) { |
64 if (!json.hasOwnProperty(CloudDestinationParser.Field_.ID) || | 64 if (!json.hasOwnProperty(CloudDestinationParser.Field_.ID) || |
65 !json.hasOwnProperty(CloudDestinationParser.Field_.TYPE) || | 65 !json.hasOwnProperty(CloudDestinationParser.Field_.TYPE) || |
66 !json.hasOwnProperty(CloudDestinationParser.Field_.DISPLAY_NAME)) { | 66 !json.hasOwnProperty(CloudDestinationParser.Field_.DISPLAY_NAME)) { |
67 throw Error('Cloud destination does not have an ID or a display name'); | 67 throw Error('Cloud destination does not have an ID or a display name'); |
68 } | 68 } |
69 var id = json[CloudDestinationParser.Field_.ID]; | 69 var id = json[CloudDestinationParser.Field_.ID]; |
70 var tags = json[CloudDestinationParser.Field_.TAGS] || []; | 70 var tags = json[CloudDestinationParser.Field_.TAGS] || []; |
71 var connectionStatus = | 71 var connectionStatus = |
72 json[CloudDestinationParser.Field_.CONNECTION_STATUS] || | 72 json[CloudDestinationParser.Field_.CONNECTION_STATUS] || |
73 print_preview.Destination.ConnectionStatus.UNKNOWN; | 73 print_preview.Destination.ConnectionStatus.UNKNOWN; |
74 var optionalParams = { | 74 var optionalParams = { |
75 tags: tags, | 75 tags: tags, |
76 isOwned: arrayContains(tags, CloudDestinationParser.OWNED_TAG_), | 76 isOwned: arrayContains(tags, CloudDestinationParser.OWNED_TAG_), |
77 lastAccessTime: parseInt( | 77 lastAccessTime: parseInt( |
78 json[CloudDestinationParser.Field_.LAST_ACCESS], 10) || Date.now(), | 78 json[CloudDestinationParser.Field_.LAST_ACCESS], 10) || Date.now(), |
79 isTosAccepted: (id == print_preview.Destination.GooglePromotedId.FEDEX) ? | 79 isTosAccepted: (id == print_preview.Destination.GooglePromotedId.FEDEX) ? |
80 json[CloudDestinationParser.Field_.IS_TOS_ACCEPTED] : null | 80 json[CloudDestinationParser.Field_.IS_TOS_ACCEPTED] : null |
81 }; | 81 }; |
82 var cloudDest = new print_preview.Destination( | 82 var cloudDest = new print_preview.Destination( |
83 id, | 83 id, |
84 CloudDestinationParser.parseType_( | 84 CloudDestinationParser.parseType_( |
85 json[CloudDestinationParser.Field_.TYPE]), | 85 json[CloudDestinationParser.Field_.TYPE]), |
86 authType, | 86 origin, |
87 json[CloudDestinationParser.Field_.DISPLAY_NAME], | 87 json[CloudDestinationParser.Field_.DISPLAY_NAME], |
88 arrayContains(tags, CloudDestinationParser.RECENT_TAG_) /*isRecent*/, | 88 arrayContains(tags, CloudDestinationParser.RECENT_TAG_) /*isRecent*/, |
89 connectionStatus, | 89 connectionStatus, |
90 optionalParams); | 90 optionalParams); |
91 if (json.hasOwnProperty(CloudDestinationParser.Field_.CAPABILITIES)) { | 91 if (json.hasOwnProperty(CloudDestinationParser.Field_.CAPABILITIES)) { |
92 cloudDest.capabilities = /*@type {!print_preview.Cdd}*/ ( | 92 cloudDest.capabilities = /*@type {!print_preview.Cdd}*/ ( |
93 json[CloudDestinationParser.Field_.CAPABILITIES]); | 93 json[CloudDestinationParser.Field_.CAPABILITIES]); |
94 } | 94 } |
95 return cloudDest; | 95 return cloudDest; |
96 }; | 96 }; |
(...skipping 14 matching lines...) Expand all Loading... |
111 } else { | 111 } else { |
112 return print_preview.Destination.Type.GOOGLE; | 112 return print_preview.Destination.Type.GOOGLE; |
113 } | 113 } |
114 }; | 114 }; |
115 | 115 |
116 // Export | 116 // Export |
117 return { | 117 return { |
118 CloudDestinationParser: CloudDestinationParser | 118 CloudDestinationParser: CloudDestinationParser |
119 }; | 119 }; |
120 }); | 120 }); |
OLD | NEW |