hellohello234
Version:
Simple calculator API hosted on APIMATIC
81 lines (68 loc) • 2.9 kB
JavaScript
/**
* hellohello234
*
* This file was automatically generated by APIMATIC v2.0 ( https://apimatic.io )
*/
;
const _request = require('../Http/Client/RequestClient');
const _configuration = require('../configuration');
const _apiHelper = require('../APIHelper');
const _baseController = require('./BaseController');
class SimpleCalculatorController {
/**
* Calculates the expression using the specified operation.
*
* @param {array} input Array with all options for search
* @param {OperationTypeEnum} input['operation'] The operator to apply on the variables
* @param {double} input['x'] The LHS value
* @param {double} input['y'] The RHS value
*
* @callback The callback function that returns response from the API call
*
* @returns {Promise}
*/
static getCalculate(input, callback) {
// create empty callback if absent
const _callback = typeof callback === 'function' ? callback : () => undefined;
// prepare query string for API call
const _baseUri = _configuration.BASEURI;
let _queryBuilder = `${_baseUri}${'/{operation}'}`;
// process template parameters
_queryBuilder = _apiHelper.appendUrlWithTemplateParameters(_queryBuilder, {
operation: (input.operation !== null) ? input.operation : null,
});
// process query parameters
_queryBuilder = _apiHelper.appendUrlWithQueryParameters(_queryBuilder, {
x: input.x,
y: input.y,
});
// validate and preprocess url
const _queryUrl = _apiHelper.cleanUrl(_queryBuilder);
// construct the request
const _options = {
queryUrl: _queryUrl,
method: 'GET',
};
// build the response processing.
return new Promise((_fulfill, _reject) => {
_request(_options, (_error, _response, _context) => {
let errorResponse;
if (_error) {
errorResponse = _baseController.validateResponse(_context);
_callback(errorResponse.error, errorResponse.response, errorResponse.context);
_reject(errorResponse.error);
} else if (_response.statusCode >= 200 && _response.statusCode <= 206) {
const _strResult = _response.body;
const _result = JSON.parse(_strResult);
_callback(null, _result, _context);
_fulfill(_result);
} else {
errorResponse = _baseController.validateResponse(_context);
_callback(errorResponse.error, errorResponse.response, errorResponse.context);
_reject(errorResponse.error);
}
});
});
}
}
module.exports = SimpleCalculatorController;