Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 10 additions & 5 deletions src/controllers/platform.controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,19 @@ import { DatabaseManager, PlatformNames } from '@togethercrew.dev/db';

import config from '../config';
import parentLogger from '../config/logger';
import {
discord, generateCodeChallenge, generateCodeVerifier, generateState, google, twitter
} from '../config/oAtuh2';
import { discord, generateCodeChallenge, generateCodeVerifier, generateState, google, twitter } from '../config/oAtuh2';
import { IAuthAndPlatform, ISessionRequest } from '../interfaces';
import { IAuthRequest } from '../interfaces/Request.interface';
import {
discordServices, discourseService, githubService, googleService, notionService, platformService,
tokenService, twitterService, userService
discordServices,
discourseService,
githubService,
googleService,
notionService,
platformService,
tokenService,
twitterService,
userService,
} from '../services';
import { catchAsync, pick } from '../utils';

Expand Down
11 changes: 2 additions & 9 deletions src/services/module.service.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
import { FilterQuery, HydratedDocument, ObjectId, Types } from 'mongoose';

import {
IModule, IModuleUpdateBody, Module, ModuleNames, PlatformNames
} from '@togethercrew.dev/db';
import { IModule, IModuleUpdateBody, Module, ModuleNames, PlatformNames } from '@togethercrew.dev/db';

import platformService from './platform.service';
import websiteService from './website';
Expand Down Expand Up @@ -65,14 +63,10 @@ const updateModule = async (
module: HydratedDocument<IModule>,
updateBody: Partial<IModuleUpdateBody>,
): Promise<HydratedDocument<IModule>> => {
console.log('S1', module.name, updateBody.options?.platforms);

if (!updateBody.options?.platforms?.length) {
return module.save();
}

console.log('S2', module.options);

if (!module.options) {
module.options = { platforms: [] };
} else if (!module.options.platforms) {
Expand All @@ -81,8 +75,6 @@ const updateModule = async (

const platforms = updateBody.options.platforms;

console.log('S3', platforms[0].name);

if (platforms[0].name === undefined) {
const globalOption = module.options.platforms[0];
if (globalOption) {
Expand Down Expand Up @@ -134,6 +126,7 @@ const handleHivemindWebsiteCase = async (platform: any) => {
} else if (isActivated === false) {
if (existingScheduleId) {
await websiteService.coreService.deleteWebsiteSchedule(existingScheduleId);
await websiteService.coreService.terminateWebsiteWorkflow(platformDoc.community.toString());
platformDoc.set('metadata.scheduleId', null);

await platformDoc.save();
Expand Down
1 change: 1 addition & 0 deletions src/services/platform.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -374,6 +374,7 @@ const handleWebsiteResourceChanges = async (

if (platform.metadata.scheduleId) {
await websiteService.coreService.deleteWebsiteSchedule(platform.metadata.scheduleId);
await websiteService.coreService.terminateWebsiteWorkflow(platform.community.toString());
updateBody.metadata.scheduleId = null;
}

Expand Down
6 changes: 6 additions & 0 deletions src/services/temporal/website.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,12 @@ class TemporalWebsiteService extends TemporalCoreService {
const handle = client.schedule.getHandle(scheduleId);
await handle.delete();
}

public async terminateWorkflow(workflowId: string): Promise<void> {
const client: Client = await this.getClient();
const handle = client.workflow.getHandle(workflowId);
await handle.terminate();
}
}

export default new TemporalWebsiteService();
10 changes: 10 additions & 0 deletions src/services/website/core.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,17 @@ async function deleteWebsiteSchedule(scheduleId: string): Promise<void> {
}
}

async function terminateWebsiteWorkflow(workflowId: string): Promise<void> {
try {
await temporalWebsite.terminateWorkflow(workflowId);
} catch (error) {
logger.error(error, 'Failed to terminate website workflow.');
throw new ApiError(590, 'Failed to terminate website workflow.');
}
}

export default {
createWebsiteSchedule,
deleteWebsiteSchedule,
terminateWebsiteWorkflow,
};