| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- /*
- * @copyright
- * Copyright © Microsoft Open Technologies, Inc.
- *
- * All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http: *www.apache.org/licenses/LICENSE-2.0
- *
- * THIS CODE IS PROVIDED *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS
- * OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION
- * ANY IMPLIED WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A
- * PARTICULAR PURPOSE, MERCHANTABILITY OR NON-INFRINGEMENT.
- *
- * See the Apache License, Version 2.0 for the specific language
- * governing permissions and limitations under the License.
- */
- 'use strict';
- var constants = require('./constants');
- var Logger = require('./log').Logger;
- var Mex = require('./mex');
- var OAuth2Client = require('./oauth2client');
- var OAuth2Parameters = constants.OAuth2.Parameters;
- var TokenResponseFields = constants.TokenResponseFields;
- var OAuth2GrantType = constants.OAuth2.GrantType;
- var OAuth2Scope = constants.OAuth2.Scope;
- /**
- * Constructs a new CodeRequest object.
- * @constructor
- * @private
- * @param {object} callContext Contains any context information that applies to the request.
- * @param {AuthenticationContext} authenticationContext
- * @param {string} resource
- * @param {string} clientId
- */
- // TODO: probably need to modify the parameter list.
- function CodeRequest(callContext, authenticationContext, clientId, resource) {
- this._log = new Logger('DeviceCodeRequest', callContext._logContext);
- this._callContext = callContext;
- this._authenticationContext = authenticationContext;
- this._resource = resource;
- this._clientId = clientId;
-
- // This should be set at the beginning of getToken
- // functions that have a userId.
- this._userId = null;
- };
- /**
- * Get user code info.
- * @private
- * @param {object} oauthParameters containing all the parameters needed to get the user code info.
- * @param {callback} callback
- */
- CodeRequest.prototype._getUserCodeInfo = function (oauthParameters, callback) {
- var oauth2Client = this._createOAuth2Client();
- oauth2Client.getUserCodeInfo(oauthParameters, callback);
- };
- CodeRequest.prototype._createOAuth2Client = function () {
- return new OAuth2Client(this._callContext, this._authenticationContext._authority);
- };
- /**
- * Creates a set of basic, common, OAuthParameters based on values that the CodeRequest was created with.
- * @private
- * @return {object} containing all the basic parameters.
- */
- CodeRequest.prototype._createOAuthParameters = function () {
- var oauthParameters = {};
-
- oauthParameters[OAuth2Parameters.CLIENT_ID] = this._clientId;
- oauthParameters[OAuth2Parameters.RESOURCE] = this._resource;
- return oauthParameters;
- };
- /**
- * Get the user code information.
- * @param {string} language optional parameter used to get the user code info.
- * @param {callback} callback
- */
- CodeRequest.prototype.getUserCodeInfo = function(language, callback) {
- this._log.info('Getting user code info.');
- var oauthParameters = this._createOAuthParameters();
- if (language){
- oauthParameters[OAuth2Parameters.LANGUAGE] = language;
- }
- this._getUserCodeInfo(oauthParameters, callback);
- };
- module.exports = CodeRequest;
|