UNPKG

@stylusapparel/stylusop-api-node-wrapper

Version:

This is the official NodeJs wrapper for connecting to the StylusOP API

40 lines (39 loc) 1.43 kB
'use strict'; const __error = require('./error'); const __response = require('./response'); const { __defaults } = require('../constants/url'); const http = require('./http'); module.exports = (_token, __config) => { const httpInstance = http(_token, __config); const { username, apiVersion = __defaults.LATEST_VERSION, tokenType = 'basic' } = __config; const __this = { _token, _verify: () => { return new Promise((resolve, reject) => { !__this._token && reject(__error._tokenMissing()); !username && reject(__error._usernameMissing()); __defaults.SUPPORTED_VERSIONS.indexOf(apiVersion) < 0 && reject(__error._versionUnknownIssue()); resolve(true); }); }, _isTokenValid: () => { return new Promise((resolve, reject) => { httpInstance .post(__defaults.TOKEN_VALIDATION_URI, { username, apiToken: __this._token, tokenType }) .then(function (response) { if (response.status === 200) { resolve(__response._tokenValidation()); } else { reject(__error._tokenError(response.data, response.status)); } }) .catch(function (error) { const _errorCode = (error && error.response && error.response.status) || 500; const _errorDetails = (error && error.response && error.response.data) || {}; reject(__error._tokenError(_errorDetails, _errorCode)); }); }); }, }; return __this; };