import { ApiError, ExpressController } from "@common/presentation"; import { NextFunction, Request, Response } from "express"; import httpStatus from "http-status"; export const validateTabHeader = (req: Request, res: Response, next: NextFunction) => { const tabId = req.headers["x-tab-id"]; if (!tabId) { return ExpressController.errorResponse( new ApiError({ status: 401, title: httpStatus["401"], name: httpStatus["401_NAME"], detail: "Tab ID is required", }), res ); } next(); }; export const validateTabContext = async (req: Request, res: Response, next: NextFunction) => { const tabId = req.headers["x-tab-id"]; if (!tabId) { return ExpressController.errorResponse( new ApiError({ status: 401, title: httpStatus["401"], name: httpStatus["401_NAME"], detail: "Tab ID is required", }), res ); } const contextOrError = await TabContextRepository.getContextByTabId(tabId); if (contextOrError.isFailure) { return ExpressController.errorResponse( new ApiError({ status: 401, title: httpStatus["401"], name: httpStatus["401_NAME"], detail: "Invalid or expired Tab ID", }), res ); } const context = contextOrError.data; req.user = { id: context.user_id, company_id: context.company_id }; next(); };