Don't show supervised user as "already on this device" while they're being imported.
[chromium-blink-merge.git] / remoting / webapp / crd / js / host_list_api.js
blobffc167ad8041958ce0eaed403c0c76cde39e141f
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 /**
6  * @fileoverview
7  * API for host-list management.
8  */
10 /** @suppress {duplicate} */
11 var remoting = remoting || {};
13 (function() {
15 'use strict';
17 /** @interface */
18 remoting.HostListApi = function() {
21 /**
22  * Registers a new host with the host registry service (either the
23  * Chromoting registry or GCD).
24  *
25  * @param {string} newHostId The ID of the new host to register.
26  * @param {string} hostName The user-visible name of the new host.
27  * @param {string} publicKey The public half of the host's key pair.
28  * @param {string} hostClientId The OAuth2 client ID of the host.
29  * @return {!Promise<remoting.HostListApi.RegisterResult>}
30  */
31 remoting.HostListApi.prototype.register = function(
32     newHostId, hostName, publicKey, hostClientId) {
35 /**
36  * Fetch the list of hosts for a user.
37  *
38  * @return {!Promise<!Array<!remoting.Host>>}
39  */
40 remoting.HostListApi.prototype.get = function() {
43 /**
44  * Update the information for a host.
45  *
46  * @param {string} hostId
47  * @param {string} hostName
48  * @param {string} hostPublicKey
49  * @return {!Promise<void>}
50  */
51 remoting.HostListApi.prototype.put =
52     function(hostId, hostName, hostPublicKey) {
55 /**
56  * Delete a host.
57  *
58  * @param {string} hostId
59  * @return {!Promise<void>}
60  */
61 remoting.HostListApi.prototype.remove = function(hostId) {
64 /**
65  * Attempts to look up a host using an ID derived from its publicly
66  * visible access code.
67  *
68  * @param {string} supportId The support ID of the host to connect to.
69  * @return {!Promise<!remoting.Host>}
70  */
71 remoting.HostListApi.prototype.getSupportHost = function(supportId) {
74 /**
75  * @private {remoting.HostListApi}
76  */
77 var instance = null;
79 /**
80  * @return {!remoting.HostListApi}
81  */
82 remoting.HostListApi.getInstance = function() {
83   if (instance == null) {
84     instance = remoting.settings.USE_GCD ?
85         new remoting.HostListApiGcdImpl() :
86         new remoting.HostListApiImpl();
87   }
88   return instance;
91 /**
92  * For testing.
93  * @param {remoting.HostListApi} newInstance
94  */
95 remoting.HostListApi.setInstance = function(newInstance) {
96   instance = newInstance;
99 })();
102  * Information returned from the registry/GCD server when registering
103  * a device.  GCD will fill in all three fields; the Chromoting
104  * registry will only return an auth code; other fields will be empty.
106  * The fields are:
108  * authCode: An OAuth2 authorization code that can be exchanged for a
109  *     refresh token.
111  * email: The email/XMPP address of the robot account associated
112  *     with this device.
114  * gcmId: The ID string assigned to this device by GCD.
116  * @typedef {{
117  *   authCode: string,
118  *   email: string,
119  *   gcdId: string
120  * }}
121  */
122 remoting.HostListApi.RegisterResult;