| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- import { Body, Controller, ForbiddenException, Get, Param, Post, Put, Req, Res, Sse, Headers } from '@nestjs/common'
- import { Org } from './entities/org.entity'
- import { PageRequest } from '../common/dto/page-request'
- import { OrgService } from './org.service'
- import { HasRoles } from '../auth/roles.decorator'
- import { Role } from '../model/role.enum'
- import { Public } from 'src/auth/public.decorator'
- @Controller('org')
- export class OrgController {
- constructor(private readonly orgService: OrgService) {}
- @Get()
- @Public()
- async getOrgFromUrl(@Headers('host') host) {
- return await this.orgService.findByUrl(host.replace(/^http(s?):\/\//, '').replace(/\/$/, ''))
- }
- @Get('/my')
- async my(@Req() req) {
- if (!req.user.orgId) {
- throw new ForbiddenException('You are not a member of any organization')
- }
- return await this.orgService.findById(req.user.orgId)
- }
- @Get('/:id')
- @Public()
- async get(@Param('id') id: string) {
- return await this.orgService.findById(Number(id))
- }
- @Put('/my')
- async update(@Req() req, @Body() org: Org) {
- if (!req.user.orgId) {
- throw new ForbiddenException('You are not a member of any organization')
- }
- org.id = req.user.orgId
- return await this.orgService.update(org)
- }
- @Post('/:id/ask')
- async ask(
- @Req() req,
- @Param('id') id: string,
- @Body()
- body: {
- prompt: string
- options: {
- parentMessageId?: string
- }
- knowledgeId?: number
- fileId?: number
- }
- ) {
- const orgId = Number(id)
- // if (req.user.orgId != orgId) {
- // throw new ForbiddenException('You are not a member of this organization')
- // }
- return await this.orgService.ask(body.prompt, orgId, body.options?.parentMessageId, body.knowledgeId, body.fileId)
- }
- @Post('/:id/streamAsk')
- @Sse()
- async streamAsk(@Req() req, @Res() res, @Param('id') id: string, @Body() body: { prompt: string }) {
- const orgId = Number(id)
- // if (req.user.orgId != orgId) {
- // throw new ForbiddenException('You are not a member of this organization')
- // }
- await this.orgService.streamAsk(req, res, body.prompt, orgId)
- }
- }
|