feat: add endpoint to get active banners

This commit is contained in:
2026-03-02 22:32:05 +07:00
parent 960493f414
commit 6ffa087e91
4 changed files with 54 additions and 0 deletions

View File

@ -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);
}
};

View 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,
);

View File

@ -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);
}
};

View File

@ -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);
}
};