feat: initial commit
This commit is contained in:
55
src/auth/auth.controller.ts
Normal file
55
src/auth/auth.controller.ts
Normal file
@@ -0,0 +1,55 @@
|
||||
import {
|
||||
Controller,
|
||||
Post,
|
||||
Body,
|
||||
UseInterceptors,
|
||||
UploadedFile,
|
||||
} from "@nestjs/common";
|
||||
import {AuthService} from "./auth.service";
|
||||
import {ApiBody, ApiConsumes, ApiTags} from "@nestjs/swagger";
|
||||
import {FileInterceptor} from "@nestjs/platform-express";
|
||||
import {RegisterDto} from "./dto/register.dto";
|
||||
import {LoginDto} from "./dto/login.dto";
|
||||
import {ImageValidationInterceptor} from "../common/interceptors/image-validation.interceptor";
|
||||
|
||||
@ApiTags("auth")
|
||||
@Controller("auth")
|
||||
export class AuthController {
|
||||
constructor(private readonly auth: AuthService) {
|
||||
}
|
||||
|
||||
@Post("register")
|
||||
@ApiConsumes("multipart/form-data")
|
||||
@ApiBody({
|
||||
schema: {
|
||||
type: "object",
|
||||
properties: {
|
||||
username: {type: "string"},
|
||||
email: {type: "string"},
|
||||
password: {type: "string"},
|
||||
name: {type: "string"},
|
||||
file: {
|
||||
type: "string",
|
||||
format: "binary",
|
||||
description: "avatar WEBP <= 10MB, <= 1920px",
|
||||
},
|
||||
},
|
||||
required: ["username", "email", "password"],
|
||||
},
|
||||
})
|
||||
@UseInterceptors(
|
||||
FileInterceptor("file", {limits: {fileSize: 10 * 1024 * 1024}}),
|
||||
new ImageValidationInterceptor({required: false, fieldName: "file"}),
|
||||
)
|
||||
async register(
|
||||
@Body() dto: RegisterDto,
|
||||
@UploadedFile() file?: Express.Multer.File,
|
||||
) {
|
||||
return this.auth.register(dto, file);
|
||||
}
|
||||
|
||||
@Post("login")
|
||||
async login(@Body() dto: LoginDto) {
|
||||
return this.auth.login(dto);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user