Files
pokemon-inventory/apps/api/src/app/build-app.js
T
fragginwagon ffd239d27c
Quality / test (push) Canceled after 0s
feat: add seller saved views
2026-09-10 01:36:15 -04:00

137 lines
4.8 KiB
JavaScript

import Fastify from "fastify";
import cookie from "@fastify/cookie";
import multipart from "@fastify/multipart";
import { registerAuthRoutes } from "../modules/auth/routes/auth-routes.js";
import { registerAdminInventoryRoutes } from "../modules/inventory/routes/admin-inventory-routes.js";
import { registerAdminLookupRoutes } from "../modules/inventory/routes/admin-lookup-routes.js";
import { registerAdminImageRoutes } from "../modules/inventory/routes/admin-image-routes.js";
import { registerPublicInventoryRoutes } from "../modules/inventory/routes/public-inventory-routes.js";
import { registerPublicImageRoutes } from "../modules/inventory/routes/public-image-routes.js";
import { registerAdminListingRoutes } from "../modules/listings/routes/admin-listing-routes.js";
import { registerPublicListingRoutes } from "../modules/listings/routes/public-listing-routes.js";
import { registerAdminProductRoutes } from "../modules/products/routes/admin-product-routes.js";
import { registerPublicProductRoutes } from "../modules/products/routes/public-product-routes.js";
import { registerPublicSearchRoutes } from "../modules/search/routes/public-search-routes.js";
import { registerPublicSellerRoutes } from "../modules/sellers/routes/public-seller-routes.js";
import { registerPublicLookupRoutes } from "../modules/inventory/routes/public-lookup-routes.js";
import { registerAdminSaleRoutes } from "../modules/sales/routes/admin-sale-routes.js";
import { registerAdminAcquisitionRoutes } from "../modules/acquisitions/routes/admin-acquisition-routes.js";
import { registerAdminDashboardRoutes } from "../modules/dashboard/routes/admin-dashboard-routes.js";
import { registerAdminPricingRoutes } from "../modules/pricing/routes/admin-pricing-routes.js";
import { registerAdminProviderMappingRoutes } from "../modules/pricing/routes/admin-provider-mapping-routes.js";
import { registerAdminExportRoutes } from "../modules/exports/routes/admin-export-routes.js";
import { registerAdminSettingsRoutes } from "../modules/settings/routes/admin-settings-routes.js";
import { registerAdminSavedViewRoutes } from "../modules/search/routes/admin-saved-view-routes.js";
export function buildApp(dependencies) {
const app = Fastify();
app.setErrorHandler((error, request, reply) => {
const statusCode = error.statusCode ?? 500;
const message =
statusCode >= 500 ? "Internal server error." : error.message;
if (statusCode >= 500) {
request.log.error(error);
}
return reply.code(statusCode).send({
error: {
code: error.code ?? "INTERNAL_SERVER_ERROR",
message,
},
});
});
app.get("/health", async () => ({ data: { status: "ok" } }));
app.register(cookie);
app.register(multipart, { limits: { fileSize: 10 * 1024 * 1024, files: 1 } });
app.register(registerAuthRoutes, {
...dependencies,
prefix: "/api/v1/auth",
});
app.register(registerAdminProductRoutes, {
...dependencies,
prefix: "/api/v1/admin",
});
app.register(registerAdminInventoryRoutes, {
...dependencies,
prefix: "/api/v1/admin",
});
app.register(registerAdminLookupRoutes, {
...dependencies,
prefix: "/api/v1/admin",
});
app.register(registerAdminImageRoutes, {
...dependencies,
prefix: "/api/v1/admin",
});
app.register(registerAdminListingRoutes, {
...dependencies,
prefix: "/api/v1/admin",
});
app.register(registerAdminSaleRoutes, {
...dependencies,
prefix: "/api/v1/admin",
});
app.register(registerAdminAcquisitionRoutes, {
...dependencies,
prefix: "/api/v1/admin",
});
app.register(registerAdminDashboardRoutes, {
...dependencies,
prefix: "/api/v1/admin",
});
app.register(registerAdminPricingRoutes, {
...dependencies,
prefix: "/api/v1/admin",
});
app.register(registerAdminProviderMappingRoutes, {
...dependencies,
prefix: "/api/v1/admin",
});
app.register(registerAdminExportRoutes, {
...dependencies,
prefix: "/api/v1/admin",
});
app.register(registerAdminSettingsRoutes, {
...dependencies,
prefix: "/api/v1/admin",
});
app.register(registerAdminSavedViewRoutes, {
...dependencies,
prefix: "/api/v1/admin",
});
app.register(registerPublicSearchRoutes, {
...dependencies,
prefix: "/api/v1",
});
app.register(registerPublicProductRoutes, {
...dependencies,
prefix: "/api/v1",
});
app.register(registerPublicListingRoutes, {
...dependencies,
prefix: "/api/v1",
});
app.register(registerPublicInventoryRoutes, {
...dependencies,
prefix: "/api/v1",
});
app.register(registerPublicImageRoutes, {
...dependencies,
prefix: "/api/v1",
});
app.register(registerPublicSellerRoutes, {
...dependencies,
prefix: "/api/v1",
});
app.register(registerPublicLookupRoutes, {
...dependencies,
prefix: "/api/v1",
});
return app;
}