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 |
11 /** | 11 /** |
12 * Enumeration of cloud destination field names. | 12 * Enumeration of cloud destination field names. |
13 * @enum {string} | 13 * @enum {string} |
14 * @private | 14 * @private |
15 */ | 15 */ |
16 CloudDestinationParser.Field_ = { | 16 CloudDestinationParser.Field_ = { |
17 CAPABILITIES: 'capabilities', | 17 CAPABILITIES: 'capabilities', |
18 CONNECTION_STATUS: 'connectionStatus', | 18 CONNECTION_STATUS: 'connectionStatus', |
19 DESCRIPTION: 'description', | 19 DESCRIPTION: 'description', |
(...skipping 29 matching lines...) Expand all 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.Origin} origin The origin of the | 59 * @param {!print_preview.DestinationOrigin} origin The origin of the |
60 * response. | 60 * response. |
61 * @param {string} account The account this destination is registered for or | 61 * @param {string} account The account this destination is registered for or |
62 * empty string, if origin != COOKIES. | 62 * empty string, if origin != COOKIES. |
63 * @return {!print_preview.Destination} Parsed destination. | 63 * @return {!print_preview.Destination} Parsed destination. |
64 */ | 64 */ |
65 CloudDestinationParser.parse = function(json, origin, account) { | 65 CloudDestinationParser.parse = function(json, origin, account) { |
66 if (!json.hasOwnProperty(CloudDestinationParser.Field_.ID) || | 66 if (!json.hasOwnProperty(CloudDestinationParser.Field_.ID) || |
67 !json.hasOwnProperty(CloudDestinationParser.Field_.TYPE) || | 67 !json.hasOwnProperty(CloudDestinationParser.Field_.TYPE) || |
68 !json.hasOwnProperty(CloudDestinationParser.Field_.DISPLAY_NAME)) { | 68 !json.hasOwnProperty(CloudDestinationParser.Field_.DISPLAY_NAME)) { |
69 throw Error('Cloud destination does not have an ID or a display name'); | 69 throw Error('Cloud destination does not have an ID or a display name'); |
70 } | 70 } |
71 var id = json[CloudDestinationParser.Field_.ID]; | 71 var id = json[CloudDestinationParser.Field_.ID]; |
72 var tags = json[CloudDestinationParser.Field_.TAGS] || []; | 72 var tags = json[CloudDestinationParser.Field_.TAGS] || []; |
73 var connectionStatus = | 73 var connectionStatus = |
74 json[CloudDestinationParser.Field_.CONNECTION_STATUS] || | 74 json[CloudDestinationParser.Field_.CONNECTION_STATUS] || |
75 print_preview.Destination.ConnectionStatus.UNKNOWN; | 75 print_preview.DestinationConnectionStatus.UNKNOWN; |
76 var optionalParams = { | 76 var optionalParams = { |
77 account: account, | 77 account: account, |
78 tags: tags, | 78 tags: tags, |
79 isOwned: arrayContains(tags, CloudDestinationParser.OWNED_TAG_), | 79 isOwned: arrayContains(tags, CloudDestinationParser.OWNED_TAG_), |
80 lastAccessTime: parseInt( | 80 lastAccessTime: parseInt( |
81 json[CloudDestinationParser.Field_.LAST_ACCESS], 10) || Date.now(), | 81 json[CloudDestinationParser.Field_.LAST_ACCESS], 10) || Date.now(), |
82 cloudID: id, | 82 cloudID: id, |
83 description: json[CloudDestinationParser.Field_.DESCRIPTION] | 83 description: json[CloudDestinationParser.Field_.DESCRIPTION] |
84 }; | 84 }; |
85 var cloudDest = new print_preview.Destination( | 85 var cloudDest = new print_preview.Destination( |
86 id, | 86 id, |
87 CloudDestinationParser.parseType_( | 87 CloudDestinationParser.parseType_( |
88 json[CloudDestinationParser.Field_.TYPE]), | 88 json[CloudDestinationParser.Field_.TYPE]), |
89 origin, | 89 origin, |
90 json[CloudDestinationParser.Field_.DISPLAY_NAME], | 90 json[CloudDestinationParser.Field_.DISPLAY_NAME], |
91 arrayContains(tags, CloudDestinationParser.RECENT_TAG_) /*isRecent*/, | 91 arrayContains(tags, CloudDestinationParser.RECENT_TAG_) /*isRecent*/, |
92 connectionStatus, | 92 connectionStatus, |
93 optionalParams); | 93 optionalParams); |
94 if (json.hasOwnProperty(CloudDestinationParser.Field_.CAPABILITIES)) { | 94 if (json.hasOwnProperty(CloudDestinationParser.Field_.CAPABILITIES)) { |
95 cloudDest.capabilities = /** @type {!print_preview.Cdd} */( | 95 cloudDest.capabilities = /** @type {!print_preview.Cdd} */( |
96 json[CloudDestinationParser.Field_.CAPABILITIES]); | 96 json[CloudDestinationParser.Field_.CAPABILITIES]); |
97 } | 97 } |
98 return cloudDest; | 98 return cloudDest; |
99 }; | 99 }; |
100 | 100 |
101 /** | 101 /** |
102 * Parses the destination type. | 102 * Parses the destination type. |
103 * @param {string} typeStr Destination type given by the Google Cloud Print | 103 * @param {string} typeStr Destination type given by the Google Cloud Print |
104 * server. | 104 * server. |
105 * @return {!print_preview.Destination.Type} Destination type. | 105 * @return {!print_preview.DestinationType} Destination type. |
106 * @private | 106 * @private |
107 */ | 107 */ |
108 CloudDestinationParser.parseType_ = function(typeStr) { | 108 CloudDestinationParser.parseType_ = function(typeStr) { |
109 if (typeStr == CloudDestinationParser.CloudType_.ANDROID || | 109 if (typeStr == CloudDestinationParser.CloudType_.ANDROID || |
110 typeStr == CloudDestinationParser.CloudType_.IOS) { | 110 typeStr == CloudDestinationParser.CloudType_.IOS) { |
111 return print_preview.Destination.Type.MOBILE; | 111 return print_preview.DestinationType.MOBILE; |
112 } else if (typeStr == CloudDestinationParser.CloudType_.DOCS) { | 112 } else if (typeStr == CloudDestinationParser.CloudType_.DOCS) { |
113 return print_preview.Destination.Type.GOOGLE_PROMOTED; | 113 return print_preview.DestinationType.GOOGLE_PROMOTED; |
114 } else { | 114 } else { |
115 return print_preview.Destination.Type.GOOGLE; | 115 return print_preview.DestinationType.GOOGLE; |
116 } | 116 } |
117 }; | 117 }; |
118 | 118 |
119 /** Namespace which contains a method to parse printer sharing invitation. */ | 119 /** Namespace which contains a method to parse printer sharing invitation. */ |
120 function InvitationParser() {}; | 120 function InvitationParser() {} |
121 | 121 |
122 /** | 122 /** |
123 * Enumeration of invitation field names. | 123 * Enumeration of invitation field names. |
124 * @enum {string} | 124 * @enum {string} |
125 * @private | 125 * @private |
126 */ | 126 */ |
127 InvitationParser.Field_ = { | 127 InvitationParser.Field_ = { |
128 PRINTER: 'printer', | 128 PRINTER: 'printer', |
129 RECEIVER: 'receiver', | 129 RECEIVER: 'receiver', |
130 SENDER: 'sender' | 130 SENDER: 'sender' |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
169 // It's a personal invitation, empty name indicates just that. | 169 // It's a personal invitation, empty name indicates just that. |
170 } else if (receiverType == InvitationParser.AclType_.GROUP || | 170 } else if (receiverType == InvitationParser.AclType_.GROUP || |
171 receiverType == InvitationParser.AclType_.DOMAIN) { | 171 receiverType == InvitationParser.AclType_.DOMAIN) { |
172 receiverName = nameFormatter(receiver['name'], receiver['scope']); | 172 receiverName = nameFormatter(receiver['name'], receiver['scope']); |
173 } else { | 173 } else { |
174 throw Error('Invitation of unsupported receiver type'); | 174 throw Error('Invitation of unsupported receiver type'); |
175 } | 175 } |
176 | 176 |
177 var destination = cloudprint.CloudDestinationParser.parse( | 177 var destination = cloudprint.CloudDestinationParser.parse( |
178 json[InvitationParser.Field_.PRINTER], | 178 json[InvitationParser.Field_.PRINTER], |
179 print_preview.Destination.Origin.COOKIES, | 179 print_preview.DestinationOrigin.COOKIES, |
180 account); | 180 account); |
181 | 181 |
182 return new print_preview.Invitation( | 182 return new print_preview.Invitation( |
183 senderName, receiverName, destination, receiver, account); | 183 senderName, receiverName, destination, receiver, account); |
184 }; | 184 }; |
185 | 185 |
186 // Export | 186 // Export |
187 return { | 187 return { |
188 CloudDestinationParser: CloudDestinationParser, | 188 CloudDestinationParser: CloudDestinationParser, |
189 InvitationParser: InvitationParser | 189 InvitationParser: InvitationParser |
190 }; | 190 }; |
191 }); | 191 }); |
OLD | NEW |