UNPKG

@factset/sdk-securityexplanation

Version:

Security Explanation client library for JavaScript

228 lines (216 loc) 8.42 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = exports.CheckExplanationStatusResponseWrapper = void 0; var _ApiClient = _interopRequireDefault(require("../ApiClient")); var _APIClientErrorResponse = _interopRequireDefault(require("../model/APIClientErrorResponse")); var _ExplanationCreateResponseRoot = _interopRequireDefault(require("../model/ExplanationCreateResponseRoot")); var _ExplanationStatusRoot = _interopRequireDefault(require("../model/ExplanationStatusRoot")); var _SecurityExplanationParametersRoot = _interopRequireDefault(require("../model/SecurityExplanationParametersRoot")); var _SecurityExplanationResponseRoot = _interopRequireDefault(require("../model/SecurityExplanationResponseRoot")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } /** * Security Explanation API * Allow clients to use Security Explanation through APIs. * * The version of the OpenAPI document: 1.4.0 * Contact: api@factset.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech * Do not edit the class manually. * */ /** * SecurityExplanation service. * @module api/SecurityExplanationApi */ class SecurityExplanationApi { /** * Constructs a new SecurityExplanationApi. * @alias module:api/SecurityExplanationApi * @class * @param {module:ApiClient} [apiClient] Optional API client implementation to use, * default to {@link module:ApiClient#instance} if unspecified. */ constructor(apiClient) { this.apiClient = apiClient || _ApiClient.default.instance; } /** * Get explanation status by id * Use this endpoint to fetch the status of the given explanation ID. * @param {String} id id * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link module:model/ExplanationStatusRoot} and HTTP response */ checkExplanationStatusWithHttpInfo(id) { let postBody = null; // verify the required parameter 'id' is set if (id === undefined || id === null) { throw new Error("Missing the required parameter 'id' when calling checkExplanationStatus"); } let pathParams = { 'id': id }; let queryParams = {}; let headerParams = {}; let formParams = {}; let authNames = ['FactSetApiKey', 'FactSetOAuth2']; let contentTypes = []; let accepts = ['application/json']; let returnType = CheckExplanationStatusResponseWrapperTypeMap; return this.apiClient.callApi('/explanation/{id}/status', 'GET', pathParams, queryParams, headerParams, formParams, postBody, authNames, contentTypes, accepts, returnType, null); } /** * Get explanation status by id * Use this endpoint to fetch the status of the given explanation ID. * @param {String} id id * @return { Promise.< CheckExplanationStatusResponseWrapper > } a Promise, with data of type {@link CheckExplanationStatusResponseWrapper } */ checkExplanationStatus(id) { return this.checkExplanationStatusWithHttpInfo(id).then(function (response_and_data) { return response_and_data.data; }); } /** * Request explanation * Create a new Security Explanation request with parameters. * @param {Object} opts Optional parameters * @param {module:model/SecurityExplanationParametersRoot} opts.securityExplanationParametersRoot * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link module:model/ExplanationCreateResponseRoot} and HTTP response */ createExplanationWithHttpInfo(opts) { opts = opts || {}; let postBody = opts['securityExplanationParametersRoot']; let pathParams = {}; let queryParams = {}; let headerParams = {}; let formParams = {}; let authNames = ['FactSetApiKey', 'FactSetOAuth2']; let contentTypes = ['application/json']; let accepts = ['application/json']; let returnType = _ExplanationCreateResponseRoot.default; return this.apiClient.callApi('/explanation', 'POST', pathParams, queryParams, headerParams, formParams, postBody, authNames, contentTypes, accepts, returnType, null); } /** * Request explanation * Create a new Security Explanation request with parameters. * @param {Object} opts Optional parameters * @param {module:model/SecurityExplanationParametersRoot} opts.securityExplanationParametersRoot * @return { Promise.< module:model/ExplanationCreateResponseRoot > } a Promise, with data of type {@link module:model/ExplanationCreateResponseRoot } */ createExplanation(opts) { return this.createExplanationWithHttpInfo(opts).then(function (response_and_data) { return response_and_data.data; }); } /** * Get explanation results by id * Use this endpoint to fetch the results of the given explanation ID. * @param {String} id id * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link module:model/SecurityExplanationResponseRoot} and HTTP response */ fetchExplanationResultsWithHttpInfo(id) { let postBody = null; // verify the required parameter 'id' is set if (id === undefined || id === null) { throw new Error("Missing the required parameter 'id' when calling fetchExplanationResults"); } let pathParams = { 'id': id }; let queryParams = {}; let headerParams = {}; let formParams = {}; let authNames = ['FactSetApiKey', 'FactSetOAuth2']; let contentTypes = []; let accepts = ['application/json']; let returnType = _SecurityExplanationResponseRoot.default; return this.apiClient.callApi('/explanation/{id}/result', 'GET', pathParams, queryParams, headerParams, formParams, postBody, authNames, contentTypes, accepts, returnType, null); } /** * Get explanation results by id * Use this endpoint to fetch the results of the given explanation ID. * @param {String} id id * @return { Promise.< module:model/SecurityExplanationResponseRoot > } a Promise, with data of type {@link module:model/SecurityExplanationResponseRoot } */ fetchExplanationResults(id) { return this.fetchExplanationResultsWithHttpInfo(id).then(function (response_and_data) { return response_and_data.data; }); } } exports.default = SecurityExplanationApi; const CheckExplanationStatusResponseWrapperTypeMap = { 201: _ExplanationStatusRoot.default, 202: _ExplanationCreateResponseRoot.default, 400: _APIClientErrorResponse.default, 404: _APIClientErrorResponse.default, _createResponseWrapper(statusCode, response) { return new CheckExplanationStatusResponseWrapper(statusCode, response); } }; /** * Wrapper to support GET /explanation/{id}/status returning different types * per status code. * * <p> * Responses: * <ul> * <li>201 : {@code ExplanationStatusRoot }<br>Expected response, explanation was created.</li> * * <li>202 : {@code ExplanationCreateResponseRoot }<br>Expected response, returns the poll ID with status.</li> * </ul> * * </p> * Example: * <pre>{@code * const response = ...; * switch (response.statusCode) { * case 201: * ExplanationStatusRoot data201 = response.getResponse201(); * break; * case 202: * ExplanationCreateResponseRoot data202 = response.getResponse202(); * break; * } * }</pre> * * @alias module:CheckExplanationStatusResponseWrapper * @class */ class CheckExplanationStatusResponseWrapper { /** * @param {number} statusCode * @param {*} response */ constructor(statusCode, response) { /** * @type {number} */ this.statusCode = statusCode; /** * @type {*} */ this.response = response; } /** * @returns { ExplanationStatusRoot } */ getResponse201() { if (this.statusCode !== 201) { throw new Error("Invalid response getter called. getResponse201 can't return a " + this.statusCode + " response"); } return this.response; } /** * @returns { ExplanationCreateResponseRoot } */ getResponse202() { if (this.statusCode !== 202) { throw new Error("Invalid response getter called. getResponse202 can't return a " + this.statusCode + " response"); } return this.response; } } exports.CheckExplanationStatusResponseWrapper = CheckExplanationStatusResponseWrapper;