✨ feat: add endpoint to get active banners
This commit is contained in:
@ -0,0 +1,18 @@
|
|||||||
|
import { Context } from "elysia";
|
||||||
|
import { mainErrorHandler } from "../../../helpers/error/handler";
|
||||||
|
import { returnReadResponse } from "../../../helpers/callback/httpResponse";
|
||||||
|
import { getActiveHeroBannerService } from "../services/getActiveHeroBanner.service";
|
||||||
|
|
||||||
|
export const getActiveHeroBannerController = async (ctx: Context) => {
|
||||||
|
try {
|
||||||
|
const response = await getActiveHeroBannerService();
|
||||||
|
return returnReadResponse(
|
||||||
|
ctx.set,
|
||||||
|
200,
|
||||||
|
"Active hero banners fetched successfully",
|
||||||
|
response,
|
||||||
|
);
|
||||||
|
} catch (error) {
|
||||||
|
return mainErrorHandler(ctx.set, error);
|
||||||
|
}
|
||||||
|
};
|
||||||
7
src/modules/heroBanner/index.ts
Normal file
7
src/modules/heroBanner/index.ts
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
import Elysia from "elysia";
|
||||||
|
import { getActiveHeroBannerController } from "./controllers/getActiveHeroBanner.controller";
|
||||||
|
|
||||||
|
export const heroBannerModule = new Elysia({ prefix: "/hero-banner" }).get(
|
||||||
|
"/",
|
||||||
|
getActiveHeroBannerController,
|
||||||
|
);
|
||||||
@ -0,0 +1,19 @@
|
|||||||
|
import { AppError } from "../../../../helpers/error/instances/app";
|
||||||
|
import { prisma } from "../../../../utils/databases/prisma/connection";
|
||||||
|
|
||||||
|
export const findAllActiveHeroBannerRepository = async () => {
|
||||||
|
try {
|
||||||
|
return await prisma.heroBanner.findMany({
|
||||||
|
where: {
|
||||||
|
startDate: {
|
||||||
|
lte: new Date(),
|
||||||
|
},
|
||||||
|
endDate: {
|
||||||
|
gte: new Date(),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
} catch (error) {
|
||||||
|
throw new AppError(500, "Failed to fetch active hero banners", error);
|
||||||
|
}
|
||||||
|
};
|
||||||
@ -0,0 +1,10 @@
|
|||||||
|
import { ErrorForwarder } from "../../../helpers/error/instances/forwarder";
|
||||||
|
import { findAllActiveHeroBannerRepository } from "../repositories/GET/findAllActiveHeroBanner.repository";
|
||||||
|
|
||||||
|
export const getActiveHeroBannerService = async () => {
|
||||||
|
try {
|
||||||
|
return await findAllActiveHeroBannerRepository();
|
||||||
|
} catch (error) {
|
||||||
|
ErrorForwarder(error);
|
||||||
|
}
|
||||||
|
};
|
||||||
Reference in New Issue
Block a user