@eleva-io/erp-sdk
Version:
SDK oficial para el ERP de Eleva
88 lines • 3.87 kB
JavaScript
import { requireField } from '../../../../utils/guards';
import { BulkMessagingTemplatesAPI } from './templates';
export class BulkMessagesAPI {
_httpClient;
_baseUrl;
_bulkMessageId;
constructor(_httpClient, _baseUrl, _bulkMessageId) {
this._httpClient = _httpClient;
this._baseUrl = _baseUrl;
this._bulkMessageId = _bulkMessageId;
}
async create(data) {
const { attachments, ...rest } = data;
const formData = {
subject: rest.subject,
content: rest.content,
channel: rest.channel,
filter: rest.filter,
inAppPublishing: rest.inAppPublishing,
blocks: rest.blocks,
};
if (rest.scheduledAt !== undefined) {
formData.scheduledAt = rest.scheduledAt;
}
if (attachments && attachments.length > 0) {
for (const [i, attachment] of attachments.entries()) {
formData[`attachments[${i}]`] = attachment;
}
}
return this._httpClient.form(`${this._baseUrl}/bulk-messages`, formData);
}
async find(query) {
return this._httpClient.get(`${this._baseUrl}/bulk-messages`, query);
}
async get(bulkMessageId) {
const messageId = bulkMessageId || this._bulkMessageId;
requireField('bulkMessageId', messageId);
return this._httpClient.get(`${this._baseUrl}/bulk-messages/${messageId}`);
}
async previewCount(data) {
return this._httpClient.post(`${this._baseUrl}/preview-count`, data);
}
async findRecipientsUnsent(bulkMessageId, query) {
const messageId = bulkMessageId || this._bulkMessageId;
requireField('bulkMessageId', messageId);
return this._httpClient.get(`${this._baseUrl}/bulk-messages/${messageId}/unsent`, query);
}
async findRecipientsWithErrors(bulkMessageId, query) {
const messageId = bulkMessageId || this._bulkMessageId;
requireField('bulkMessageId', messageId);
return this._httpClient.get(`${this._baseUrl}/bulk-messages/${messageId}/errors`, query);
}
async findCommunities(bulkMessageId, query) {
const messageId = bulkMessageId || this._bulkMessageId;
requireField('bulkMessageId', messageId);
return this._httpClient.get(`${this._baseUrl}/bulk-messages/${messageId}/communities`, query);
}
async findRecipientsByCommunity(communityId, bulkMessageId, query) {
const messageId = bulkMessageId || this._bulkMessageId;
requireField('bulkMessageId', messageId);
return this._httpClient.get(`${this._baseUrl}/bulk-messages/${messageId}/communities/${communityId}`, query);
}
async validate(bulkMessageId) {
const messageId = bulkMessageId || this._bulkMessageId;
requireField('bulkMessageId', messageId);
return this._httpClient.post(`${this._baseUrl}/bulk-messages/${messageId}/validate`);
}
async validateRecipients(data) {
return this._httpClient.post(`${this._baseUrl}/validate`, data);
}
async getStats() {
return this._httpClient.get(`${this._baseUrl}/stats`);
}
async downloadAttachment(documentId, bulkMessageId) {
const messageId = bulkMessageId || this._bulkMessageId;
requireField('bulkMessageId', messageId);
return this._httpClient.getBinary(`${this._baseUrl}/bulk-messages/${messageId}/documents/${documentId}/download`);
}
async cancel(bulkMessageId) {
const messageId = bulkMessageId || this._bulkMessageId;
requireField('bulkMessageId', messageId);
return this._httpClient.patch(`${this._baseUrl}/bulk-messages/${messageId}/cancel`);
}
templates() {
return new BulkMessagingTemplatesAPI(this._httpClient, `${this._baseUrl}/templates`);
}
}
//# sourceMappingURL=bulk_messages.js.map