omnipartners
Version:
Node.js wrapper for Omniparners API.
196 lines (195 loc) • 5.44 kB
TypeScript
/// <reference types="node" />
import { Readable } from "stream";
import Api, { IApiFetchOptions } from "../../lib/Api";
import { IPartnerAddOpeningHoursInput, IPartnerDeleteOpeningHoursInput, IPartnerDetails, IPartnerLink, IPartnerLinks, IPartnerListItem, IPartnerLocatorInput, IPartnerUpdateInput, IPartnerListItemInput, IPartnerDetailsDataOptions, IPartnerLocatorLocateInput } from "../../partner-types";
export interface IPartnerGroup {
partner_group_name: string;
partner_group_handle: string;
is_availability_group: "0" | "1";
}
export default class Partners extends Api {
defaultHost: string;
errorMap: {
1000: {
message: string;
};
1001: {
message: string;
};
1002: {
message: string;
};
1003: {
message: string;
};
1004: {
message: string;
};
1005: {
message: string;
};
1006: {
message: string;
};
1007: {
message: string;
};
1008: {
message: string;
};
1025: {
message: string;
};
1032: {
message: string;
};
1036: {
message: string;
};
1040: {
message: string;
};
};
_call(action: string, data?: {}, options?: IApiFetchOptions): Promise<any>;
listPartners(data: IPartnerListItemInput): Promise<{
data: IPartnerListItem[];
page: string;
rows: string;
total_rows: number;
total_pages: number;
}>;
findPartners(data: IPartnerLocatorInput): Promise<{
data: IPartnerDetails[];
}>;
locatePartners({ data_options, ...data }?: IPartnerLocatorLocateInput): Promise<{
data: IPartnerDetails[];
}>;
partnerDetails<T extends Record<string, unknown> = {}>({ partner_ext_id, data_options, ...data }: {
partner_ext_id: string | readonly string[];
indexed_result?: string;
lang?: string;
data_options?: IPartnerDetailsDataOptions;
}): Promise<{
data: IPartnerDetails<T>[];
}>;
featuredActivities(data: {
lang: string;
}): Promise<any>;
getLinks(data: {
partner_ext_id: string;
type?: string;
}): Promise<{
statusCode: number;
links: IPartnerLinks;
}>;
addLink(data: {
partner_ext_id: string;
type: string;
link_data: IPartnerLink["contents"];
}): Promise<{
statusCode: number;
link_id?: number;
type?: string;
}>;
deleteLink(data: {
partner_ext_id: string;
type: string;
link_id: number;
}): Promise<{
statusCode: number;
}>;
updatePartner(data: IPartnerUpdateInput): Promise<{
data: IPartnerDetails;
}>;
addPartner(data: Required<Pick<IPartnerUpdateInput, "partner_ext_id" | "partner_inv_name" | "partner_pub_name" | "partner_type" | "partner_prim_cnt_language">> & Partial<IPartnerUpdateInput>): Promise<{
data: IPartnerDetails;
}>;
resolvePartnerByTerminalId(data: {
terminal_id: string;
}): Promise<{
data: {
partner_ext_id: string;
};
}>;
listPartnerGroups(data: {
partner_group_handle?: string;
partner_type?: string;
}): Promise<{
data: IPartnerGroup[];
}>;
addRelation(data: {
partner_ext_id: string;
relation_type: string;
reference: string;
}): Promise<{
statusCode: number;
}>;
deleteRelation(data: {
partner_ext_id: string;
relation_type: string;
reference: string;
}): Promise<{
statusCode: number;
}>;
updatePartnerLogo(data: {
partner_ext_id: string;
partner_logo: string | Readable | {
value: Buffer;
options: {
filename: string;
};
};
}): Promise<{
statusCode: number;
}>;
getLogoURLs(data: {
partner_ext_id: string;
}): Promise<{
statusCode: number;
data: {
partner_logo: string | null;
partner_logo_small: string | null;
partner_logo_medium: string | null;
partner_logo_large: string | null;
};
}>;
addOpeningHours(data: IPartnerAddOpeningHoursInput): Promise<{
statusCode: number;
}>;
deleteOpeningHours(data: IPartnerDeleteOpeningHoursInput): Promise<{
statusCode: number;
}>;
updatePartnerStock(data: {
partner_ext_id: string;
product_ean: string;
stock_level?: number | string;
}): Promise<{
statusCode: number;
}>;
addMissingStockItem(data: {
partner_ext_id: string;
product_ean?: string;
collection_ref?: string;
user_guid?: string;
}): Promise<{
statusCode: number;
data?: {
existing_records: {
products: string[];
};
};
}>;
addToGroup(data: {
partner_ext_id: string;
partner_group_handle: string;
email_notify?: true;
}): Promise<{
statusCode: number;
}>;
removeFromGroup(data: {
partner_ext_id: string;
partner_group_handle: string;
}): Promise<{
statusCode: number;
}>;
}