UNPKG

@rudderstack/integrations-lib

Version:
65 lines 8.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const utils_1 = require("./utils"); const axios_client_1 = require("../../network/clients/axios_client"); class CustomerIOSegment { constructor(authObject, axiosClient = CustomerIOSegment.DEFAULT_AXIOS_CLIENT) { CustomerIOSegment.validateAuthObject(authObject); this.authObject = authObject; this.axiosClient = axiosClient; } static validateAuthObject(authObject) { if (!authObject?.appApiKey || typeof authObject.appApiKey !== 'string') { throw new Error('appApiKey is required and must be a string'); } return authObject; } /** * This function returns the app api key. * @returns */ getAppApiKey() { return 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 * @returns */ async getSegments() { const headers = { Accept: 'application/json', Authorization: `Bearer ${this.getAppApiKey()}`, }; const resp = await this.axiosClient.get(CustomerIOSegment.url, { headers, }); 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 * @returns */ async createSegment(body) { const headers = { 'Content-Type': 'application/json', Authorization: `Bearer ${this.getAppApiKey()}`, }; const resp = await this.axiosClient.post(CustomerIOSegment.url, body, { headers, }); if (resp.type === 'success') { return resp.responseBody; } throw new utils_1.RestError(resp.message, resp.statusCode); } } CustomerIOSegment.url = 'https://api.customer.io/v1/segments'; CustomerIOSegment.DEFAULT_AXIOS_CLIENT = new axios_client_1.AxiosClient(); exports.default = CustomerIOSegment; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2Rrcy9jdXN0b21lcmlvX2F1ZGllbmNlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EsbUNBQW9DO0FBQ3BDLHFFQUFpRTtBQUdqRSxNQUFxQixpQkFBaUI7SUFTcEMsWUFBWSxVQUFzQixFQUFFLFdBQVcsR0FBRyxpQkFBaUIsQ0FBQyxvQkFBb0I7UUFDdEYsaUJBQWlCLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7SUFDakMsQ0FBQztJQUVPLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxVQUFzQjtRQUN0RCxJQUFJLENBQUMsVUFBVSxFQUFFLFNBQVMsSUFBSSxPQUFPLFVBQVUsQ0FBQyxTQUFTLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDdkUsTUFBTSxJQUFJLEtBQUssQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO1FBQ2hFLENBQUM7UUFDRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUM7SUFDbkMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsV0FBVztRQUNmLE1BQU0sT0FBTyxHQUFHO1lBQ2QsTUFBTSxFQUFFLGtCQUFrQjtZQUMxQixhQUFhLEVBQUUsVUFBVSxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUU7U0FDL0MsQ0FBQztRQUNGLE1BQU0sSUFBSSxHQUFxQyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUN2RSxpQkFBaUIsQ0FBQyxHQUFHLEVBQ3JCO1lBQ0UsT0FBTztTQUNSLENBQ0YsQ0FBQztRQUNGLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUM1QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDM0IsQ0FBQztRQUNELE1BQU0sSUFBSSxpQkFBUyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILEtBQUssQ0FBQyxhQUFhLENBQUMsSUFBdUI7UUFDekMsTUFBTSxPQUFPLEdBQUc7WUFDZCxjQUFjLEVBQUUsa0JBQWtCO1lBQ2xDLGFBQWEsRUFBRSxVQUFVLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRTtTQUMvQyxDQUFDO1FBQ0YsTUFBTSxJQUFJLEdBQXVDLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQzFFLGlCQUFpQixDQUFDLEdBQUcsRUFDckIsSUFBSSxFQUNKO1lBQ0UsT0FBTztTQUNSLENBQ0YsQ0FBQztRQUNGLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUM1QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDM0IsQ0FBQztRQUNELE1BQU0sSUFBSSxpQkFBUyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3JELENBQUM7O0FBekVlLHFCQUFHLEdBQVcscUNBQXFDLENBQUM7QUFFNUMsc0NBQW9CLEdBQUcsSUFBSSwwQkFBVyxFQUFFLENBQUM7a0JBSDlDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF1dGhPYmplY3QsIENyZWF0ZVNlZ21lbnRCb2R5LCBDcmVhdGVTZWdtZW50UmVzcG9uc2UsIEdldFNlZ21lbnRzUmVzcG9uc2UgfSBmcm9tICcuL3R5cGUnO1xuaW1wb3J0IHsgUmVzdEVycm9yIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBBeGlvc0NsaWVudCB9IGZyb20gJy4uLy4uL25ldHdvcmsvY2xpZW50cy9heGlvc19jbGllbnQnO1xuaW1wb3J0IHsgQXBpUmVzcG9uc2UgfSBmcm9tICcuLi8uLi9uZXR3b3JrJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ3VzdG9tZXJJT1NlZ21lbnQge1xuICBzdGF0aWMgcmVhZG9ubHkgdXJsOiBzdHJpbmcgPSAnaHR0cHM6Ly9hcGkuY3VzdG9tZXIuaW8vdjEvc2VnbWVudHMnO1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfQVhJT1NfQ0xJRU5UID0gbmV3IEF4aW9zQ2xpZW50KCk7XG5cbiAgcHJpdmF0ZSBheGlvc0NsaWVudDogQXhpb3NDbGllbnQ7XG5cbiAgcHJpdmF0ZSBhdXRoT2JqZWN0OiBBdXRoT2JqZWN0O1xuXG4gIGNvbnN0cnVjdG9yKGF1dGhPYmplY3Q6IEF1dGhPYmplY3QsIGF4aW9zQ2xpZW50ID0gQ3VzdG9tZXJJT1NlZ21lbnQuREVGQVVMVF9BWElPU19DTElFTlQpIHtcbiAgICBDdXN0b21lcklPU2VnbWVudC52YWxpZGF0ZUF1dGhPYmplY3QoYXV0aE9iamVjdCk7XG4gICAgdGhpcy5hdXRoT2JqZWN0ID0gYXV0aE9iamVjdDtcbiAgICB0aGlzLmF4aW9zQ2xpZW50ID0gYXhpb3NDbGllbnQ7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyB2YWxpZGF0ZUF1dGhPYmplY3QoYXV0aE9iamVjdDogQXV0aE9iamVjdCk6IEF1dGhPYmplY3Qge1xuICAgIGlmICghYXV0aE9iamVjdD8uYXBwQXBpS2V5IHx8IHR5cGVvZiBhdXRoT2JqZWN0LmFwcEFwaUtleSAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignYXBwQXBpS2V5IGlzIHJlcXVpcmVkIGFuZCBtdXN0IGJlIGEgc3RyaW5nJyk7XG4gICAgfVxuICAgIHJldHVybiBhdXRoT2JqZWN0O1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgYXBwIGFwaSBrZXkuXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBnZXRBcHBBcGlLZXkoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5hdXRoT2JqZWN0LmFwcEFwaUtleTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIG1ldGhvZCBmZXRjaGVzIHRoZSBzZWdtZW50cy4gSWYgdW5hYmxlIHRvIGZldGNoIHRoZSBzZWdtZW50cywgaXQgcmV0dXJucyBhIFJlc3RFcnJvci5cbiAgICogcmVmOiBodHRwczovL2RvY3MuY3VzdG9tZXIuaW8vYXBpL2FwcC8jb3BlcmF0aW9uL2xpc3RTZWdtZW50c1xuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgYXN5bmMgZ2V0U2VnbWVudHMoKTogUHJvbWlzZTxHZXRTZWdtZW50c1Jlc3BvbnNlPiB7XG4gICAgY29uc3QgaGVhZGVycyA9IHtcbiAgICAgIEFjY2VwdDogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke3RoaXMuZ2V0QXBwQXBpS2V5KCl9YCxcbiAgICB9O1xuICAgIGNvbnN0IHJlc3A6IEFwaVJlc3BvbnNlPEdldFNlZ21lbnRzUmVzcG9uc2U+ID0gYXdhaXQgdGhpcy5heGlvc0NsaWVudC5nZXQoXG4gICAgICBDdXN0b21lcklPU2VnbWVudC51cmwsXG4gICAgICB7XG4gICAgICAgIGhlYWRlcnMsXG4gICAgICB9LFxuICAgICk7XG4gICAgaWYgKHJlc3AudHlwZSA9PT0gJ3N1Y2Nlc3MnKSB7XG4gICAgICByZXR1cm4gcmVzcC5yZXNwb25zZUJvZHk7XG4gICAgfVxuICAgIHRocm93IG5ldyBSZXN0RXJyb3IocmVzcC5tZXNzYWdlLCByZXNwLnN0YXR1c0NvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgbWV0aG9kIGNyZWF0ZXMgYSBtYW51YWwgc2VnbWVudC4gSXQgcmVxdWlyZXMgdGhlIHNlZ21lbnQgYm9keS4gVGhlIG1ldGhvZCByZXR1cm5zIHRoZSBjcmVhdGVkIHNlZ21lbnQuIElmIHRoZSBtYW51YWwgc2VnbWVudCBpcyBub3QgY3JlYXRlZCwgaXQgcmV0dXJucyBhIFJlc3RFcnJvci5cbiAgICogcmVmOiBodHRwczovL2RvY3MuY3VzdG9tZXIuaW8vYXBpL2FwcC8jb3BlcmF0aW9uL2NyZWF0ZU1hblNlZ21lbnRcbiAgICogQHBhcmFtIGJvZHkgQ3JlYXRlU2VnbWVudCBmaWVsZHNcbiAgICogQHJldHVybnNcbiAgICovXG4gIGFzeW5jIGNyZWF0ZVNlZ21lbnQoYm9keTogQ3JlYXRlU2VnbWVudEJvZHkpOiBQcm9taXNlPENyZWF0ZVNlZ21lbnRSZXNwb25zZT4ge1xuICAgIGNvbnN0IGhlYWRlcnMgPSB7XG4gICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke3RoaXMuZ2V0QXBwQXBpS2V5KCl9YCxcbiAgICB9O1xuICAgIGNvbnN0IHJlc3A6IEFwaVJlc3BvbnNlPENyZWF0ZVNlZ21lbnRSZXNwb25zZT4gPSBhd2FpdCB0aGlzLmF4aW9zQ2xpZW50LnBvc3QoXG4gICAgICBDdXN0b21lcklPU2VnbWVudC51cmwsXG4gICAgICBib2R5LFxuICAgICAge1xuICAgICAgICBoZWFkZXJzLFxuICAgICAgfSxcbiAgICApO1xuICAgIGlmIChyZXNwLnR5cGUgPT09ICdzdWNjZXNzJykge1xuICAgICAgcmV0dXJuIHJlc3AucmVzcG9uc2VCb2R5O1xuICAgIH1cbiAgICB0aHJvdyBuZXcgUmVzdEVycm9yKHJlc3AubWVzc2FnZSwgcmVzcC5zdGF0dXNDb2RlKTtcbiAgfVxufVxuIl19