UNPKG

hellohello234

Version:

Simple calculator API hosted on APIMATIC

81 lines (68 loc) 2.9 kB
/** * hellohello234 * * This file was automatically generated by APIMATIC v2.0 ( https://apimatic.io ) */ 'use strict'; 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;