UNPKG

migros-api-wrapper

Version:

Making the api of migros more accessible to the public.

56 lines (45 loc) 1.48 kB
import { StoreType } from "../enums/StoreType"; import { Region } from "../enums/Region"; import { getRequest } from "../../utils/requests"; import { migrosApiPaths } from "../apiPaths"; import { IMigrosNecessaryHeaders } from "../interfaces/headers"; const url = migrosApiPaths["product-display"].public.v2 + "/product-detail"; export interface IProductDetailOptions extends Record<string, any> { uids?: string | string[]; storeType?: StoreType; region?: Region; newCategoryTree?: boolean; warehouseId?: number; ongoingOfferDate?: string; migrosIds?: string; } const defaultProductDetailOptions: IProductDetailOptions = { warehouseId: 1, storeType: StoreType.OFFLINE, region: Region.NATIONAL, }; async function getProductDetailRequest( url: string, options: IProductDetailOptions, headers: IMigrosNecessaryHeaders, ): Promise<Record<string, any>> { if (Array.isArray(options.uids)) { options.uids = options.uids.join(","); } const necessaryHeaders = { accept: "application/json, text/plain, *!/!*", ...headers, }; const response = await getRequest(url, options, necessaryHeaders); return await response.json(); } export async function getProductDetail( productDetailOptions: IProductDetailOptions, headers: IMigrosNecessaryHeaders, ): Promise<any> { productDetailOptions = { ...defaultProductDetailOptions, ...productDetailOptions, }; return getProductDetailRequest(url, productDetailOptions, headers); }