omnipartners
Version:
Node.js wrapper for Omniparners API.
947 lines (946 loc) • 24.4 kB
TypeScript
import Api from "../../lib/Api";
import { IDeal, IDealListItem, IDirectCashbackDealDetail, IDirectCashbackRedemptionInput, IDirectCashbackRedemptionRequestInput, IDirectCashbackVoucherDetail, IUserDirectCashbackDealEligiblePet, IUserEligibleDirectCashbackDeal } from "../../types";
import { IDealProduct } from "../../deal-types";
export interface IRedeemWithReceiptInput {
barcode: string;
receipt_date: string;
mime_type: string;
product_ean_code?: string;
redemption_partner_extid?: string;
}
export interface IGetDealsListInput {
partner_extid?: string;
saving_product_ean?: string;
saving_collection_reference?: string;
benefit_product_ean?: string;
benefit_collection_reference?: string;
pet_search_by?: "PET_UNIVERSE" | "PET_BREED" | "PET_TYPE";
pet_search_val?: string;
deal_type?: string;
display_on_terminal?: 0 | 1;
deal_visibility?: "all" | "public";
active_only?: 0 | 1;
deal_group_handle?: string;
excl_deal_group_handle?: string;
}
interface IUpdateSecureCodePropertiesInput {
access_code: string;
status?: string;
referral_partner_ext_id?: string;
expiry_date?: string;
deal_ref?: string;
}
export interface ISubscribeToDealInput {
user_guid: string;
ref: string;
partner_extid?: string;
ean_code?: string;
collection_ref?: string;
secure_code?: string;
pet_guid?: string;
child_guid?: string;
external_tracking_ref?: string;
iban?: string;
bic?: string;
referral_code?: string;
referral_code_type?: string;
delivery_address_id?: string;
lang?: string;
utm_source?: string;
utm_campaign?: string;
utm_medium?: string;
}
interface ISubscribeToDealReturnPartner {
name: string;
street1: string;
street2: string;
streetnum: string;
postal_code: string;
city: string;
region: string;
country: string;
id: string;
extid: string;
type: string;
lat: string;
lng: string;
pub_name: string;
pub_street1: string;
pub_street2: string;
pub_streetnum: string;
pub_postal_code: string;
pub_city: string;
pub_region: string;
pub_country: string;
distance: string;
ptn_status: string;
}
export interface ISubscribeToDealReturn {
id: number;
user_guid: string;
external_tracking_reference: string;
ts_created: string;
barcode: string;
secure_code: string;
subs_partner_id: number;
coupon_id: number;
status: string;
pet_guid: string;
pet_status: string;
ts_redeemed: string;
barcode_url: string;
ts_subscribe: string;
product_id: string;
product: string;
saving_end_date: string;
redeem_validity_from: string;
redeem_validity_to: string;
redirect_url: string;
referral_partner: string[];
delivery_address: string[];
partner: ISubscribeToDealReturnPartner;
deal: IDeal;
}
export interface ISubscribeToDirectCashbackDealInput {
user_guid: string;
deal_ref: string;
pet_guid?: string;
child_guid?: string;
}
export interface IDealEligiblePet {
pet_guid: string;
pet_name: string;
}
export interface IDirectCashbackVoucherListInput {
user_guid: string;
pet_guid?: string;
child_guid?: string;
from?: string;
to?: string;
deal_ref?: string;
p_length?: string;
p_page?: string;
}
interface IPageInfo {
p_total: number;
p_length: number;
p_page: number;
}
export interface IDirectCashbackVoucherList extends IPageInfo {
records: IDirectCashbackVoucherListItem[];
}
export interface IDirectCashbackVoucherListItem {
user_guid: string;
barcode: string;
pet_guid?: string;
child_guid?: string;
status: string;
ts_created: string;
benefit_id?: string;
deal_ref: string;
benefit_amount?: string;
benefit_currency?: string;
benefit_product_id?: string;
redemption_request_in_progress: 0 | 1;
subs_ts_subscribe: string;
external_tracking_reference?: string;
subs_partner_id?: string;
coupon_id: number;
ts_redeemed?: string;
restriction_code?: string;
redeem_validity_from: string;
redeem_validity_to: string;
num_invi_resend: number;
ts_last_send?: string;
invt_link?: string;
}
export interface IDirectCashbackRedemptionRequestListInput {
user_guid: string;
status?: string;
barcode?: string;
sort_field?: string;
sort_order?: string;
p_length?: string;
p_page?: string;
}
export interface IDirectCashbackRedemptionRequestDetailInput {
receipt_id?: string;
}
export interface IDirectCashbackRedemptionRequestDetail {
id: string;
image_url: string;
barcode: string;
payment_type: string;
status: string;
benefit: IDirectCashbackRedemptionRequestDetailBenefit;
iban: string;
bic: string;
created_on: string;
updated_on: string;
}
export interface IDirectCashbackRedemptionRequestDetailBenefit {
amount: string;
currency: string;
}
export interface IDirectCashbackDealBenefit {
benefit_id: string;
benefit_value: string;
benefit_type: string;
}
export interface IDirectCashbackRedemptionRequestList extends IPageInfo {
records: IDirectCashbackRedemptionRequestListItem[];
}
export interface IDirectCashbackRedemptionRequestListItem {
user_guid: string;
image_url: string;
benefit_id: string;
barcode: string;
status: string;
iban: string;
bic: string;
created_on: string;
updated_on: string;
deal: {
ref: string;
};
}
interface IDirectCashbackVoucherApprovalHistorySubscriptionHistory {
status: string;
changed_on: string;
}
interface IDirectCashbackVoucherApprovalHistoryRedemptionRequestHistory {
id: string;
created_on: string;
updated_on: string;
transaction_id: string;
external_payment_ref: string;
payment_ref: {
iban: string;
};
payment_id: string;
estimated_delivery_date: string;
status: string;
image_url: string;
history: {
changed_on: string;
old_status: string;
new_status: string;
message: string;
error?: string;
description?: string;
}[];
}
export interface IDirectCashbackVoucherApprovalHistory {
sub_id: string;
sub_barcode: string;
sub_current_status: string;
sub_created: string;
sub_updated: string;
sub_history: IDirectCashbackVoucherApprovalHistorySubscriptionHistory[];
sub_redemption_requests: IDirectCashbackVoucherApprovalHistoryRedemptionRequestHistory[];
}
export declare type IDirectCashbackDealDataOptions = IDirectCashbackDealDataOption | IDirectCashbackDealDataOption[];
declare type IDirectCashbackDealDataOption = "basic_details" | "benefits" | "benefit_product_detail";
export interface IDirectCashbackDealDetailInput {
ref: string;
default_lang?: string;
data_options?: IDirectCashbackDealDataOptions;
}
export declare type IDealDataOptions = IDealDataOption | IDealDataOption[];
declare type IDealDataOption = "collection_association" | "basic_details" | "products" | "product_collections" | "product_collection_images" | "product_quantity_details" | "benefits" | "benefit_product_details" | "benefit_products" | "benefit_product_collections" | "benefit_product_collection_images" | "partner_restriction_detail" | "partner_restrictions" | "groups" | "pet_restrictions" | "loyalty_reward" | "pet_tags" | "pet_stages" | "subscription_limit";
export declare type IDealSubscriptionDataOptions = IDealSubscriptionDataOption | IDealSubscriptionDataOption[];
declare type IDealSubscriptionDataOption = "partner";
export declare type DealType = "COUPON" | "PRESENT" | "SAVING" | "PAYING" | "LOYALTY" | "CASHBACK" | "DIRECT CASHBACK";
declare type IVoucherListInputDealTypes = DealType | DealType[];
export interface IVoucherListInput {
user_guid?: string;
pet_guid?: string;
child_guid?: string;
show?: "basic" | "extended";
from?: string;
to?: string;
redeemed_from?: string;
redeemed_to?: string;
barcode?: string;
external_tracking_ref?: string;
partner_extid?: string;
deal_ref?: string;
deal_types?: IVoucherListInputDealTypes;
redemption_request_status?: string;
deal_data_options?: IDealDataOptions;
data_options?: IDealSubscriptionDataOptions;
coupon_id?: string;
status?: "INVITED" | "SUBSCRIBED" | "REDEEMED";
inv_resend_count?: string;
sort_field?: string;
sort_order?: string;
q?: string;
p_length?: number;
p_page?: number;
default_lang?: string;
}
export interface IVoucher {
user_guid: string;
pet_guid: string | null;
child_guid: string | null;
ts_created: string;
subs_ts_subscribe: string | null;
external_tracking_reference: string | null;
barcode: string;
subs_partner_id: number;
coupon_id: number;
status: string;
deal_ref: string;
ts_redeemed: string | null;
restriction_code: string | null;
redeem_validity_from: string | null;
redeem_validity_to: string | null;
product: string;
num_invi_resend: number;
ts_last_send: string;
invt_link: string;
partner: {
name: string;
street1: string;
street2: string;
streetnum: string;
postal_code: string;
city: string;
region: string;
country: string;
id: string;
extid: string;
type: string;
lat: string;
lng: string;
pub_name: string;
pub_street1: string;
pub_street2: string;
pub_streetnum: string;
pub_postal_code: string;
pub_city: string;
pub_region: string;
pub_country: string;
distance: string;
ptn_status: string;
};
child?: {
child_birthday: string;
child_added_on: string;
child_updated_on: string;
child_gender: string;
child_guid: string;
child_first_name: string;
child_parent: string;
child_status: string;
child_ext_id: string;
};
deal?: IDeal;
}
export interface IVoucherDetail {
id: string;
user_guid: string;
barcode: string;
status: string;
pet_guid: string;
ts_redeemed: string;
active_redemption_request_status: string;
ts_subscribed: string;
redeem_validity_from: string;
redeem_validity_to: string;
deal: IDeal;
ts_created: string;
secure_code?: string;
subs_partner_id?: string;
coupon_id: number;
is_in_redeemable_status: 0 | 1;
is_redeemed: boolean;
pet_status: string;
redeem_partner_id?: string;
redeem_partner: string[];
barcode_url?: string;
product_id: string;
benefit: IVoucherBenefit;
}
export interface IVoucherBenefit {
product_id?: string;
amount?: string;
currency?: string;
}
export interface IVoucherDetailInput {
barcode: string;
coupon_id?: string;
deal_data_options?: IDealDataOptions;
data_options?: IDealSubscriptionDataOptions;
}
export interface IGetVisiblePartnerInput {
deal_ref: string;
user_guid: string;
search?: string;
favorite_only?: boolean;
partner_lat?: string;
partner_lng?: string;
radius?: string;
p_page?: number;
p_length?: number;
limit?: number;
}
export declare type IRegisteredPartnerDataOptions = IRegisteredPartnerDataOption | IRegisteredPartnerDataOption[];
declare type IRegisteredPartnerDataOption = "public_info" | "location" | "groups" | "logo";
export interface IGetRegisteredPartnerInput {
deal_ref: string;
search_term?: string;
partner_lat?: string;
partner_lng?: string;
radius?: string;
p_page: number;
p_length?: number;
partner_type?: string;
partner_status?: string;
partner_group?: string;
partner_mode?: "subscription" | "redemption" | "referral";
data_options?: IRegisteredPartnerDataOptions;
}
export interface IDealPartner {
name: string;
street1?: string;
street2?: string;
streetnum?: string;
postal_code?: string;
city?: string;
region?: string;
country?: string;
id: string;
extid: string;
type: string;
lat?: string;
lng?: string;
pub_name?: string;
pub_street1?: string;
pub_street2?: string;
pub_streetnum?: string;
pub_postal_code?: string;
pub_city?: string;
pub_region?: string;
pub_country?: string;
distance?: string;
ptn_status?: string;
groups?: string[];
has_logo?: 0 | 1;
logo?: string | null;
logo_small?: string | null;
logo_medium?: string | null;
logo_large?: string | null;
}
export declare type ISecureCodeDataOptions = ISecureCodeDataOption | ISecureCodeDataOption[];
declare type ISecureCodeDataOption = "subscription" | "deals" | "referral_partner" | "expiration_date";
interface IReferralPartner {
id: string;
ref_name: string;
extid: string;
street1: string;
street2: string;
streetnum: string;
postal_code: string;
city: string;
country: string;
status: string;
}
export interface IRedeemVoucherInput {
barcode?: string;
secure_code?: string;
user_guid?: string;
pet_guid?: string;
child_guid?: string;
external_tracking_ref?: string;
iban?: string;
bic?: string;
delivery_address_id?: string;
ean_code?: string;
ref?: string;
shop_id?: string;
type?: "terminal" | "extid";
referral_code?: string;
referral_code_type?: string;
}
export interface IRedeemVoucherResult {
data: {
user_guid: string;
ts_created: string;
barcode: string;
subs_partner_id: number;
coupon_id: number;
status: string;
deal_voucher: IVoucher;
subscription_status_code: number;
feedback_msg: string;
};
status: string;
}
export default class Deals extends Api {
defaultHost: string;
errorMap: {
1005: {
message: string;
};
1006: {
message: string;
};
1008: {
message: string;
};
1009: {
message: string;
};
1010: {
message: string;
};
1024: {
message: string;
};
2001: {
message: string;
};
2002: {
message: string;
};
2003: {
message: string;
};
2006: {
message: string;
};
2008: {
message: string;
};
2021: {
message: string;
};
3020: {
message: string;
};
3022: {
message: string;
};
3023: {
message: string;
};
3026: {
message: string;
};
3031: {
message: string;
};
3033: {
message: string;
};
3035: {
message: string;
};
3044: {
message: string;
};
3059: {
message: string;
};
3051: {
message: string;
};
3034: {
message: string;
};
1019: {
message: string;
};
3055: {
message: string;
};
3027: {
message: string;
};
3028: {
message: string;
};
3029: {
message: string;
};
3045: {
message: string;
};
3049: {
message: string;
};
3030: {
message: string;
};
3056: {
message: string;
};
3052: {
message: string;
};
3053: {
message: string;
};
3054: {
message: string;
};
3057: {
message: string;
};
3058: {
message: string;
};
3060: {
message: string;
};
3061: {
message: string;
};
3063: {
message: string;
};
3064: {
message: string;
};
3069: {
message: string;
};
3086: {
message: string;
};
3087: {
message: string;
};
3088: {
message: string;
};
3091: {
message: string;
};
3092: {
message: string;
};
3093: {
message: string;
};
3097: {
message: string;
};
3098: {
message: string;
};
3108: {
message: string;
};
3109: {
message: string;
};
3110: {
message: string;
};
3111: {
message: string;
};
3112: {
message: string;
};
3113: {
message: string;
};
3144: {
message: string;
};
5000: {
message: string;
};
1023: {
message: string;
};
1025: {
message: string;
};
1027: {
message: string;
};
1029: {
message: string;
};
1030: {
message: string;
};
1032: {
message: string;
};
1035: {
message: string;
};
1036: {
message: string;
};
1037: {
message: string;
};
1038: {
message: string;
};
1039: {
message: string;
};
1040: {
message: string;
};
1042: {
message: string;
};
1047: {
message: string;
};
1046: {
message: string;
};
1048: {
message: string;
};
1049: {
message: string;
};
1050: {
message: string;
};
1051: {
message: string;
};
1052: {
message: string;
};
1053: {
message: string;
};
3025: {
message: string;
};
3050: {
message: string;
};
3062: {
message: string;
};
3124: {
message: string;
};
3048: {
message: string;
};
3094: {
message: string;
};
3096: {
message: string;
};
3115: {
message: string;
};
3119: {
message: string;
};
3118: {
message: string;
};
3120: {
message: string;
};
3121: {
message: string;
};
3122: {
message: string;
};
3127: {
message: string;
};
3128: {
message: string;
};
3131: {
message: string;
};
3132: {
message: string;
};
3133: {
message: string;
};
3134: {
message: string;
};
3135: {
message: string;
};
3116: {
message: string;
};
3123: {
message: string;
};
};
getDealsList(data: IGetDealsListInput): Promise<{
data: IDealListItem[];
status: string;
}>;
getDeal({ data_options, ...data }: {
ref: string;
default_lang: string;
data_options?: IDealDataOptions;
}): Promise<{
data: IDeal;
}>;
getRegisteredPartners({ data_options, ...data }: IGetRegisteredPartnerInput): Promise<{
data: IDealPartner[];
} & IPageInfo>;
getVisiblePartner(data: IGetVisiblePartnerInput): Promise<{
data: IDealPartner[];
} & IPageInfo>;
checkPartnerValidity(data: {
deal_ref: string;
partner_extid: string;
}): Promise<{
data: {
is_valid: boolean;
};
}>;
checkDealValidity(data: {
user_guid: string;
deal_ref: string;
} | {
user_guid: string;
pet_guid: string;
deal_ref: string;
} | {
user_guid: string;
child_guid: string;
deal_ref: string;
}): Promise<any>;
subscribeToDeal(data: ISubscribeToDealInput): Promise<{
data: ISubscribeToDealReturn;
}>;
listVouchers(data: IVoucherListInput): Promise<{
data: IVoucher[];
status: string;
} & IPageInfo>;
redeemVoucher(data: IRedeemVoucherInput): Promise<IRedeemVoucherResult>;
getVoucherDetail(data: IVoucherDetailInput): Promise<{
data: IVoucherDetail;
}>;
listEligiblePets(data: {
deal_ref: string;
user_guid: string;
}): Promise<{
data: IDealEligiblePet[];
}>;
getProductList(data: {
deal_ref: string;
}): Promise<{
data: IDealProduct[];
}>;
checkSecureCode({ data_options, ...data }: {
deal_ref?: string;
code: string;
data_options?: ISecureCodeDataOptions;
}): Promise<{
data: {
is_available: boolean;
deals: string[];
referral_partner?: IReferralPartner;
};
}>;
getSecureCode(data: {
deal_ref?: string;
}): Promise<{
data: {
code: string;
};
}>;
updateSecureCodeProperties(data: IUpdateSecureCodePropertiesInput): Promise<{
successCode: number;
}>;
listEligibleDirectCashbackDeals(data: {
user_guid: string;
pet_guid?: string;
child_guid?: string;
}): Promise<{
data: IUserEligibleDirectCashbackDeal[];
}>;
listDirectCashbackEligiblePets(data: {
deal_ref: string;
user_guid: string;
}): Promise<{
data: IUserDirectCashbackDealEligiblePet[];
}>;
getDirectCashbackDealDetail(data: IDirectCashbackDealDetailInput): Promise<{
data: IDirectCashbackDealDetail;
}>;
getDirectCashbackVoucherList(data: IDirectCashbackVoucherListInput): Promise<{
data: IDirectCashbackVoucherList;
}>;
getDirectCashbackVoucherDetail({ deal_data_options, ...data }: {
barcode: string;
deal_data_options?: IDirectCashbackDealDataOptions;
}): Promise<{
data: IDirectCashbackVoucherDetail;
}>;
getDirectCashbackDealBenefit(data: {
product_ean: string;
deal_ref: string;
}): Promise<{
data: IDirectCashbackDealBenefit;
}>;
subscribeToDirectCashbackDeal(data: ISubscribeToDirectCashbackDealInput): Promise<{
barcode: string;
status: number;
}>;
createDirectCashbackRedemptionRequest(data: IDirectCashbackRedemptionRequestInput): Promise<{
data: {
presigned_url: string;
tier_purchase_image_presigned_url?: string;
};
}>;
createDirectCashbackRedemption(data: IDirectCashbackRedemptionInput): Promise<{
statusCode: string;
}>;
getDirectCashbackRedemptionRequestList(data: IDirectCashbackRedemptionRequestListInput): Promise<{
data: IDirectCashbackRedemptionRequestList;
}>;
getDirectCashbackRedemptionRequestDetail(data: IDirectCashbackRedemptionRequestDetailInput): Promise<{
data: IDirectCashbackRedemptionRequestDetail;
}>;
getDirectCashbackVoucherApprovalHistory(data: {
barcode: string;
lang?: string;
sort_field?: string;
sort_order?: "DESC" | "ASC";
}): Promise<{
data: IDirectCashbackVoucherApprovalHistory;
}>;
getVoucherPDF(data: {
barcode: string;
}): Promise<{
url: string;
status: string;
}>;
disableVoucherRedemption(data: {
barcode: string;
}): Promise<{}>;
sendVoucher(data: {
barcode: string;
email?: string;
default_lang?: string;
}): Promise<{}>;
redeemWithReceipt(data: IRedeemWithReceiptInput): Promise<{
data: {
presigned_url: string;
};
}>;
private _call;
}
export {};