API Docs for: 0.0.8
Show:

File: client/profile/api.js

                        /* This Source Code Form is subject to the terms of the Mozilla Public
                         * License, v. 2.0. If a copy of the MPL was not distributed with this
                         * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
                        
                        define([
                          'p-promise',
                          'client/lib/constants',
                          'client/lib/xhr',
                          'client/lib/object'
                        ], function (p, Constants, Xhr, ObjectHelpers) {
                          'use strict';
                        
                          /**
                           * @class ProfileAPI
                           * @constructor
                           * @param {string} clientId - the OAuth client ID for the relier
                           * @param {Object} [options={}] - configuration
                           *   @param {String} [options.profileHost]
                           *   Firefox Accounts Profile Server host
                           */
                          function ProfileAPI(clientId, options) {
                            if (! clientId) {
                              throw new Error('clientId is required');
                            }
                            this._clientId = clientId;
                        
                            options = options || {};
                            this._profileHost = options.profileHost || Constants.DEFAULT_PROFILE_HOST;
                          }
                        
                          ProfileAPI.prototype = {
                            /**
                             * Fetch a user's profile data.
                             *
                             * @method fetch
                             * @param {String} token
                             * Scoped OAuth token that can be used to access the profile data
                             * @param {Object} [options={}] - configuration
                             *   @param {String} [options.xhr]
                             *   XMLHttpRequest compatible object to use to make the request.
                             * @returns {Promise}
                             * Response resolves to the user's profile data on success.
                             */
                            fetch: function (token, options) {
                              if (! token) {
                                throw new Error('token is required');
                              }
                        
                              var xhrOptions = ObjectHelpers.extend({
                                headers: {
                                  Authorization: 'Bearer ' + token
                                }
                              }, options);
                        
                              var self = this;
                              return Xhr.get(self._profileHost + '/profile', {}, xhrOptions)
                                .then(function (profileData) {
                                  self._profileData = profileData;
                                  return profileData;
                                });
                            },
                        
                            /**
                             * Get all the user's profile data. Must be called after `fetch`
                             *
                             * @method all
                             * @returns {Object}
                             * User's profile data that was fetched using `fetch`.
                             */
                            all: function () {
                              return this._profileData;
                            }
                          };
                        
                          return ProfileAPI;
                        });