cecon-interfaces
Version:
Interfaces de Projetos Cecon
64 lines • 8.71 kB
JavaScript
export class N8nChatResponseEntity {
// #region Properties (12)
responseId = '';
originalMessageId = '';
sessionId = '';
userId = '';
message = '';
messageType = 'text';
timestamp = new Date();
platform = '';
responseData = undefined;
delivery = {
priority: 'normal',
};
metadata = undefined;
status = 'queued';
// #endregion Properties (12)
// #region Constructors (1)
constructor(data) {
if (data) {
for (let key in data) {
if (data.hasOwnProperty(key) && key in this) {
this[key] = data[key];
}
}
}
}
// #endregion Constructors (1)
/**
* Adiciona um botão com callback de API opcional
*/
addButton(button) {
if (!this.responseData) {
this.responseData = {};
}
if (!this.responseData.buttons) {
this.responseData.buttons = [];
}
this.responseData.buttons.push(button);
this.messageType = 'button';
}
/**
* Adiciona uma resposta rápida com callback de API opcional
*/
addQuickReply(quickReply) {
if (!this.responseData) {
this.responseData = {};
}
if (!this.responseData.quickReplies) {
this.responseData.quickReplies = [];
}
this.responseData.quickReplies.push(quickReply);
this.messageType = 'quick_reply';
}
/**
* Valida se a resposta está pronta para ser enviada
*/
isValid() {
const hasBasicData = !!(this.responseId && this.userId && this.sessionId);
const hasContent = !!(this.message || this.responseData);
return hasBasicData && hasContent;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC1yZXNwb25zZS5lbnRpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbjhuL2VudGl0aWVzL2NoYXQtcmVzcG9uc2UuZW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sT0FBTyxxQkFBcUI7SUFDaEMsMEJBQTBCO0lBRW5CLFVBQVUsR0FBVyxFQUFFLENBQUM7SUFDeEIsaUJBQWlCLEdBQVcsRUFBRSxDQUFDO0lBQy9CLFNBQVMsR0FBVyxFQUFFLENBQUM7SUFDdkIsTUFBTSxHQUFXLEVBQUUsQ0FBQztJQUNwQixPQUFPLEdBQVcsRUFBRSxDQUFDO0lBQ3JCLFdBQVcsR0FBOEYsTUFBTSxDQUFDO0lBQ2hILFNBQVMsR0FBUyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQzdCLFFBQVEsR0FBVyxFQUFFLENBQUM7SUFDdEIsWUFBWSxHQTBCZixTQUFTLENBQUM7SUFDUCxRQUFRLEdBSVg7UUFDRixRQUFRLEVBQUUsUUFBUTtLQUNuQixDQUFDO0lBQ0ssUUFBUSxHQUtYLFNBQVMsQ0FBQztJQUNQLE1BQU0sR0FBd0QsUUFBUSxDQUFDO0lBRTlFLDZCQUE2QjtJQUU3QiwyQkFBMkI7SUFFM0IsWUFBWSxJQUFxQztRQUMvQyxJQUFJLElBQUksRUFBRTtZQUNSLEtBQUssSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFO2dCQUNwQixJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxJQUFJLElBQUksRUFBRTtvQkFDMUMsSUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFJLElBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFDekM7YUFDRjtTQUNGO0lBQ0gsQ0FBQztJQUVELDhCQUE4QjtJQUU5Qjs7T0FFRztJQUNJLFNBQVMsQ0FBQyxNQVFoQjtRQUNDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1NBQ3hCO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFO1lBQzlCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztTQUNoQztRQUNELElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQztJQUM5QixDQUFDO0lBRUQ7O09BRUc7SUFDSSxhQUFhLENBQUMsVUFBNkY7UUFDaEgsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDdEIsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7U0FDeEI7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUU7WUFDbkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1NBQ3JDO1FBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxXQUFXLEdBQUcsYUFBYSxDQUFDO0lBQ25DLENBQUM7SUFFRDs7T0FFRztJQUNJLE9BQU87UUFDWixNQUFNLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzFFLE1BQU0sVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3pELE9BQU8sWUFBWSxJQUFJLFVBQVUsQ0FBQztJQUNwQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJTjhuQ2hhdEFwaUNhbGxiYWNrIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9pLWNoYXQtYXBpLWNhbGxiYWNrJztcclxuaW1wb3J0IHsgSU44bkNoYXRSZXNwb25zZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvaS1jaGF0LXJlc3BvbnNlJztcclxuXHJcbmV4cG9ydCBjbGFzcyBOOG5DaGF0UmVzcG9uc2VFbnRpdHkgaW1wbGVtZW50cyBJTjhuQ2hhdFJlc3BvbnNlIHtcclxuICAvLyAjcmVnaW9uIFByb3BlcnRpZXMgKDEyKVxyXG5cclxuICBwdWJsaWMgcmVzcG9uc2VJZDogc3RyaW5nID0gJyc7XHJcbiAgcHVibGljIG9yaWdpbmFsTWVzc2FnZUlkOiBzdHJpbmcgPSAnJztcclxuICBwdWJsaWMgc2Vzc2lvbklkOiBzdHJpbmcgPSAnJztcclxuICBwdWJsaWMgdXNlcklkOiBzdHJpbmcgPSAnJztcclxuICBwdWJsaWMgbWVzc2FnZTogc3RyaW5nID0gJyc7XHJcbiAgcHVibGljIG1lc3NhZ2VUeXBlOiAndGV4dCcgfCAnaW1hZ2UnIHwgJ2F1ZGlvJyB8ICd2aWRlbycgfCAnZG9jdW1lbnQnIHwgJ3RlbXBsYXRlJyB8ICdxdWlja19yZXBseScgfCAnYnV0dG9uJyA9ICd0ZXh0JztcclxuICBwdWJsaWMgdGltZXN0YW1wOiBEYXRlID0gbmV3IERhdGUoKTtcclxuICBwdWJsaWMgcGxhdGZvcm06IHN0cmluZyA9ICcnO1xyXG4gIHB1YmxpYyByZXNwb25zZURhdGE/OiB7XHJcbiAgICBidXR0b25zPzogQXJyYXk8e1xyXG4gICAgICBpZDogc3RyaW5nO1xyXG4gICAgICB0ZXh0OiBzdHJpbmc7XHJcbiAgICAgIHR5cGU6ICdyZXBseScgfCAndXJsJyB8ICdjYWxsJztcclxuICAgICAgcGF5bG9hZD86IHN0cmluZztcclxuICAgICAgdXJsPzogc3RyaW5nO1xyXG4gICAgICBwaG9uZU51bWJlcj86IHN0cmluZztcclxuICAgICAgYXBpQ2FsbGJhY2s/OiBJTjhuQ2hhdEFwaUNhbGxiYWNrO1xyXG4gICAgfT47XHJcbiAgICBxdWlja1JlcGxpZXM/OiBBcnJheTx7XHJcbiAgICAgIGlkOiBzdHJpbmc7XHJcbiAgICAgIHRleHQ6IHN0cmluZztcclxuICAgICAgcGF5bG9hZD86IHN0cmluZztcclxuICAgICAgYXBpQ2FsbGJhY2s/OiBJTjhuQ2hhdEFwaUNhbGxiYWNrO1xyXG4gICAgfT47XHJcbiAgICB0ZW1wbGF0ZT86IHtcclxuICAgICAgdHlwZTogc3RyaW5nO1xyXG4gICAgICBlbGVtZW50czogYW55W107XHJcbiAgICB9O1xyXG4gICAgbWVkaWE/OiB7XHJcbiAgICAgIHVybDogc3RyaW5nO1xyXG4gICAgICB0eXBlOiBzdHJpbmc7XHJcbiAgICAgIGNhcHRpb24/OiBzdHJpbmc7XHJcbiAgICAgIGZpbGVuYW1lPzogc3RyaW5nO1xyXG4gICAgfTtcclxuICB9ID0gdW5kZWZpbmVkO1xyXG4gIHB1YmxpYyBkZWxpdmVyeToge1xyXG4gICAgcHJpb3JpdHk6ICdsb3cnIHwgJ25vcm1hbCcgfCAnaGlnaCc7XHJcbiAgICBkZWxheT86IG51bWJlcjtcclxuICAgIHJldHJ5QXR0ZW1wdHM/OiBudW1iZXI7XHJcbiAgfSA9IHtcclxuICAgIHByaW9yaXR5OiAnbm9ybWFsJyxcclxuICB9O1xyXG4gIHB1YmxpYyBtZXRhZGF0YT86IHtcclxuICAgIGF1dG9tYXRlZDogYm9vbGVhbjtcclxuICAgIGJvdE5hbWU/OiBzdHJpbmc7XHJcbiAgICB3b3JrZmxvd0lkPzogc3RyaW5nO1xyXG4gICAgbm9kZUlkPzogc3RyaW5nO1xyXG4gIH0gPSB1bmRlZmluZWQ7XHJcbiAgcHVibGljIHN0YXR1czogJ3F1ZXVlZCcgfCAnc2VudCcgfCAnZGVsaXZlcmVkJyB8ICdyZWFkJyB8ICdmYWlsZWQnID0gJ3F1ZXVlZCc7XHJcblxyXG4gIC8vICNlbmRyZWdpb24gUHJvcGVydGllcyAoMTIpXHJcblxyXG4gIC8vICNyZWdpb24gQ29uc3RydWN0b3JzICgxKVxyXG5cclxuICBjb25zdHJ1Y3RvcihkYXRhPzogUGFydGlhbDxOOG5DaGF0UmVzcG9uc2VFbnRpdHk+KSB7XHJcbiAgICBpZiAoZGF0YSkge1xyXG4gICAgICBmb3IgKGxldCBrZXkgaW4gZGF0YSkge1xyXG4gICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KGtleSkgJiYga2V5IGluIHRoaXMpIHtcclxuICAgICAgICAgICh0aGlzIGFzIGFueSlba2V5XSA9IChkYXRhIGFzIGFueSlba2V5XTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb24gQ29uc3RydWN0b3JzICgxKVxyXG5cclxuICAvKipcclxuICAgKiBBZGljaW9uYSB1bSBib3TDo28gY29tIGNhbGxiYWNrIGRlIEFQSSBvcGNpb25hbFxyXG4gICAqL1xyXG4gIHB1YmxpYyBhZGRCdXR0b24oYnV0dG9uOiB7XHJcbiAgICBpZDogc3RyaW5nO1xyXG4gICAgdGV4dDogc3RyaW5nO1xyXG4gICAgdHlwZTogJ3JlcGx5JyB8ICd1cmwnIHwgJ2NhbGwnO1xyXG4gICAgcGF5bG9hZD86IHN0cmluZztcclxuICAgIHVybD86IHN0cmluZztcclxuICAgIHBob25lTnVtYmVyPzogc3RyaW5nO1xyXG4gICAgYXBpQ2FsbGJhY2s/OiBJTjhuQ2hhdEFwaUNhbGxiYWNrO1xyXG4gIH0pOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5yZXNwb25zZURhdGEpIHtcclxuICAgICAgdGhpcy5yZXNwb25zZURhdGEgPSB7fTtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5yZXNwb25zZURhdGEuYnV0dG9ucykge1xyXG4gICAgICB0aGlzLnJlc3BvbnNlRGF0YS5idXR0b25zID0gW107XHJcbiAgICB9XHJcbiAgICB0aGlzLnJlc3BvbnNlRGF0YS5idXR0b25zLnB1c2goYnV0dG9uKTtcclxuICAgIHRoaXMubWVzc2FnZVR5cGUgPSAnYnV0dG9uJztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkaWNpb25hIHVtYSByZXNwb3N0YSByw6FwaWRhIGNvbSBjYWxsYmFjayBkZSBBUEkgb3BjaW9uYWxcclxuICAgKi9cclxuICBwdWJsaWMgYWRkUXVpY2tSZXBseShxdWlja1JlcGx5OiB7IGlkOiBzdHJpbmc7IHRleHQ6IHN0cmluZzsgcGF5bG9hZD86IHN0cmluZzsgYXBpQ2FsbGJhY2s/OiBJTjhuQ2hhdEFwaUNhbGxiYWNrIH0pOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5yZXNwb25zZURhdGEpIHtcclxuICAgICAgdGhpcy5yZXNwb25zZURhdGEgPSB7fTtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5yZXNwb25zZURhdGEucXVpY2tSZXBsaWVzKSB7XHJcbiAgICAgIHRoaXMucmVzcG9uc2VEYXRhLnF1aWNrUmVwbGllcyA9IFtdO1xyXG4gICAgfVxyXG4gICAgdGhpcy5yZXNwb25zZURhdGEucXVpY2tSZXBsaWVzLnB1c2gocXVpY2tSZXBseSk7XHJcbiAgICB0aGlzLm1lc3NhZ2VUeXBlID0gJ3F1aWNrX3JlcGx5JztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkYSBzZSBhIHJlc3Bvc3RhIGVzdMOhIHByb250YSBwYXJhIHNlciBlbnZpYWRhXHJcbiAgICovXHJcbiAgcHVibGljIGlzVmFsaWQoKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBoYXNCYXNpY0RhdGEgPSAhISh0aGlzLnJlc3BvbnNlSWQgJiYgdGhpcy51c2VySWQgJiYgdGhpcy5zZXNzaW9uSWQpO1xyXG4gICAgY29uc3QgaGFzQ29udGVudCA9ICEhKHRoaXMubWVzc2FnZSB8fCB0aGlzLnJlc3BvbnNlRGF0YSk7XHJcbiAgICByZXR1cm4gaGFzQmFzaWNEYXRhICYmIGhhc0NvbnRlbnQ7XHJcbiAgfVxyXG59XHJcbiJdfQ==