UNPKG

@rudderstack/integrations-lib

Version:

A comprehensive TypeScript library providing shared utilities, SDKs, and tools for RudderStack integrations and destinations.

65 lines 8.59 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const utils_1 = require("./utils"); const base_sdk_1 = require("../common/base-sdk"); const REGION_URLS = { US: 'https://api.customer.io/v1', EU: 'https://api-eu.customer.io/v1', }; class CustomerIOSegment extends base_sdk_1.BaseSDK { // eslint-disable-next-line class-methods-use-this validateAuthObject(authObject) { if (!authObject?.appApiKey || typeof authObject.appApiKey !== 'string') { throw new Error('appApiKey is required and must be a string'); } } buildRequestUrl(endpoint) { const region = this.config?.region ?? 'US'; const baseUrl = REGION_URLS[region]; const cleanEndpoint = endpoint.startsWith('/') ? endpoint : `/${endpoint}`; return `${baseUrl}${cleanEndpoint}`; } getHeaders() { return { Accept: 'application/json', Authorization: `Bearer ${this.authObject.appApiKey}`, }; } /** * This method fetches the segments. If unable to fetch the segments, it returns a RestError. * ref: https://docs.customer.io/api/app/#operation/listSegments * @param statTags - Optional stat tags for metrics and logging * @returns */ async getSegments(statTags) { const customStatTags = { ...statTags, endpointPath: `/segments`, }; const resp = await this.get('/segments', customStatTags); if (resp.type === 'success') { return resp.responseBody; } throw new utils_1.RestError(resp.message, resp.statusCode); } /** * This method creates a manual segment. It requires the segment body. The method returns the created segment. If the manual segment is not created, it returns a RestError. * ref: https://docs.customer.io/api/app/#operation/createManSegment * @param body CreateSegment fields * @param statTags - Optional stat tags for metrics and logging * @returns */ async createSegment(body, statTags) { const customStatTags = { ...statTags, endpointPath: `/segments`, }; const resp = await this.post('/segments', body, customStatTags); if (resp.type === 'success') { return resp.responseBody; } throw new utils_1.RestError(resp.message, resp.statusCode); } } exports.default = CustomerIOSegment; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2Rrcy9jdXN0b21lcmlvX2F1ZGllbmNlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBUUEsbUNBQW9DO0FBRXBDLGlEQUE2QztBQUc3QyxNQUFNLFdBQVcsR0FBcUM7SUFDcEQsRUFBRSxFQUFFLDRCQUE0QjtJQUNoQyxFQUFFLEVBQUUsK0JBQStCO0NBQ3BDLENBQUM7QUFFRixNQUFxQixpQkFBa0IsU0FBUSxrQkFBcUM7SUFDbEYsa0RBQWtEO0lBQ2xELGtCQUFrQixDQUFDLFVBQXNCO1FBQ3ZDLElBQUksQ0FBQyxVQUFVLEVBQUUsU0FBUyxJQUFJLE9BQU8sVUFBVSxDQUFDLFNBQVMsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUN2RSxNQUFNLElBQUksS0FBSyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7UUFDaEUsQ0FBQztJQUNILENBQUM7SUFFUyxlQUFlLENBQUMsUUFBZ0I7UUFDeEMsTUFBTSxNQUFNLEdBQXFCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxJQUFJLElBQUksQ0FBQztRQUM3RCxNQUFNLE9BQU8sR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEMsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQzNFLE9BQU8sR0FBRyxPQUFPLEdBQUcsYUFBYSxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVTLFVBQVU7UUFDbEIsT0FBTztZQUNMLE1BQU0sRUFBRSxrQkFBa0I7WUFDMUIsYUFBYSxFQUFFLFVBQVUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUU7U0FDckQsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILEtBQUssQ0FBQyxXQUFXLENBQUMsUUFBbUI7UUFDbkMsTUFBTSxjQUFjLEdBQWE7WUFDL0IsR0FBRyxRQUFRO1lBQ1gsWUFBWSxFQUFFLFdBQVc7U0FDMUIsQ0FBQztRQUNGLE1BQU0sSUFBSSxHQUFxQyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQzNELFdBQVcsRUFDWCxjQUFjLENBQ2YsQ0FBQztRQUNGLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUM1QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDM0IsQ0FBQztRQUNELE1BQU0sSUFBSSxpQkFBUyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxLQUFLLENBQUMsYUFBYSxDQUNqQixJQUF1QixFQUN2QixRQUFtQjtRQUVuQixNQUFNLGNBQWMsR0FBYTtZQUMvQixHQUFHLFFBQVE7WUFDWCxZQUFZLEVBQUUsV0FBVztTQUMxQixDQUFDO1FBQ0YsTUFBTSxJQUFJLEdBQXVDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FDOUQsV0FBVyxFQUNYLElBQUksRUFDSixjQUFjLENBQ2YsQ0FBQztRQUNGLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUM1QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDM0IsQ0FBQztRQUNELE1BQU0sSUFBSSxpQkFBUyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3JELENBQUM7Q0FDRjtBQXBFRCxvQ0FvRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBdXRoT2JqZWN0LFxuICBDcmVhdGVTZWdtZW50Qm9keSxcbiAgQ3JlYXRlU2VnbWVudFJlc3BvbnNlLFxuICBHZXRTZWdtZW50c1Jlc3BvbnNlLFxuICBDdXN0b21lcklPQ29uZmlnLFxuICBDdXN0b21lcklPUmVnaW9uLFxufSBmcm9tICcuL3R5cGUnO1xuaW1wb3J0IHsgUmVzdEVycm9yIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBBcGlSZXNwb25zZSB9IGZyb20gJy4uLy4uL25ldHdvcmsnO1xuaW1wb3J0IHsgQmFzZVNESyB9IGZyb20gJy4uL2NvbW1vbi9iYXNlLXNkayc7XG5pbXBvcnQgeyBTdGF0VGFncyB9IGZyb20gJy4uLy4uL25ldHdvcmsvY2xpZW50cy90eXBlcyc7XG5cbmNvbnN0IFJFR0lPTl9VUkxTOiBSZWNvcmQ8Q3VzdG9tZXJJT1JlZ2lvbiwgc3RyaW5nPiA9IHtcbiAgVVM6ICdodHRwczovL2FwaS5jdXN0b21lci5pby92MScsXG4gIEVVOiAnaHR0cHM6Ly9hcGktZXUuY3VzdG9tZXIuaW8vdjEnLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ3VzdG9tZXJJT1NlZ21lbnQgZXh0ZW5kcyBCYXNlU0RLPEF1dGhPYmplY3QsIEN1c3RvbWVySU9Db25maWc+IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNsYXNzLW1ldGhvZHMtdXNlLXRoaXNcbiAgdmFsaWRhdGVBdXRoT2JqZWN0KGF1dGhPYmplY3Q6IEF1dGhPYmplY3QpOiB2b2lkIHtcbiAgICBpZiAoIWF1dGhPYmplY3Q/LmFwcEFwaUtleSB8fCB0eXBlb2YgYXV0aE9iamVjdC5hcHBBcGlLZXkgIT09ICdzdHJpbmcnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2FwcEFwaUtleSBpcyByZXF1aXJlZCBhbmQgbXVzdCBiZSBhIHN0cmluZycpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBidWlsZFJlcXVlc3RVcmwoZW5kcG9pbnQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgcmVnaW9uOiBDdXN0b21lcklPUmVnaW9uID0gdGhpcy5jb25maWc/LnJlZ2lvbiA/PyAnVVMnO1xuICAgIGNvbnN0IGJhc2VVcmwgPSBSRUdJT05fVVJMU1tyZWdpb25dO1xuICAgIGNvbnN0IGNsZWFuRW5kcG9pbnQgPSBlbmRwb2ludC5zdGFydHNXaXRoKCcvJykgPyBlbmRwb2ludCA6IGAvJHtlbmRwb2ludH1gO1xuICAgIHJldHVybiBgJHtiYXNlVXJsfSR7Y2xlYW5FbmRwb2ludH1gO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldEhlYWRlcnMoKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIEFjY2VwdDogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke3RoaXMuYXV0aE9iamVjdC5hcHBBcGlLZXl9YCxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgbWV0aG9kIGZldGNoZXMgdGhlIHNlZ21lbnRzLiBJZiB1bmFibGUgdG8gZmV0Y2ggdGhlIHNlZ21lbnRzLCBpdCByZXR1cm5zIGEgUmVzdEVycm9yLlxuICAgKiByZWY6IGh0dHBzOi8vZG9jcy5jdXN0b21lci5pby9hcGkvYXBwLyNvcGVyYXRpb24vbGlzdFNlZ21lbnRzXG4gICAqIEBwYXJhbSBzdGF0VGFncyAtIE9wdGlvbmFsIHN0YXQgdGFncyBmb3IgbWV0cmljcyBhbmQgbG9nZ2luZ1xuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgYXN5bmMgZ2V0U2VnbWVudHMoc3RhdFRhZ3M/OiBTdGF0VGFncyk6IFByb21pc2U8R2V0U2VnbWVudHNSZXNwb25zZT4ge1xuICAgIGNvbnN0IGN1c3RvbVN0YXRUYWdzOiBTdGF0VGFncyA9IHtcbiAgICAgIC4uLnN0YXRUYWdzLFxuICAgICAgZW5kcG9pbnRQYXRoOiBgL3NlZ21lbnRzYCxcbiAgICB9O1xuICAgIGNvbnN0IHJlc3A6IEFwaVJlc3BvbnNlPEdldFNlZ21lbnRzUmVzcG9uc2U+ID0gYXdhaXQgdGhpcy5nZXQ8R2V0U2VnbWVudHNSZXNwb25zZT4oXG4gICAgICAnL3NlZ21lbnRzJyxcbiAgICAgIGN1c3RvbVN0YXRUYWdzLFxuICAgICk7XG4gICAgaWYgKHJlc3AudHlwZSA9PT0gJ3N1Y2Nlc3MnKSB7XG4gICAgICByZXR1cm4gcmVzcC5yZXNwb25zZUJvZHk7XG4gICAgfVxuICAgIHRocm93IG5ldyBSZXN0RXJyb3IocmVzcC5tZXNzYWdlLCByZXNwLnN0YXR1c0NvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgbWV0aG9kIGNyZWF0ZXMgYSBtYW51YWwgc2VnbWVudC4gSXQgcmVxdWlyZXMgdGhlIHNlZ21lbnQgYm9keS4gVGhlIG1ldGhvZCByZXR1cm5zIHRoZSBjcmVhdGVkIHNlZ21lbnQuIElmIHRoZSBtYW51YWwgc2VnbWVudCBpcyBub3QgY3JlYXRlZCwgaXQgcmV0dXJucyBhIFJlc3RFcnJvci5cbiAgICogcmVmOiBodHRwczovL2RvY3MuY3VzdG9tZXIuaW8vYXBpL2FwcC8jb3BlcmF0aW9uL2NyZWF0ZU1hblNlZ21lbnRcbiAgICogQHBhcmFtIGJvZHkgQ3JlYXRlU2VnbWVudCBmaWVsZHNcbiAgICogQHBhcmFtIHN0YXRUYWdzIC0gT3B0aW9uYWwgc3RhdCB0YWdzIGZvciBtZXRyaWNzIGFuZCBsb2dnaW5nXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBhc3luYyBjcmVhdGVTZWdtZW50KFxuICAgIGJvZHk6IENyZWF0ZVNlZ21lbnRCb2R5LFxuICAgIHN0YXRUYWdzPzogU3RhdFRhZ3MsXG4gICk6IFByb21pc2U8Q3JlYXRlU2VnbWVudFJlc3BvbnNlPiB7XG4gICAgY29uc3QgY3VzdG9tU3RhdFRhZ3M6IFN0YXRUYWdzID0ge1xuICAgICAgLi4uc3RhdFRhZ3MsXG4gICAgICBlbmRwb2ludFBhdGg6IGAvc2VnbWVudHNgLFxuICAgIH07XG4gICAgY29uc3QgcmVzcDogQXBpUmVzcG9uc2U8Q3JlYXRlU2VnbWVudFJlc3BvbnNlPiA9IGF3YWl0IHRoaXMucG9zdDxDcmVhdGVTZWdtZW50UmVzcG9uc2U+KFxuICAgICAgJy9zZWdtZW50cycsXG4gICAgICBib2R5LFxuICAgICAgY3VzdG9tU3RhdFRhZ3MsXG4gICAgKTtcbiAgICBpZiAocmVzcC50eXBlID09PSAnc3VjY2VzcycpIHtcbiAgICAgIHJldHVybiByZXNwLnJlc3BvbnNlQm9keTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IFJlc3RFcnJvcihyZXNwLm1lc3NhZ2UsIHJlc3Auc3RhdHVzQ29kZSk7XG4gIH1cbn1cbiJdfQ==