mirror of
https://github.com/docmost/docmost.git
synced 2026-05-21 09:14:07 +08:00
switch to nx monorepo
This commit is contained in:
@@ -0,0 +1,110 @@
|
||||
import {
|
||||
BadRequestException,
|
||||
Controller,
|
||||
HttpCode,
|
||||
HttpStatus,
|
||||
Post,
|
||||
Req,
|
||||
Res,
|
||||
UseGuards,
|
||||
UseInterceptors,
|
||||
} from '@nestjs/common';
|
||||
import { AttachmentService } from './attachment.service';
|
||||
import { FastifyReply, FastifyRequest } from 'fastify';
|
||||
import { AttachmentInterceptor } from './attachment.interceptor';
|
||||
import { JwtUser } from '../../decorators/jwt-user.decorator';
|
||||
import { JwtGuard } from '../auth/guards/JwtGuard';
|
||||
import * as bytes from 'bytes';
|
||||
|
||||
@Controller('attachments')
|
||||
export class AttachmentController {
|
||||
constructor(private readonly attachmentService: AttachmentService) {}
|
||||
|
||||
@UseGuards(JwtGuard)
|
||||
@HttpCode(HttpStatus.CREATED)
|
||||
@Post('upload/avatar')
|
||||
@UseInterceptors(AttachmentInterceptor)
|
||||
async uploadAvatar(
|
||||
@JwtUser() jwtUser,
|
||||
@Req() req: FastifyRequest,
|
||||
@Res() res: FastifyReply,
|
||||
) {
|
||||
const maxFileSize = bytes('5MB');
|
||||
|
||||
try {
|
||||
const file = req.file({
|
||||
limits: { fileSize: maxFileSize, fields: 1, files: 1 },
|
||||
});
|
||||
|
||||
const fileResponse = await this.attachmentService.uploadAvatar(
|
||||
file,
|
||||
jwtUser.id,
|
||||
);
|
||||
|
||||
return res.send(fileResponse);
|
||||
} catch (err) {
|
||||
throw new BadRequestException('Error processing file upload.');
|
||||
}
|
||||
}
|
||||
|
||||
@UseGuards(JwtGuard)
|
||||
@HttpCode(HttpStatus.CREATED)
|
||||
@Post('upload/workspace-logo')
|
||||
@UseInterceptors(AttachmentInterceptor)
|
||||
async uploadWorkspaceLogo(
|
||||
@JwtUser() jwtUser,
|
||||
@Req() req: FastifyRequest,
|
||||
@Res() res: FastifyReply,
|
||||
) {
|
||||
const maxFileSize = bytes('5MB');
|
||||
|
||||
try {
|
||||
const file = req.file({
|
||||
limits: { fileSize: maxFileSize, fields: 1, files: 1 },
|
||||
});
|
||||
|
||||
// TODO FIX
|
||||
const workspaceId = '123';
|
||||
|
||||
const fileResponse = await this.attachmentService.uploadWorkspaceLogo(
|
||||
file,
|
||||
workspaceId,
|
||||
jwtUser.id,
|
||||
);
|
||||
|
||||
return res.send(fileResponse);
|
||||
} catch (err) {
|
||||
throw new BadRequestException('Error processing file upload.');
|
||||
}
|
||||
}
|
||||
|
||||
@UseGuards(JwtGuard)
|
||||
@HttpCode(HttpStatus.CREATED)
|
||||
@Post('upload/file')
|
||||
@UseInterceptors(AttachmentInterceptor)
|
||||
async uploadFile(
|
||||
@JwtUser() jwtUser,
|
||||
@Req() req: FastifyRequest,
|
||||
@Res() res: FastifyReply,
|
||||
) {
|
||||
const maxFileSize = bytes('20MB');
|
||||
|
||||
try {
|
||||
const file = req.file({
|
||||
limits: { fileSize: maxFileSize, fields: 1, files: 1 },
|
||||
});
|
||||
|
||||
const workspaceId = '123';
|
||||
|
||||
const fileResponse = await this.attachmentService.uploadWorkspaceLogo(
|
||||
file,
|
||||
workspaceId,
|
||||
jwtUser.id,
|
||||
);
|
||||
|
||||
return res.send(fileResponse);
|
||||
} catch (err) {
|
||||
throw new BadRequestException('Error processing file upload.');
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user