@factset/sdk-securityexplanation
Version:
Security Explanation client library for JavaScript
228 lines (216 loc) • 8.42 kB
JavaScript
;
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;