import { Controller, Get, Query, Res } from '@nestjs/common'; import { LarkService } from './lark.service'; import { Response } from 'express'; import { Public } from '../auth/decorators/public.decorator'; @Controller('lark') export class LarkController { constructor(private readonly larkService: LarkService) { } @Get('login') @Public() async login(@Query('redirectUri') redirectUri: string, @Res() res: Response) { const loginUrl = await this.larkService.getLoginUrl(redirectUri); return res.redirect(loginUrl); } @Get('callback') @Public() async callback(@Query('code') code: string, @Res() res: Response) { if (!code) { return res.status(400).send('Authorization code is missing'); } const tokenData = await this.larkService.getAccessToken(code); if (tokenData && tokenData.code === 0) { const user = tokenData.data; return res.json({ message: 'Login successful', user }); } else { return res.status(400).send('Failed to retrieve access token'); } } }