/*
|
* @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 _ = require('underscore');
|
var constants = require('./constants');
|
|
var UserCodeResponseFields = constants.UserCodeResponseFields;
|
|
var argumentValidation = {
|
/**
|
* Throws if the passed in parameter is not a string.
|
* @param {string} param The parameter to validate.
|
* @param {string} name The name of the parameter being validated.
|
* @throws {Error} If the parameter is not a valid string.
|
*/
|
validateStringParameter : function(param, name) {
|
if (!param) {
|
throw new Error('The ' + name + ' parameter is required.');
|
}
|
if (!_.isString(param)) {
|
throw new Error('The ' + name + ' parameter must be of type String.');
|
}
|
},
|
|
/**
|
* Validates that the callback passed in {@link AuthenticationContext.acquireToken} is a function
|
* @param {AcquireTokenCallback} callback
|
* @throws {Error} If the callback parameter is not a function
|
*/
|
validateCallbackType : function(callback) {
|
if (!callback || !_.isFunction(callback)) {
|
throw new Error('acquireToken requires a function callback parameter.');
|
}
|
},
|
|
validateUserCodeInfo : function(userCodeInfo) {
|
if (!userCodeInfo){
|
throw new Error('The userCodeInfo parameter is required');
|
}
|
|
if (!userCodeInfo.hasOwnProperty(UserCodeResponseFields.DEVICE_CODE)){
|
throw new Error('The userCodeInfo is missing device_code');
|
}
|
|
if (!userCodeInfo.hasOwnProperty(UserCodeResponseFields.INTERVAL)){
|
throw new Error('The userCodeInfo is missing interval');
|
}
|
|
if (!userCodeInfo.hasOwnProperty(UserCodeResponseFields.EXPIRES_IN)){
|
throw new Error('The userCodeInfo is missing expires_in');
|
}
|
}
|
};
|
|
module.exports = argumentValidation;
|