@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
JavaScript
;
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;
};