Skip to content
This repository was archived by the owner on Jul 4, 2025. It is now read-only.

Commit 5a95b45

Browse files
authored
Merge pull request #594 from janhq/feat/cortex-client-sdk-compatible
feat: cortex client sdk compatible
2 parents 6097606 + 17feb51 commit 5a95b45

File tree

5 files changed

+53
-1
lines changed

5 files changed

+53
-1
lines changed

cortex-js/src/infrastructure/controllers/assistants.controller.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,20 @@
1-
import { Body, Controller, Delete, Get, Param, Post } from '@nestjs/common';
1+
import {
2+
Body,
3+
Controller,
4+
Delete,
5+
Get,
6+
Param,
7+
Post,
8+
UseInterceptors,
9+
} from '@nestjs/common';
210
import { AssistantsUsecases } from '@/usecases/assistants/assistants.usecases';
311
import { CreateAssistantDto } from '@/infrastructure/dtos/assistants/create-assistant.dto';
412
import { ApiTags } from '@nestjs/swagger';
13+
import { TransformInterceptor } from '../interceptors/transform.interceptor';
514

615
@ApiTags('Assistants')
716
@Controller('assistants')
17+
@UseInterceptors(TransformInterceptor)
818
export class AssistantsController {
919
constructor(private readonly assistantsService: AssistantsUsecases) {}
1020

cortex-js/src/infrastructure/controllers/messages.controller.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,17 @@ import {
66
Patch,
77
Param,
88
Delete,
9+
UseInterceptors,
910
} from '@nestjs/common';
1011
import { MessagesUsecases } from '@/usecases/messages/messages.usecases';
1112
import { CreateMessageDto } from '@/infrastructure/dtos/messages/create-message.dto';
1213
import { UpdateMessageDto } from '@/infrastructure/dtos/messages/update-message.dto';
1314
import { ApiTags } from '@nestjs/swagger';
15+
import { TransformInterceptor } from '../interceptors/transform.interceptor';
1416

1517
@ApiTags('Messages')
1618
@Controller('messages')
19+
@UseInterceptors(TransformInterceptor)
1720
export class MessagesController {
1821
constructor(private readonly messagesUsecases: MessagesUsecases) {}
1922

cortex-js/src/infrastructure/controllers/models.controller.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,19 @@ import {
77
Param,
88
Delete,
99
HttpCode,
10+
UseInterceptors,
1011
} from '@nestjs/common';
1112
import { ModelsUsecases } from '@/usecases/models/models.usecases';
1213
import { CreateModelDto } from '@/infrastructure/dtos/models/create-model.dto';
1314
import { UpdateModelDto } from '@/infrastructure/dtos/models/update-model.dto';
1415
import { ApiResponse, ApiTags } from '@nestjs/swagger';
1516
import { StartModelSuccessDto } from '@/infrastructure/dtos/models/start-model-success.dto';
1617
import { ModelSettingParamsDto } from '../dtos/models/model-setting-params.dto';
18+
import { TransformInterceptor } from '../interceptors/transform.interceptor';
1719

1820
@ApiTags('Models')
1921
@Controller('models')
22+
@UseInterceptors(TransformInterceptor)
2023
export class ModelsController {
2124
constructor(private readonly modelsUsecases: ModelsUsecases) {}
2225

cortex-js/src/infrastructure/controllers/threads.controller.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,17 @@ import {
66
Patch,
77
Param,
88
Delete,
9+
UseInterceptors,
910
} from '@nestjs/common';
1011
import { ThreadsUsecases } from '@/usecases/threads/threads.usecases';
1112
import { CreateThreadDto } from '@/infrastructure/dtos/threads/create-thread.dto';
1213
import { UpdateThreadDto } from '@/infrastructure/dtos/threads/update-thread.dto';
1314
import { ApiTags } from '@nestjs/swagger';
15+
import { TransformInterceptor } from '../interceptors/transform.interceptor';
1416

1517
@ApiTags('Threads')
1618
@Controller('threads')
19+
@UseInterceptors(TransformInterceptor)
1720
export class ThreadsController {
1821
constructor(private readonly threadsService: ThreadsUsecases) {}
1922

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import {
2+
CallHandler,
3+
ExecutionContext,
4+
Injectable,
5+
NestInterceptor,
6+
} from '@nestjs/common';
7+
import { Observable } from 'rxjs';
8+
import { map } from 'rxjs/operators';
9+
10+
export interface Response<T> {
11+
data: T;
12+
}
13+
14+
@Injectable()
15+
export class TransformInterceptor<T>
16+
implements NestInterceptor<T, Response<T>>
17+
{
18+
intercept(
19+
context: ExecutionContext,
20+
next: CallHandler,
21+
): Observable<Response<T>> {
22+
return next.handle().pipe(
23+
map((data) => {
24+
return Array.isArray(data)
25+
? {
26+
object: 'list',
27+
data,
28+
}
29+
: data;
30+
}),
31+
);
32+
}
33+
}

0 commit comments

Comments
 (0)