UNPKG

@qite/tide-client

Version:
75 lines (64 loc) 2.04 kB
import { Affiliate, CrmContactRequest, GenerateBookingAccommodationRequest, TideClientConfig, } from "../types"; import { get, post } from "./common-client"; const ENDPOINT = "/api/web"; const ENDPOINT_CREATE_CRM_CONTACT = `${ENDPOINT}/crmcontact`; const ENDPOINT_CREATE_AFFILIATES = `${ENDPOINT}/affiliates`; const ENDPOINT_TRANSLATION_DICTIONARY = `${ENDPOINT}/translation-dictionary`; const ENDPOINT_BOOKING_ACCOMMODATION = `${ENDPOINT}/booking-accommodation`; /** * api/web/crmcontact * Creates a CRM contact. * @param config * @param request * @param signal * @returns OK if succeeded. */ export const createCrmContact = ( config: TideClientConfig, request: CrmContactRequest, signal?: AbortSignal ): Promise<Response> => { const url = `${config.host}${ENDPOINT_CREATE_CRM_CONTACT}`; const apiKey = config.apiKey; const body = JSON.stringify(request); return post(url, apiKey, body, config.token, signal); }; /** * api/web/affiliates * Gets all Affiliates * @param config * @param signal * @returns OK if succeeded. */ export const getAffiliates = ( config: TideClientConfig, signal?: AbortSignal ): Promise<[Affiliate]> => { const url = `${config.host}${ENDPOINT_CREATE_AFFILIATES}`; const apiKey = config.apiKey; return get(url, apiKey, config.token, signal, true); }; export const getTranslationDictionary = ( config: TideClientConfig, segmentKey: string, signal?: AbortSignal ): Promise<{ [key: string]: object }> => { const url = `${config.host}${ENDPOINT_TRANSLATION_DICTIONARY}/${segmentKey}`; const apiKey = config.apiKey; return get(url, apiKey, undefined, signal); }; export const generateBookingAccommodations = ( config: TideClientConfig, request: GenerateBookingAccommodationRequest, signal?: AbortSignal ): Promise<{ [key: string]: string }> => { const url = `${config.host}${ENDPOINT_BOOKING_ACCOMMODATION}`; const apiKey = config.apiKey; const body = JSON.stringify(request); return post(url, apiKey, body, config.token, signal); };