mirror of
https://github.com/hexastack/hexabot
synced 2025-06-26 18:27:28 +00:00
Merge pull request #546 from Hexastack/refactor/attachment-payload
feat: Refactor attachment payload + use public signed urls in web channel
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2024 Hexastack. All rights reserved.
|
||||
* Copyright © 2025 Hexastack. All rights reserved.
|
||||
*
|
||||
* Licensed under the GNU Affero General Public License v3.0 (AGPLv3) with the following additional terms:
|
||||
* 1. The name "Hexabot" is a trademark of Hexastack. You may not use this name in derivative works without express written permission.
|
||||
@@ -390,6 +390,7 @@ describe('BlockService', () => {
|
||||
attachments: {
|
||||
type: FileType.file,
|
||||
payload: {
|
||||
id: '9'.repeat(24),
|
||||
url: 'http://link.to/the/file',
|
||||
},
|
||||
},
|
||||
|
||||
@@ -417,7 +417,7 @@ export class BlockService extends BaseService<
|
||||
'url' in block.message.attachment.payload
|
||||
) {
|
||||
this.logger.error(
|
||||
'Attachment Model : `url` payload has been deprecated in favor of `attachment_id`',
|
||||
'Attachment Block : `url` payload has been deprecated in favor of `id`',
|
||||
block.id,
|
||||
block.message,
|
||||
);
|
||||
@@ -527,21 +527,11 @@ export class BlockService extends BaseService<
|
||||
}
|
||||
} else if (blockMessage && 'attachment' in blockMessage) {
|
||||
const attachmentPayload = blockMessage.attachment.payload;
|
||||
if (!attachmentPayload.attachment_id) {
|
||||
if (!('id' in attachmentPayload)) {
|
||||
this.checkDeprecatedAttachmentUrl(block);
|
||||
throw new Error('Remote attachments are no longer supported!');
|
||||
}
|
||||
|
||||
const attachment = await this.attachmentService.findOne(
|
||||
attachmentPayload.attachment_id,
|
||||
);
|
||||
|
||||
if (!attachment) {
|
||||
this.logger.debug(
|
||||
'Unable to locate the attachment for the given block',
|
||||
block,
|
||||
throw new Error(
|
||||
'Remote attachments in blocks are no longer supported!',
|
||||
);
|
||||
throw new Error('Unable to find attachment.');
|
||||
}
|
||||
|
||||
const envelope: StdOutgoingEnvelope = {
|
||||
@@ -549,7 +539,7 @@ export class BlockService extends BaseService<
|
||||
message: {
|
||||
attachment: {
|
||||
type: blockMessage.attachment.type,
|
||||
payload: attachment,
|
||||
payload: blockMessage.attachment.payload,
|
||||
},
|
||||
quickReplies: blockMessage.quickReplies
|
||||
? [...blockMessage.quickReplies]
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2024 Hexastack. All rights reserved.
|
||||
* Copyright © 2025 Hexastack. All rights reserved.
|
||||
*
|
||||
* Licensed under the GNU Affero General Public License v3.0 (AGPLv3) with the following additional terms:
|
||||
* 1. The name "Hexabot" is a trademark of Hexastack. You may not use this name in derivative works without express written permission.
|
||||
@@ -231,7 +231,7 @@ export class ChatService {
|
||||
*/
|
||||
@OnEvent('hook:chatbot:message')
|
||||
async handleNewMessage(event: EventWrapper<any, any>) {
|
||||
this.logger.debug('New message received', event);
|
||||
this.logger.debug('New message received', event._adapter.raw);
|
||||
|
||||
const foreignId = event.getSenderForeignId();
|
||||
const handler = event.getHandler();
|
||||
@@ -256,6 +256,8 @@ export class ChatService {
|
||||
|
||||
event.setSender(subscriber);
|
||||
|
||||
await event.preprocess();
|
||||
|
||||
// Trigger message received event
|
||||
this.eventEmitter.emit('hook:chatbot:received', event);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user