braze-api
Version:
Track users, send messages, export data, and more with Braze API.
455 lines • 16.1 kB
JavaScript
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
var ownKeys = function(o) {
ownKeys = Object.getOwnPropertyNames || function (o) {
var ar = [];
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
return ar;
};
return ownKeys(o);
};
return function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
__setModuleDefault(result, mod);
return result;
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.Braze = void 0;
const campaigns = __importStar(require("./campaigns"));
const canvas = __importStar(require("./canvas"));
const catalogs = __importStar(require("./catalogs"));
const email = __importStar(require("./email"));
const messages = __importStar(require("./messages"));
const segments = __importStar(require("./segments"));
const sends = __importStar(require("./sends"));
const subscription = __importStar(require("./subscription"));
const templates = __importStar(require("./templates"));
const transactional = __importStar(require("./transactional"));
const users = __importStar(require("./users"));
const v2 = __importStar(require("./v2"));
class Braze {
/**
* @param apiUrl - Braze REST endpoint.
* @param apiKey - Braze API key.
*/
constructor(apiUrl, apiKey) {
/* eslint-disable tsdoc/syntax */
this.campaigns = {
/**
* GET /campaigns/details
*/
details: (parameters) => {
return campaigns.details(this.apiUrl, this.apiKey, parameters);
},
/**
* GET /campaigns/list
*/
list: (parameters) => {
return campaigns.list(this.apiUrl, this.apiKey, parameters);
},
trigger: {
schedule: {
/**
* POST /campaigns/trigger/schedule/create
*/
create: (body) => {
return campaigns.trigger.schedule.create(this.apiUrl, this.apiKey, body);
},
/**
* POST /campaigns/trigger/schedule/delete
*/
delete: (body) => {
return campaigns.trigger.schedule._delete(this.apiUrl, this.apiKey, body);
},
/**
* POST /campaigns/trigger/schedule/update
*/
update: (body) => {
return campaigns.trigger.schedule.update(this.apiUrl, this.apiKey, body);
},
},
/**
* POST /campaigns/trigger/send
*/
send: (body) => {
return campaigns.trigger.send(this.apiUrl, this.apiKey, body);
},
},
};
this.canvas = {
/**
* GET /canvas/list
*/
list: (parameters) => {
return canvas.list(this.apiUrl, this.apiKey, parameters);
},
trigger: {
schedule: {
/**
* POST /canvas/trigger/schedule/create
*/
create: (body) => {
return canvas.trigger.schedule.create(this.apiUrl, this.apiKey, body);
},
/**
* POST /canvas/trigger/schedule/delete
*/
delete: (body) => {
return canvas.trigger.schedule._delete(this.apiUrl, this.apiKey, body);
},
/**
* POST /canvas/trigger/schedule/update
*/
update: (body) => {
return canvas.trigger.schedule.update(this.apiUrl, this.apiKey, body);
},
},
/**
* POST /canvas/trigger/send
*/
send: (body) => {
return canvas.trigger.send(this.apiUrl, this.apiKey, body);
},
},
};
/**
* {@link https://www.braze.com/docs/api/endpoints/catalogs}
*/
this.catalogs = {
synchronous: {
/**
* GET /catalogs
*/
list: () => {
return catalogs.synchronous.listCatalogs(this.apiUrl, this.apiKey);
},
/**
* GET /catalogs/{catalog_name}/items
*/
items: (body) => {
return catalogs.synchronous.getListCatalogItemsIterator(this.apiUrl, this.apiKey, body);
},
/**
* GET /catalogs/{catalog_name}/items/{item_id}
*/
item: (body) => {
return catalogs.synchronous.getCatalogItem(this.apiUrl, this.apiKey, body);
},
},
};
/**
* {@link https://www.braze.com/docs/api/endpoints/email}
*/
this.email = {
/**
* POST /email/blacklist
*/
blacklist: (body) => {
return email.blacklist(this.apiUrl, this.apiKey, body);
},
/**
* POST /email/blacklist
*/
bounce: {
remove: (body) => {
return email.bounce.remove(this.apiUrl, this.apiKey, body);
},
},
/**
* POST /email/spam/remove
*/
spam: {
remove: (body) => {
return email.spam.remove(this.apiUrl, this.apiKey, body);
},
},
};
/**
* {@link https://www.braze.com/docs/api/endpoints/messaging}
*/
this.messages = {
schedule: {
/**
* POST /messages/schedule/create
*/
create: (body) => {
return messages.schedule.create(this.apiUrl, this.apiKey, body);
},
/**
* POST /messages/schedule/delete
*/
delete: (body) => {
return messages.schedule._delete(this.apiUrl, this.apiKey, body);
},
/**
* POST /messages/schedule/update
*/
update: (body) => {
return messages.schedule.update(this.apiUrl, this.apiKey, body);
},
},
/**
* GET /messages/scheduled_broadcasts
*/
scheduled_broadcasts: (body) => {
return messages.scheduled_broadcasts(this.apiUrl, this.apiKey, body);
},
/**
* POST /messages/send
*/
send: (body) => {
return messages.send(this.apiUrl, this.apiKey, body);
},
};
this.segments = {
/**
* GET /segments/data_series
*/
analytics: (parameters) => {
return segments.analytics(this.apiUrl, this.apiKey, parameters);
},
/**
* GET /segments/details
*/
details: (parameters) => {
return segments.details(this.apiUrl, this.apiKey, parameters);
},
/**
* GET /segments/list
*/
list: (parameters) => {
return segments.list(this.apiUrl, this.apiKey, parameters);
},
};
this.sends = {
id: {
/**
* POST /sends/id/create
*/
create: (body) => {
return sends.id.create(this.apiUrl, this.apiKey, body);
},
},
};
/**
* {@link https://www.braze.com/docs/api/endpoints/subscription_groups}
*/
this.subscription = {
status: {
/**
* GET /subscription/status/get
*/
get: (body) => {
return subscription.status.get(this.apiUrl, this.apiKey, body);
},
/**
* POST /subscription/status/set
*/
set: (body) => {
return subscription.status.set(this.apiUrl, this.apiKey, body);
},
},
user: {
/**
* GET /subscription/user/status
*/
status: (body) => {
return subscription.user.status(this.apiUrl, this.apiKey, body);
},
},
};
/**
* {@link https://www.braze.com/docs/api/endpoints/templates}
*/
this.templates = {
content_blocks: {
/**
* GET /content_blocks/info
*/
get: (body) => {
return templates.content_blocks.getContentBlock(this.apiUrl, this.apiKey, body);
},
/**
* GET /content_blocks/list
*/
list: (body) => {
return templates.content_blocks.listContentBlocks(this.apiUrl, this.apiKey, body);
},
/**
* POST /content_blocks/create
*/
create: (body) => {
return templates.content_blocks.createContentBlock(this.apiUrl, this.apiKey, body);
},
/**
* POST /content_blocks/update
*/
update: (body) => {
return templates.content_blocks.updateContentBlock(this.apiUrl, this.apiKey, body);
},
},
email_templates: {
/**
* GET /templates/email/info
*/
get: (body) => {
return templates.email_templates.getEmailTemplate(this.apiUrl, this.apiKey, body);
},
/**
* GET /templates/email/list
*/
list: (body) => {
return templates.email_templates.getEmailTemplateList(this.apiUrl, this.apiKey, body);
},
/**
* POST /templates/email/create
*/
create: (body) => {
return templates.email_templates.createEmailTemplate(this.apiUrl, this.apiKey, body);
},
/**
* POST /templates/email/update
*/
update: (body) => {
return templates.email_templates.updateEmailTemplate(this.apiUrl, this.apiKey, body);
},
},
};
this.transactional = {
v1: {
campaigns: {
/**
* POST /transactional/v1/campaigns/{campaign_id}/send
*/
send: (campaignId, body) => {
return transactional.v1.campaigns.send(this.apiUrl, this.apiKey, campaignId, body);
},
},
},
};
/**
* {@link https://www.braze.com/docs/api/endpoints/user_data}
*/
this.users = {
alias: {
/**
* POST /users/alias/new
*/
new: (body) => {
return users.alias._new(this.apiUrl, this.apiKey, body);
},
/**
* POST /users/alias/update
*/
update: (body) => {
return users.alias._update(this.apiUrl, this.apiKey, body);
},
},
/**
* POST /users/delete
*/
delete: (body) => {
return users._delete(this.apiUrl, this.apiKey, body);
},
export: {
/**
* POST /users/export/global_control_group
*/
global_control_group: (body) => {
return users.export.global_control_group(this.apiUrl, this.apiKey, body);
},
/**
* POST /users/export/ids
*/
ids: (body) => {
return users.export.ids(this.apiUrl, this.apiKey, body);
},
/**
* POST /users/export/segment
*/
segment: (body) => {
return users.export.segment(this.apiUrl, this.apiKey, body);
},
},
/**
* {@link https://www.braze.com/docs/api/endpoints/user_data/external_id_migration}
*/
external_ids: {
/**
* POST /users/external_ids/remove
*/
remove: (body) => {
return users.external_ids.remove(this.apiUrl, this.apiKey, body);
},
/**
* POST /users/external_ids/rename
*/
rename: (body) => {
return users.external_ids.rename(this.apiUrl, this.apiKey, body);
},
},
/**
* POST /users/identify
*/
identify: (body) => {
return users.identify(this.apiUrl, this.apiKey, body);
},
/**
* POST /users/merge
*/
merge: (body) => {
return users.merge(this.apiUrl, this.apiKey, body);
},
/**
* POST /users/track
*/
track: (body, bulk) => {
return users.track(this.apiUrl, this.apiKey, body, bulk);
},
};
this.v2 = {
/**
* {@link https://www.braze.com/docs/api/endpoints/subscription_groups}
*/
subscription: {
status: {
/**
* POST /v2/subscription/status/set
*/
set: (body) => {
return v2.subscription.status.set(this.apiUrl, this.apiKey, body);
},
},
},
};
if (!apiUrl || typeof apiUrl !== 'string') {
throw new Error(`Invalid Braze API URL: ${apiUrl}`);
}
if (!apiKey || typeof apiKey !== 'string') {
throw new Error(`Invalid Braze API key: ${apiKey}`);
}
this.apiUrl = apiUrl;
this.apiKey = apiKey;
}
}
exports.Braze = Braze;
//# sourceMappingURL=Braze.js.map