UNPKG

trade360-nodejs-sdk

Version:
240 lines 12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SubscriptionHttpClient = void 0; const enums_1 = require("../enums"); const _httpClient_1 = require("../../base-http-client"); const requests_1 = require("../../common/subscription/requests"); const responses_1 = require("../../common/subscription/responses"); const { GET_PACKAGE_QUOTA_PREFIX_URL, GET_FIXTURES_SCHEDULE_PREFIX_URL, SUBSCRIBE_BY_FIXTURES_PREFIX_URL, UNSUBSCRIBE_BY_FIXTURE_PREFIX_URL, SUBSCRIBE_BY_LEAGUES_PREFIX_URL, UNSUBSCRIBE_BY_LEAGUES_PREFIX_URL, GET_FIXTURES_SUBSCRIPTION_PREFIX_URL, SUBSCRIBE_BY_COMPETITIONS_PREFIX_URL, UNSUBSCRIBE_BY_COMPETITIONS_PREFIX_URL, GET_ALL_MANUAL_SUSPENSIONS_PREFIX_URL, ADD_MANUAL_SUSPENSIONS_PREFIX_URL, REMOVE_MANUAL_SUSPENSIONS_PREFIX_URL, GET_FIXTURES_METADATA_SUBSCRIPTIONS_PREFIX_URL, } = enums_1.SubscriptionRoutesPrefixUrl; /** * SubscriptionHttpClient class is responsible for sending requests * to the subscription API. It is a HTTP client for the subscription * API. It contains the logic for sending requests to the subscription * API. * @param restApiBaseUrl The base URL of the customers API * @param packageCredentials The package credentials for the API * @param logger The logger instance * @param mapper The mapper instance * @returns A new instance of the SubscriptionHttpClient class with * the provided HTTP service configuration and mapper. * @implements ISubscriptionHttpClient interface for sending requests * to the subscription API and getting responses from the subscription * API. * @see ISubscriptionHttpClient interface for sending requests to the * subscription API and getting responses from the subscription API. * @see BaseHttpClient class for sending requests to the customers API. * */ class SubscriptionHttpClient extends _httpClient_1.BaseHttpClient { constructor({ packageCredentials, restApiBaseUrl, logger }, mapper) { super({ restApiBaseUrl, packageCredentials, logger }); this.mapper = mapper; } /** * Sends a request to the subscription API to get the package * quota information. * @returns A promise that resolves to a PackageQuotaResponse * object containing the package quota information. */ async getPackageQuota() { const packageQuota = await this.postRequest({ route: GET_PACKAGE_QUOTA_PREFIX_URL, responseBodyType: responses_1.PackageQuotaResponse, }); return packageQuota; } /** * Sends a request to the subscription API to get the fixtures schedule. * @param requestDto The request DTO for getting the fixtures schedule. * @returns A promise that resolves to a FixtureScheduleCollectionResponse * object containing the fixture schedule information. */ async getFixturesSchedule(requestDto) { const request = this.mapper.map(requestDto, requests_1.GetFixtureScheduleRequest); const fixturesScheduleCollection = await this.postRequest({ route: GET_FIXTURES_SCHEDULE_PREFIX_URL, responseBodyType: responses_1.FixtureScheduleCollectionResponse, requestBody: request, }); return fixturesScheduleCollection; } /** * Sends a request to the subscription API to subscribe to fixtures. * @param requestDto The request DTO for subscribing to fixtures. * @returns A promise that resolves to a * FixturesSubscriptionCollectionResponse object containing the * fixtures subscription information. */ async subscribeByFixtures(requestDto) { const request = this.mapper.map(requestDto, requests_1.FixturesSubscriptionRequest); const fixturesSubscriptionResponse = await this.postRequest({ route: SUBSCRIBE_BY_FIXTURES_PREFIX_URL, responseBodyType: responses_1.FixturesSubscriptionCollectionResponse, requestBody: request, }); return fixturesSubscriptionResponse; } /** * Sends a request to the subscription API to unsubscribe from fixtures. * @param requestDto The request DTO for unsubscribing from fixtures. * @returns A promise that resolves to a * FixturesSubscriptionCollectionResponse object containing the * fixtures unsubscription information. */ async unSubscribeByFixtures(requestDto) { const request = this.mapper.map(requestDto, requests_1.FixturesSubscriptionRequest); const fixturesUnSubscriptionsResponse = await this.postRequest({ route: UNSUBSCRIBE_BY_FIXTURE_PREFIX_URL, responseBodyType: responses_1.FixturesSubscriptionCollectionResponse, requestBody: request, }); return fixturesUnSubscriptionsResponse; } /** * Sends a request to the subscription API to subscribe to leagues. * @param requestDto The request DTO for subscribing to leagues. * @returns A promise that resolves to a * LeaguesSubscriptionCollectionResponse object containing the * leagues subscription information. */ async subscribeByLeagues(requestDto) { const request = this.mapper.map(requestDto, requests_1.LeaguesSubscriptionRequest); const leaguesSubscriptionResponse = await this.postRequest({ route: SUBSCRIBE_BY_LEAGUES_PREFIX_URL, responseBodyType: responses_1.LeaguesSubscriptionCollectionResponse, requestBody: request, }); return leaguesSubscriptionResponse; } /** * Sends a request to the subscription API to unsubscribe from leagues. * @param requestDto The request DTO for unsubscribing from leagues. * @returns A promise that resolves to a * LeaguesSubscriptionCollectionResponse object containing the leagues * unsubscription information. */ async unSubscribeByLeagues(requestDto) { const request = this.mapper.map(requestDto, requests_1.LeaguesSubscriptionRequest); const leaguesUnSubscriptionResponse = await this.postRequest({ route: UNSUBSCRIBE_BY_LEAGUES_PREFIX_URL, responseBodyType: responses_1.LeaguesSubscriptionCollectionResponse, requestBody: request, }); return leaguesUnSubscriptionResponse; } /** * Sends a request to the subscription API to get fixtures subscriptions. * @param requestDto The request DTO for getting fixtures subscriptions. * @returns A promise that resolves to a * GetSubscriptionsCollectionResponse object containing the fixtures * subscriptions information. */ async getSubscriptions(requestDto) { const request = this.mapper.map(requestDto, requests_1.GetSubscriptionsRequest); const fixturesSubscriptionsCollection = await this.postRequest({ route: GET_FIXTURES_SUBSCRIPTION_PREFIX_URL, responseBodyType: responses_1.SubscriptionsCollectionResponse, requestBody: request, }); return fixturesSubscriptionsCollection; } /** * Sends a request to the subscription API to subscribe to competitions. * @param requestDto The request DTO for subscribing to competitions. * @returns A promise that resolves to a * CompetitionsSubscriptionCollectionResponse object containing the * competitions subscription information. */ async subscribeByCompetitions(requestDto) { const request = this.mapper.map(requestDto, requests_1.CompetitionsSubscriptionRequest); const competitionsSubscriptionResponse = await this.postRequest({ route: SUBSCRIBE_BY_COMPETITIONS_PREFIX_URL, responseBodyType: responses_1.CompetitionsSubscriptionCollectionResponse, requestBody: request, }); return competitionsSubscriptionResponse; } /** * Sends a request to the subscription API to unsubscribe from * competitions. * @param requestDto The request DTO for unsubscribing from competitions. * @returns A promise that resolves to a * CompetitionsSubscriptionCollectionResponse object containing the * competitions unsubscription information from the subscription API. */ async unSubscribeByCompetitions(requestDto) { const request = this.mapper.map(requestDto, requests_1.CompetitionsSubscriptionRequest); const competitionsUnSubscriptionResponse = await this.postRequest({ route: UNSUBSCRIBE_BY_COMPETITIONS_PREFIX_URL, responseBodyType: responses_1.CompetitionsSubscriptionCollectionResponse, requestBody: request, }); return competitionsUnSubscriptionResponse; } /** * Sends a request to the subscription API to get all manual suspensions. * @returns A promise that resolves to a GetManualSuspensionsResponse object * containing the manual suspensions information. */ async getAllManualSuspensions() { const allManualSuspensionsCollection = await this.postRequest({ route: GET_ALL_MANUAL_SUSPENSIONS_PREFIX_URL, responseBodyType: responses_1.GetManualSuspensionsResponse, }); return allManualSuspensionsCollection; } /** * Sends a request to the subscription API to add manual suspensions. * @param requestDto The request DTO for adding manual suspensions. * @returns A promise that resolves to a ChangeManualSuspensionsResponse * object containing the manual suspensions information. */ async addManualSuspensions(requestDto) { const request = this.mapper.map(requestDto, requests_1.ChangeManualSuspensionsRequest); const activatedManualSuspensionsResponse = await this.postRequest({ route: ADD_MANUAL_SUSPENSIONS_PREFIX_URL, responseBodyType: responses_1.ChangeManualSuspensionsResponse, requestBody: request, }); return activatedManualSuspensionsResponse; } /** * Sends a request to the subscription API to remove manual suspensions. * @param requestDto The request DTO for removing manual suspensions. * @returns A promise that resolves to a ChangeManualSuspensionsResponse * object containing the manual suspensions information. */ async removeManualSuspensions(requestDto) { const request = this.mapper.map(requestDto, requests_1.ChangeManualSuspensionsRequest); const deactivateManualSuspensionsResponse = await this.postRequest({ route: REMOVE_MANUAL_SUSPENSIONS_PREFIX_URL, responseBodyType: responses_1.ChangeManualSuspensionsResponse, requestBody: request, }); return deactivateManualSuspensionsResponse; } /** * Sends a request to the subscription API to get fixtures metadata * subscriptions. It sends a * GET request to API and FixturesMetadataCollectionResponse as the * response type. The request contains the properties for the * request to get fixture metadata from the API. The response will * automatically trim and provide data only for the configured * upcoming duration if the date range is more than configured max * duration. * @returns A promise that resolves to a * FixturesMetadataSubscriptionsCollectionResponse object containing * the fixtures metadata subscriptions information. */ async getFixturesMetadataSubscriptions(requestDto) { const request = this.mapper.map(requestDto, requests_1.FixturesMetadataSubscriptionsRequest); const fixturesMetadataSubscriptionsCollection = await this.getRequest({ route: GET_FIXTURES_METADATA_SUBSCRIPTIONS_PREFIX_URL, responseBodyType: responses_1.FixturesMetadataSubscriptionsCollectionResponse, requestBody: request, }); return fixturesMetadataSubscriptionsCollection; } } exports.SubscriptionHttpClient = SubscriptionHttpClient; //# sourceMappingURL=subscription.service.js.map