Skip to content
Snippets Groups Projects
Commit 91422555 authored by Salomo309's avatar Salomo309
Browse files

refactor: add ftp

parent 1def8778
Branches postarticle
1 merge request!2Dev
...@@ -10,7 +10,8 @@ const createPremiumAlbum = async ( ...@@ -10,7 +10,8 @@ const createPremiumAlbum = async (
): Promise<void> => { ): Promise<void> => {
try { try {
const data = req.body; const data = req.body;
const responseData = await PremiumAlbumService.createPremiumAlbum(data); const coverFile = req.file;
const responseData = await PremiumAlbumService.createPremiumAlbum(data, coverFile);
generateResponse(res, StatusCodes.OK, responseData); generateResponse(res, StatusCodes.OK, responseData);
} catch (err) { } catch (err) {
next(err); next(err);
...@@ -44,10 +45,12 @@ const updatePremiumAlbum = async ( ...@@ -44,10 +45,12 @@ const updatePremiumAlbum = async (
try { try {
const premiumAlbumId = Number(req.params.premiumAlbumId); const premiumAlbumId = Number(req.params.premiumAlbumId);
const data = req.body; const data = req.body;
const coverFile = req.file;
const updatedPremiumAlbum = await PremiumAlbumService.updatePremiumAlbum( const updatedPremiumAlbum = await PremiumAlbumService.updatePremiumAlbum(
data, data,
premiumAlbumId, premiumAlbumId,
coverFile
); );
generateResponse(res, StatusCodes.OK, updatedPremiumAlbum); generateResponse(res, StatusCodes.OK, updatedPremiumAlbum);
} catch (err) { } catch (err) {
......
...@@ -3,19 +3,27 @@ import prismaClient from "../cores/db"; ...@@ -3,19 +3,27 @@ import prismaClient from "../cores/db";
import { ErrorType, StandardError } from "../errors/standard-error"; import { ErrorType, StandardError } from "../errors/standard-error";
import {validate} from "../validation/validation"; import {validate} from "../validation/validation";
import {createPremiumAlbumSchema, searchPremiumAlbumSchema, deletePremiumAlbumSchema, updatePremiumAlbumSchema} from "../validation/premium-album-validation"; import {createPremiumAlbumSchema, searchPremiumAlbumSchema, deletePremiumAlbumSchema, updatePremiumAlbumSchema} from "../validation/premium-album-validation";
import { saveFile } from "../utils/FileProcessing";
const createPremiumAlbum = async ( const createPremiumAlbum = async (
data: Prisma.PremiumAlbumCreateInput, data: Prisma.PremiumAlbumCreateInput,
coverFile: Express.Multer.File | undefined,
): Promise<PremiumAlbum> => { ): Promise<PremiumAlbum> => {
validate(createPremiumAlbumSchema, data) validate(createPremiumAlbumSchema, data)
if (!coverFile) {
throw new StandardError(ErrorType.FILE_NOT_VALID);
}
const coverFileName = await saveFile(coverFile);
return prismaClient.premiumAlbum.create({ return prismaClient.premiumAlbum.create({
data: { data: {
albumName: data.albumName, albumName: data.albumName,
releaseDate: data.releaseDate, releaseDate: data.releaseDate,
genre: data.genre, genre: data.genre,
artist: data.artist, artist: data.artist,
coverFilename: data.coverFilename, coverFilename: coverFileName,
}, },
}); });
}; };
...@@ -75,6 +83,7 @@ const searchPremiumAlbum = async (reqQuery: { ...@@ -75,6 +83,7 @@ const searchPremiumAlbum = async (reqQuery: {
const updatePremiumAlbum = async ( const updatePremiumAlbum = async (
inputData: Prisma.PremiumAlbumUpdateInput, inputData: Prisma.PremiumAlbumUpdateInput,
premiumAlbumId: number, premiumAlbumId: number,
coverFile: Express.Multer.File | undefined,
): Promise<PremiumAlbum> => { ): Promise<PremiumAlbum> => {
validate(updatePremiumAlbumSchema, {premiumAlbumId, ...inputData}) validate(updatePremiumAlbumSchema, {premiumAlbumId, ...inputData})
...@@ -88,6 +97,13 @@ const updatePremiumAlbum = async ( ...@@ -88,6 +97,13 @@ const updatePremiumAlbum = async (
throw new StandardError(ErrorType.ALBUM_NOT_FOUND); throw new StandardError(ErrorType.ALBUM_NOT_FOUND);
} }
if (!coverFile) {
throw new StandardError(ErrorType.INPUT_DATA_NOT_VALID);
}
const coverFileName = await saveFile(coverFile);
inputData.coverFilename = coverFileName;
return prismaClient.premiumAlbum.update({ return prismaClient.premiumAlbum.update({
where: { where: {
albumId: premiumAlbumId, albumId: premiumAlbumId,
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment