From e54c1ebdb869c85d76ad827ebfecffef92abf761 Mon Sep 17 00:00:00 2001 From: Cyrille Derche Date: Tue, 26 Nov 2024 11:51:54 +0100 Subject: [PATCH] delete temporal schedule for discourse. --- src/services/discourse/core.service.ts | 14 ++++++++++++-- src/services/platform.service.ts | 11 ++++++++++- src/services/temporal/discourse.service.ts | 12 ++++++++++++ 3 files changed, 34 insertions(+), 3 deletions(-) diff --git a/src/services/discourse/core.service.ts b/src/services/discourse/core.service.ts index a496fb9..e9bf436 100644 --- a/src/services/discourse/core.service.ts +++ b/src/services/discourse/core.service.ts @@ -25,12 +25,22 @@ async function createDiscourseSchedule(platformId: string, endpoint: string): Pr await schedule.trigger(); return schedule.scheduleId; } catch (error) { - logger.error(error, 'Failed to create discourse schedule'); - throw new ApiError(590, 'Failed to create discourse schedule'); + logger.error(error, 'Failed to create discourse schedule.'); + throw new ApiError(590, 'Failed to create discourse schedule.'); + } +} + +async function deleteDiscourseSchedule(scheduleId: string): Promise { + try { + await temporalDiscourse.deleteSchedule(scheduleId); + } catch (error) { + logger.error(error, 'Failed to delete discourse schedule.'); + throw new ApiError(590, 'Failed to delete discourse schedule.'); } } export default { getPropertyHandler, createDiscourseSchedule, + deleteDiscourseSchedule, }; diff --git a/src/services/platform.service.ts b/src/services/platform.service.ts index a0dfa9b..0f8ac3b 100644 --- a/src/services/platform.service.ts +++ b/src/services/platform.service.ts @@ -144,6 +144,15 @@ const updatePlatform = async ( * @returns {Promise>} */ const deletePlatform = async (platform: HydratedDocument): Promise> => { + switch (platform.name) { + case PlatformNames.Discourse: { + if (platform.metadata?.scheduleId) { + await discourseService.coreService.deleteDiscourseSchedule(platform.metadata.scheduleId); + } + } + default: { + } + } return await platform.remove(); }; @@ -157,7 +166,7 @@ const deletePlatformByFilter = async (filter: object): Promise { + const client: Client = await this.getClient(); + const handle = client.schedule.getHandle(scheduleId); + await handle.pause(); + } + + public async deleteSchedule(scheduleId: string): Promise { + const client: Client = await this.getClient(); + const handle = client.schedule.getHandle(scheduleId); + await handle.delete(); + } } export default new TemporalDiscourseService();