gohorsejobs/backoffice/src/fcm-tokens/fcm-tokens.controller.ts

31 lines
1,000 B
TypeScript

import { Controller, Post, Body, UseGuards, Req } from '@nestjs/common';
import { ApiTags, ApiOperation, ApiBody, ApiBearerAuth } from '@nestjs/swagger';
import { FcmTokensService, SaveTokenDto } from './fcm-tokens.service';
export class CreateFcmTokenDto {
token: string;
platform: 'web' | 'android' | 'ios';
}
@ApiTags('FCM Tokens')
@Controller('fcm-tokens')
export class FcmTokensController {
constructor(private readonly fcmTokensService: FcmTokensService) { }
@Post()
@ApiOperation({ summary: 'Save FCM Token' })
@ApiBearerAuth()
@ApiBody({ type: CreateFcmTokenDto })
async saveToken(@Body() body: CreateFcmTokenDto, @Req() req: any) {
// Assuming Auth guard populates req.user
// If not using AuthGuard, we might mock userId for now
const userId = req.user?.id || 'mock-admin-id';
await this.fcmTokensService.saveToken({
...body,
userId,
});
return { message: 'Token saved' };
}
}