src/controller/1.0.0/file.controller.ts
1.0.0/files
Methods |
|
Async deleteFile | ||||||
deleteFile(params: DeleteFileDTO)
|
||||||
Decorators :
@UseGuards(undefined, RolesGuard)
|
||||||
Defined in src/controller/1.0.0/file.controller.ts:199
|
||||||
Parameters :
Returns :
{}
|
Async deleteFileByFileIdAndCourseId |
deleteFileByFileIdAndCourseId(fileId: number, courseId: number)
|
Decorators :
@UseGuards(undefined, RolesGuard)
|
Defined in src/controller/1.0.0/file.controller.ts:209
|
Returns :
{}
|
Async deleteFileByID | ||||||
deleteFileByID(fileId: number)
|
||||||
Decorators :
@UseGuards(undefined, RolesGuard)
|
||||||
Defined in src/controller/1.0.0/file.controller.ts:204
|
||||||
Parameters :
Returns :
{}
|
Async downloadPitcure | |||||||||
downloadPitcure(filename: string, res)
|
|||||||||
Decorators :
@Get('get-by-filename')
|
|||||||||
Defined in src/controller/1.0.0/file.controller.ts:66
|
|||||||||
Parameters :
Returns :
Promise<any>
|
Async genareateAllUserExamPDF | |||||||||
genareateAllUserExamPDF(req: Request, params: any)
|
|||||||||
Decorators :
@Post('generate-all-user-exam-pdf')
|
|||||||||
Defined in src/controller/1.0.0/file.controller.ts:228
|
|||||||||
Parameters :
Returns :
{}
|
Async genareatePDF | |||||||||
genareatePDF(req: Request, params: QrPdfGenerateDTO)
|
|||||||||
Decorators :
@Post('generate-pdf')
|
|||||||||
Defined in src/controller/1.0.0/file.controller.ts:220
|
|||||||||
Parameters :
Returns :
{}
|
Async generateCourseDocumentationPdf | ||||||
generateCourseDocumentationPdf(id: number)
|
||||||
Decorators :
@Get('get-course-documentation/:id')
|
||||||
Defined in src/controller/1.0.0/file.controller.ts:261
|
||||||
Parameters :
Returns :
{}
|
Async generateCourseDocumentationPdfToCMS | ||||||
generateCourseDocumentationPdfToCMS(id: number)
|
||||||
Decorators :
@Get('get-course-documentation-to-cms/:id')
|
||||||
Defined in src/controller/1.0.0/file.controller.ts:266
|
||||||
Parameters :
Returns :
{}
|
Async getAllFiles |
getAllFiles()
|
Decorators :
@Get()
|
Defined in src/controller/1.0.0/file.controller.ts:62
|
Returns :
{}
|
Async getFileCourse | ||||||
getFileCourse(fileId: number)
|
||||||
Decorators :
@Get('get-file-courses/:fileId')
|
||||||
Defined in src/controller/1.0.0/file.controller.ts:255
|
||||||
Parameters :
Returns :
{}
|
Async getFilesByCourseId | ||||||
getFilesByCourseId(courseId: number)
|
||||||
Decorators :
@Get('get-file-list-by-course-id/:courseId')
|
||||||
Defined in src/controller/1.0.0/file.controller.ts:91
|
||||||
Parameters :
Returns :
{}
|
Async servePDF |
servePDF(filename: string, fileOutName: string, res)
|
Decorators :
@Get('get-pdf')
|
Defined in src/controller/1.0.0/file.controller.ts:234
|
Returns :
Promise<any>
|
Async uploadFile | |||||||||
uploadFile(files, params: any)
|
|||||||||
Decorators :
@UseGuards(undefined, RolesGuard)
|
|||||||||
Defined in src/controller/1.0.0/file.controller.ts:133
|
|||||||||
Parameters :
Returns :
{}
|
Async uploadFileToCourse | ||||||||||||
uploadFileToCourse(files, courseId: number, params: CreateFileCheckGlobalDTO)
|
||||||||||||
Decorators :
@UseGuards(undefined, RolesGuard)
|
||||||||||||
Defined in src/controller/1.0.0/file.controller.ts:109
|
||||||||||||
Parameters :
Returns :
{}
|
Async uploadPicture | ||||
uploadPicture(upload)
|
||||
Decorators :
@Post('upload-image')
|
||||
Defined in src/controller/1.0.0/file.controller.ts:152
|
||||
Parameters :
Returns :
{}
|
Async uploadPictureToCourse | ||||
uploadPictureToCourse(upload)
|
||||
Decorators :
@Post('upload-image/:id')
|
||||
Defined in src/controller/1.0.0/file.controller.ts:171
|
||||
Parameters :
Returns :
{}
|
Async uploadPictureToCourseDocument | ||||||
uploadPictureToCourseDocument(file, id)
|
||||||
Decorators :
@Post('upload-image-to-ducument/:id')
|
||||||
Defined in src/controller/1.0.0/file.controller.ts:190
|
||||||
Parameters :
Returns :
{}
|
import {
Body,
Controller,
Delete,
Get,
Param,
Post,
Query,
Request,
Res,
UploadedFiles,
UseGuards,
UseInterceptors,
} from "@nestjs/common";
import { AuthGuard } from "@nestjs/passport";
import { FileFieldsInterceptor } from "@nestjs/platform-express";
import { diskStorage } from "multer";
import { RolesGuard } from "src/module/auth/guard/roles.guard";
import { FIleService100 } from "src/service/1.0.0/file-descriptor.service";
import { uid } from "uid";
import * as fs from "fs";
import * as path from "path";
import { FIleMissingException } from "src/exception/file/file-missing.exception";
import { DeleteFileDTO } from "src/dto/1.0.0/file/delete-file.dto";
import { QrPdfGenerateDTO } from "src/dto/1.0.0/file/qr-pdf-generate.dto";
import { CreateFileCheckGlobalDTO } from "src/dto/1.0.0/file/create-file-check-global.dto";
import { NotSupportedFileException } from "src/exception/file/not-supported-file.exception";
export const editFileName = (req, file, callback) => {
if (file !== undefined) {
let fileExtName = path.extname(file.originalname);
const randomName =
uid(16) + Math.round(new Date().getTime() / 1000) + fileExtName;
callback(null, `${randomName}`);
}
};
export const editFileNamePicure = (req, file, callback) => {
if (file !== undefined) {
let fileExtName = path.extname(file.originalname);
const randomName =
uid(16) + Math.round(new Date().getTime() / 1000) + fileExtName;
callback(null, `${randomName}`);
}
};
export const fileFileFilter = (req, file, callback) => {
if (
file.fieldname === "file" &&
!file.originalname.match(
/\.(png|jpg|jpeg|bmp|mp4|mp3|wav|fbx|obj|gltf|stl|ply|3mf|zip)$/
)
) {
return callback(new NotSupportedFileException(), false);
}
callback(null, true);
};
@Controller("1.0.0/files")
export class FileController100 {
constructor(private readonly fileService: FIleService100) {}
@Get()
async getAllFiles() {
return await this.fileService.getAllFiles();
}
@Get("get-by-filename")
async downloadPitcure(
@Query("filename") filename: string,
@Res() res
): Promise<any> {
if (
fs.existsSync(
path.resolve(__dirname, "../../../files/uploadedFiles", filename)
) &&
fs
.statSync(
path.resolve(__dirname, "../../../files/uploadedFiles", filename)
)
.isFile()
) {
res.attachment(filename);
res.status(200);
res.sendFile(filename, {
root: path.resolve(__dirname, "../../../files/uploadedFiles"),
});
} else {
throw new FIleMissingException();
}
}
@Get("get-file-list-by-course-id/:courseId")
async getFilesByCourseId(@Param("courseId") courseId: number) {
const files = await this.fileService.getFilesByCourseId(courseId);
return {
files: files,
};
}
//FILE feltöltése közvetlenül a kurzushoz.
@UseGuards(AuthGuard("jwt"), RolesGuard)
@Post("upload-file/:courseId")
@UseInterceptors(
FileFieldsInterceptor([{ name: "file", maxCount: 1 }], {
storage: diskStorage({
destination: "./files/uploadedFiles/",
filename: editFileName,
}),
})
)
async uploadFileToCourse(
@UploadedFiles() files,
@Param("courseId") courseId: number,
@Body() params: CreateFileCheckGlobalDTO
) {
const response = await this.fileService.uploadFileToCourse(
courseId,
files,
params
);
return response;
}
@UseGuards(AuthGuard("jwt"), RolesGuard)
@Post("upload-file")
@UseInterceptors(
FileFieldsInterceptor([{ name: "file" }], {
storage: diskStorage({
destination: "./files/uploadedFiles/",
filename: editFileName,
}),
fileFilter: fileFileFilter,
})
)
async uploadFile(
@UploadedFiles() files,
@Body()
params: any
) {
const response = await this.fileService.uploadFiles(files, params.tag);
return response;
}
// @UseGuards(AuthGuard("jwt"), RolesGuard)
@Post("upload-image")
@UseInterceptors(
FileFieldsInterceptor([{ name: "upload" }], {
storage: diskStorage({
destination: "./files/uploadedFiles/",
filename: editFileNamePicure,
}),
fileFilter: fileFileFilter,
})
)
async uploadPicture(@UploadedFiles() upload) {
return {
uploaded: true,
url:
process.env.BASE_URL +
"1.0.0/files/get-by-filename?filename=" +
upload.upload[0].filename,
};
}
@Post("upload-image/:id")
@UseInterceptors(
FileFieldsInterceptor([{ name: "upload" }], {
storage: diskStorage({
destination: "./files/uploadedFiles/",
filename: editFileNamePicure,
}),
fileFilter: fileFileFilter,
})
)
async uploadPictureToCourse(@UploadedFiles() upload) {
return {
uploaded: true,
url:
process.env.BASE_URL +
"1.0.0/files/get-by-filename?filename=" +
upload.upload[0].filename,
};
}
@Post("upload-image-to-ducument/:id")
@UseInterceptors(
FileFieldsInterceptor([{ name: "file" }], {
storage: diskStorage({
destination: "./files/uploadedFiles/",
filename: editFileNamePicure,
}),
fileFilter: fileFileFilter,
})
)
async uploadPictureToCourseDocument(@UploadedFiles() file, @Param("id") id) {
await this.fileService.updateDocumentWithPicture(file, id);
return {
success: true,
};
}
@UseGuards(AuthGuard("jwt"), RolesGuard)
@Delete("/delete-file")
async deleteFile(@Body() params: DeleteFileDTO) {
return await this.fileService.deleteFile(params);
}
@UseGuards(AuthGuard("jwt"), RolesGuard)
@Delete("/delete-file-by-id/:fileId")
async deleteFileByID(@Param("fileId") fileId: number) {
return await this.fileService.deleteFileByFileId(fileId);
}
@UseGuards(AuthGuard("jwt"), RolesGuard)
@Delete("/delete-file-by-id/:fileId/:courseId")
async deleteFileByFileIdAndCourseId(
@Param("fileId") fileId: number,
@Param("courseId") courseId: number
) {
return await this.fileService.deleteFileByFileIdAndCourseId(
fileId,
courseId
);
}
@Post("generate-pdf")
async genareatePDF(
@Request() req: Request,
@Body() params: QrPdfGenerateDTO
) {
const file = await this.fileService.generateAndSavePDF(params);
return file;
}
@Post("generate-all-user-exam-pdf")
async genareateAllUserExamPDF(@Request() req: Request, @Body() params: any) {
const file = await this.fileService.genareateAllUserExamPDF(params);
return file;
}
@Get("get-pdf")
async servePDF(
@Query("filename") filename: string,
@Query("fileOutName") fileOutName: string,
@Res() res
): Promise<any> {
if (
fs.existsSync(path.resolve(__dirname, "../../../files/pdf", filename)) &&
fs
.statSync(path.resolve(__dirname, "../../../files/pdf", filename))
.isFile()
) {
res.attachment(fileOutName ? fileOutName : filename);
res.status(200);
res.sendFile(filename, {
root: path.resolve(__dirname, "../../../files/pdf"),
});
} else {
throw new FIleMissingException();
}
}
@Get("get-file-courses/:fileId")
async getFileCourse(@Param("fileId") fileId: number) {
const courses = await this.fileService.getCoursesByFile(fileId);
return courses;
}
@Get("get-course-documentation/:id")
async generateCourseDocumentationPdf(@Param("id") id: number) {
const pdfUrl = await this.fileService.generateCourseDocumentationPDF(id);
return pdfUrl;
}
@Get("get-course-documentation-to-cms/:id")
async generateCourseDocumentationPdfToCMS(@Param("id") id: number) {
const data = await this.fileService.generateCourseDocumentationCMS(id);
return data;
}
}