customerio-node
Version:
A node client for the Customer.io event API. http://customer.io
36 lines (35 loc) • 1.3 kB
TypeScript
/// <reference types="node" />
import type { RequestOptions } from 'https';
export type BasicAuth = {
apikey: string;
siteid: string;
};
export type BearerAuth = string;
export type RequestAuth = BasicAuth | BearerAuth;
export type RequestData = Record<string, any> | undefined;
export type RequestHandlerOptions = {
method: RequestOptions['method'];
uri: string;
headers: RequestOptions['headers'];
body?: string | null;
};
export interface PushRequestData {
delivery_id?: string;
device_id?: string;
event?: 'delivered' | 'opened' | 'converted';
timestamp?: number;
}
export default class CIORequest {
apikey?: BasicAuth['apikey'];
siteid?: BasicAuth['siteid'];
appKey?: BearerAuth;
auth: string;
defaults: RequestOptions;
constructor(auth: RequestAuth, defaults?: RequestOptions);
options(uri: string, method: RequestOptions['method'], data?: RequestData): RequestHandlerOptions;
handler({ uri, body, method, headers }: RequestHandlerOptions): Promise<Record<string, any>>;
get(uri: string): Promise<Record<string, any>>;
put(uri: string, data?: RequestData): Promise<Record<string, any>>;
destroy(uri: string): Promise<Record<string, any>>;
post(uri: string, data?: RequestData): Promise<Record<string, any>>;
}