From 299255f35b51b35e499c4501d2d1620e9d3804c7 Mon Sep 17 00:00:00 2001 From: Salomo309 <109785084+Salomo309@users.noreply.github.com> Date: Sat, 11 Nov 2023 16:24:00 +0700 Subject: [PATCH] feat: premium song cntrller --- src/controllers/premium-song-controller.ts | 72 ++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 src/controllers/premium-song-controller.ts diff --git a/src/controllers/premium-song-controller.ts b/src/controllers/premium-song-controller.ts new file mode 100644 index 0000000..14189f7 --- /dev/null +++ b/src/controllers/premium-song-controller.ts @@ -0,0 +1,72 @@ +import { NextFunction, Request, Response } from "express"; +import * as PremiumSongService from "../services/premium-song-services" +import { generateResponse } from "../utils/response"; +import { StatusCodes } from "http-status-codes"; + +const addNewSong = async ( + req: Request, + res: Response, + next: NextFunction, +): Promise<void> => { + try { + const data = req.body; + const premiumAlbumId = Number(req.params.premiumAlbumId); + const responseData = await PremiumSongService.addNewSong(data, premiumAlbumId); + generateResponse(res, StatusCodes.OK, responseData); + } catch (err) { + next(err); + } +}; + +const getAllSongFromAlbum = async ( + req: Request, + res: Response, + next: NextFunction, +): Promise<void> => { + try { + const premiumAlbumId = Number(req.params.premiumAlbumId); + const responseData = await PremiumSongService.getAllSongFromAlbum(premiumAlbumId); + generateResponse(res, StatusCodes.OK, responseData); + } catch (err) { + next(err); + } +}; + +const updatePremiumSong = async ( + req: Request, + res: Response, + next: NextFunction, +): Promise<void> => { + try { + const data = req.body; + const premiumAlbumId = Number(req.params.premiumAlbumId); + const premiumSongId = Number(req.params.premiumSongId); + const responseData = await PremiumSongService.updatePremiumSong(data, premiumAlbumId, premiumSongId); + generateResponse(res, StatusCodes.OK, responseData); + } catch (err) { + next(err); + } +}; + +const deletePremiumSong = async ( + req: Request, + res: Response, + next: NextFunction, +): Promise<void> => { + try { + const premiumAlbumId = Number(req.params.premiumAlbumId); + const premiumSongId = Number(req.params.premiumSongId); + const responseData = await PremiumSongService.deletePremiumSong(premiumAlbumId, premiumSongId); + generateResponse(res, StatusCodes.OK, responseData); + } catch (err) { + next(err); + } +}; + + +export { + addNewSong, + getAllSongFromAlbum, + updatePremiumSong, + deletePremiumSong, +}; -- GitLab