Commit 0f1c77f3 authored by nanahira's avatar nanahira

add has-conversation

parent 16e12c24
...@@ -4,6 +4,7 @@ import { ...@@ -4,6 +4,7 @@ import {
Get, Get,
Headers, Headers,
Post, Post,
Query,
ValidationPipe, ValidationPipe,
} from '@nestjs/common'; } from '@nestjs/common';
import { ChatgptService } from './chatgpt/chatgpt.service'; import { ChatgptService } from './chatgpt/chatgpt.service';
...@@ -11,7 +12,10 @@ import { ...@@ -11,7 +12,10 @@ import {
BlankReturnMessageDto, BlankReturnMessageDto,
ReturnMessageDto, ReturnMessageDto,
} from './dto/ReturnMessage.dto'; } from './dto/ReturnMessage.dto';
import { ConversationDto } from './conversation/conversation.dto'; import {
ConversationDto,
HasConversationDto,
} from './conversation/conversation.dto';
import { import {
ApiBody, ApiBody,
ApiCreatedResponse, ApiCreatedResponse,
...@@ -27,6 +31,7 @@ import { AccountPoolService } from './account-pool/account-pool.service'; ...@@ -27,6 +31,7 @@ import { AccountPoolService } from './account-pool/account-pool.service';
const ResponseDto = ReturnMessageDto(ConversationDto); const ResponseDto = ReturnMessageDto(ConversationDto);
const StatusDto = ReturnMessageDto(AccountPoolStatusDto); const StatusDto = ReturnMessageDto(AccountPoolStatusDto);
const hasConversationResponse = ReturnMessageDto(HasConversationDto);
@Controller() @Controller()
export class AppController { export class AppController {
...@@ -74,6 +79,29 @@ export class AppController { ...@@ -74,6 +79,29 @@ export class AppController {
return new BlankReturnMessageDto(201, 'success'); return new BlankReturnMessageDto(201, 'success');
} }
@Get('has-conversation')
@ApiOperation({ summary: 'Check where it has a conversation' })
@ApiOkResponse({ type: hasConversationResponse })
async hasConversation(
@Query(
new ValidationPipe({
transform: true,
transformOptions: { enableImplicitConversion: true },
}),
)
dto: SessionDto,
@Headers('Authorization') header: string,
) {
await this.authService.auth(header);
const hasConversation = await this.conversation.hasConversation(
dto.session,
);
const payload = new HasConversationDto();
payload.session = dto.session;
payload.hasConversation = hasConversation;
return new hasConversationResponse(200, 'success', payload);
}
@Get('status') @Get('status')
@ApiOperation({ summary: 'Get account status.' }) @ApiOperation({ summary: 'Get account status.' })
@ApiOkResponse({ type: StatusDto }) @ApiOkResponse({ type: StatusDto })
......
...@@ -6,6 +6,12 @@ export class ConversationBase { ...@@ -6,6 +6,12 @@ export class ConversationBase {
@ApiProperty({ description: 'Session identifier.' }) @ApiProperty({ description: 'Session identifier.' })
session: string; session: string;
} }
export class HasConversationDto extends ConversationBase {
@ApiProperty({ description: 'Whether the session has a conversation.' })
hasConversation: boolean;
}
export class ConversationDto extends ConversationBase { export class ConversationDto extends ConversationBase {
@ApiProperty({ description: 'Message from ChatGPT.' }) @ApiProperty({ description: 'Message from ChatGPT.' })
text: string; text: string;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment