UNPKG

omnisend-node-sdk

Version:

🔹 Typesafe Omnisend API SDK for Node.js

367 lines (366 loc) • 14 kB
import type { PagingLink } from "../data-contracts"; import type { HttpClient, RequestParams } from "../http-client"; export declare class Batches<SecurityDataType = unknown, SafeMode extends true | false = false> { http: HttpClient<SecurityDataType, SafeMode>; constructor(http: HttpClient<SecurityDataType, SafeMode>); /** * @description ## Examples ## **Batch post contacts** ```json { "method": "POST", "endpoint": "contacts", "items": [ { "identifiers": [ { "type":"email", "id": "vanessa.kensington@example.com", "channels": { "email": { "status": "subscribed", "statusDate": "2019-05-30T14:11:12Z" } } } ] }, { "identifiers": [ { "type":"email", "id": "vanessa@example.com", "channels": { "email": { "status": "subscribed", "statusDate": "2019-05-30T14:11:12Z" } } } ], "firstName":"Vanessa" } ] } ``` **Batch post events (trigger event)** ```json { "method": "POST", "endpoint": "events", "eventID":"5a3a57235ff78f4307346af5", "items": [ { "email": "test@example.com", "phone": "+12025550142", "fields": { "size": "M", "bust": 100, "waterproof": true, "packageWeight": 12.2, "manualUrl": "http://www.example.com/uploads/prodManual.pdf", "validUntil": "2017-05-30T14:11:12Z" } }, { "email": "test2@example.com", "fields": { "size": "M", "bust": 100, "waterproof": true, "packageWeight": 12.2, "manualUrl": "http://www.example.com/uploads/prodManual.pdf", "validUntil": "2017-05-30T14:11:12Z" } } ] } ``` **Batch put products** ```json { "endpoint": "products", "method": "PUT", "items": [ { "productID": "123", "currency": "EUR", "title": "Book1", "productUrl": "https://mystore.com/book1", "variants": [ { "variantID": "abc", "title": "Book1", "price": 5 } ], "imageUrl": "https://mystore.com/book1.jpg" }, { "productID": "456", "currency": "EUR", "title": "Book2", "productUrl": "https://mystore.com/book2", "variants": [ { "variantID": "cde", "title": "Book2", "price": 23 } ], "imageUrl": "https://mystore.com/book2.jpg" } ] } ``` * * @tags Batches * @name PostBatches * @summary Create batch * @request POST:/batches * @secure */ postBatches: (data: { method?: string; endpoint?: "contacts" | "orders" | "products" | "events" | "categories"; eventID?: string; items?: { param?: string; }[]; }, params?: RequestParams) => Promise<SafeMode extends true ? { success: false; error?: string | undefined; } | { success: true; data: { batchID?: string | undefined; totalCount?: number | undefined; }; } : { batchID?: string | undefined; totalCount?: number | undefined; }>; /** * @description Get list of `batches`. List of batches is available for `7 days`. Query parameter `endpoint` is required. You can list batches with endpoint for which API Key has permission. * * @tags Batches * @name GetBatches * @summary List batches * @request GET:/batches * @secure */ getBatches: (query: { /** * Number of results to skip. Default is 0. * @min 0 * @default 0 */ offset?: number; /** * Number of results to fetch. Default is 100, max 250. * @min 1 * @max 250 * @default 100 */ limit?: number; status?: "pending" | "inProgress" | "finished" | "stopped"; /** * Batch creation date from. Format: YYYY-MM_DD * @format date */ dateFrom?: string; /** * Batch creation date to. Format: YYYY-MM_DD * @format date */ dateTo?: string; /** API key needs to have permission to read this endpoint */ endpoint: "contacts" | "orders" | "products" | "events" | "categories"; }, params?: RequestParams) => Promise<SafeMode extends true ? { success: false; error?: string | undefined; } | { success: true; data: { batches?: { batchID: string; method?: string | undefined; endpoint?: string | undefined; eventID?: string | undefined; status: "pending" | "inProgress" | "finished"; /** * Batch creation date * @format date-time */ createdAt: string; /** * Batch start date * @format date-time */ startedAt?: string | undefined; /** * Batch finish date. * @format date-time */ endedAt?: string | undefined; /** * Count of operations. * @min 2 */ totalCount?: number | undefined; /** Finished operations count, including finished with errors. */ finishedCount?: number | undefined; /** Finished with errors operations count. */ errorsCount?: number | undefined; }[] | undefined; paging?: PagingLink | undefined; }; } : { batches?: { batchID: string; method?: string | undefined; endpoint?: string | undefined; eventID?: string | undefined; status: "pending" | "inProgress" | "finished"; /** * Batch creation date * @format date-time */ createdAt: string; /** * Batch start date * @format date-time */ startedAt?: string | undefined; /** * Batch finish date. * @format date-time */ endedAt?: string | undefined; /** * Count of operations. * @min 2 */ totalCount?: number | undefined; /** Finished operations count, including finished with errors. */ finishedCount?: number | undefined; /** Finished with errors operations count. */ errorsCount?: number | undefined; }[] | undefined; paging?: PagingLink | undefined; }>; /** * @description Get `batch` info. Batch will be removed after `7 days`. You can get `batch` info, only if API Key has permission to view batch endpoint. * * @tags Batches * @name GetBatch * @summary Get batch * @request GET:/batches/{batchID} * @secure */ getBatch: (batchId: string, params?: RequestParams) => Promise<SafeMode extends true ? { success: false; error?: string | undefined; } | { success: true; data: { batchID?: string | undefined; method?: string | undefined; endpoint?: string | undefined; eventID?: string | undefined; status?: "pending" | "inProgress" | "finished" | undefined; /** * Batch creation date * @format date-time */ createdAt?: string | undefined; /** * Batch start date * @format date-time */ startedAt?: string | undefined; /** * Batch finish date. * @format date-time */ endedAt?: string | undefined; /** * Count of operations. * @min 2 */ totalCount?: number | undefined; /** Finished operations count, including finished with errors. */ finishedCount?: number | undefined; /** Finished with errors operations count. */ errorsCount?: number | undefined; }; } : { batchID?: string | undefined; method?: string | undefined; endpoint?: string | undefined; eventID?: string | undefined; status?: "pending" | "inProgress" | "finished" | undefined; /** * Batch creation date * @format date-time */ createdAt?: string | undefined; /** * Batch start date * @format date-time */ startedAt?: string | undefined; /** * Batch finish date. * @format date-time */ endedAt?: string | undefined; /** * Count of operations. * @min 2 */ totalCount?: number | undefined; /** Finished operations count, including finished with errors. */ finishedCount?: number | undefined; /** Finished with errors operations count. */ errorsCount?: number | undefined; }>; /** * No description * * @tags Batches * @name GetBatchBatchIdItems * @summary List batch items * @request GET:/batches/{batchID}/items * @secure */ getBatchBatchIdItems: (batchId: string, params?: RequestParams) => Promise<SafeMode extends true ? { success: false; error?: string | undefined; } | { success: true; data: { batchID: string; method?: string | undefined; endpoint?: string | undefined; eventID?: string | undefined; status: "pending" | "inProgress" | "finished"; /** * Batch creation date * @format date-time */ createdAt: string; /** * Batch start date. * @format date-time */ startedAt?: string | undefined; /** * Batch finish date. * @format date-time */ endedAt?: string | undefined; /** * Total count of items. * @min 2 */ totalCount?: number | undefined; /** Finished items count, including finished with errors. */ finishedCount?: number | undefined; /** Finished with errors items count. */ errorsCount?: number | undefined; errors?: { itemID?: string | undefined; request?: object | undefined; responseCode?: number | undefined; /** JSON response. Same as one request result (see each endpoint method's response). */ response?: object | undefined; status?: string | undefined; }[] | undefined; responses?: { itemID?: string | undefined; request?: object | undefined; responseCode?: number | undefined; /** JSON response. Same as one request result (see each endpoint method's response). */ response?: object | undefined; status?: string | undefined; }[] | undefined; }; } : { batchID: string; method?: string | undefined; endpoint?: string | undefined; eventID?: string | undefined; status: "pending" | "inProgress" | "finished"; /** * Batch creation date * @format date-time */ createdAt: string; /** * Batch start date. * @format date-time */ startedAt?: string | undefined; /** * Batch finish date. * @format date-time */ endedAt?: string | undefined; /** * Total count of items. * @min 2 */ totalCount?: number | undefined; /** Finished items count, including finished with errors. */ finishedCount?: number | undefined; /** Finished with errors items count. */ errorsCount?: number | undefined; errors?: { itemID?: string | undefined; request?: object | undefined; responseCode?: number | undefined; /** JSON response. Same as one request result (see each endpoint method's response). */ response?: object | undefined; status?: string | undefined; }[] | undefined; responses?: { itemID?: string | undefined; request?: object | undefined; responseCode?: number | undefined; /** JSON response. Same as one request result (see each endpoint method's response). */ response?: object | undefined; status?: string | undefined; }[] | undefined; }>; /** * No description * * @tags Batches * @name GetBatchBatchIdItemsItemId * @summary Get batch item * @request GET:/batches/{batchID}/items/{itemID} * @secure */ getBatchBatchIdItemsItemId: (batchId: string, itemId: string, params?: RequestParams) => Promise<SafeMode extends true ? { success: false; error?: string | undefined; } | { success: true; data: { batchID: string; method?: string | undefined; endpoint?: string | undefined; eventID?: string | undefined; itemID?: string | undefined; request?: object | undefined; responseCode?: number | undefined; /** JSON response. Same as one request result (see each endpoint method's response). */ response?: object | undefined; status?: string | undefined; }; } : { batchID: string; method?: string | undefined; endpoint?: string | undefined; eventID?: string | undefined; itemID?: string | undefined; request?: object | undefined; responseCode?: number | undefined; /** JSON response. Same as one request result (see each endpoint method's response). */ response?: object | undefined; status?: string | undefined; }>; }