targo-backend/src/chatbot/chatbot.controller.ts

35 lines
1.5 KiB
TypeScript

import { Controller, Post, Body, Get, Query, Param } from '@nestjs/common';
import { Message } from 'src/chatbot/dtos/dialog-message.dto';
import { UserMessageDto } from 'src/chatbot/dtos/user-message.dto';
import { ChatbotService } from 'src/chatbot/chatbot.service';
import { PageContextDto } from 'src/chatbot/dtos/page-context.dto';
import { Access } from 'src/common/decorators/module-access.decorators';
import { ModuleAccessAllowed } from 'src/common/decorators/modules-guard.decorators';
import { Modules as ModulesEnum } from ".prisma/client";
@Controller('chatbot')
export class ChatbotController {
constructor(private readonly chatbotService: ChatbotService) {}
@Post('')
@ModuleAccessAllowed(ModulesEnum.chatbot)
async testConnection(@Body() body: UserMessageDto, @Access('email') email: string): Promise<Message> {
return await this.chatbotService.pingExternalApi(body, email);
}
@Post('context')
@ModuleAccessAllowed(ModulesEnum.chatbot)
async sendContext(@Body() body: PageContextDto): Promise<string> {
const sendPageContext = await this.chatbotService.sendPageContext(body);
return sendPageContext;
}
// Will have to modify later on to accomodate newer versions of User Auth/User type Structure
@Post('user')
@ModuleAccessAllowed(ModulesEnum.chatbot)
async sendUserCredentials(@Access('email') email: string,): Promise<boolean> {
const sendUserContext = await this.chatbotService.sendUserContext(email);
return sendUserContext;
}
}