// router import express from "express"; const router = express.Router(); export default router; // db import { db } from "#db"; import { ZDbShema } from "#db-shema"; import { sql } from "slonik"; // api import { CompanyManagerApi } from "#api/company-manager-api.ts"; // error import { ApiError } from "#exceptions/api-error.ts"; // dayjs import dayjs from "dayjs"; import utc from "dayjs/plugin/utc.js"; dayjs.extend(utc); import timezone from "dayjs/plugin/timezone.js"; dayjs.extend(timezone); // other import { z } from "zod"; import { v7 as uuidv7 } from "uuid"; // import { logger } from "#logger"; import { UserUtils } from "#utils/user-utils.js"; dayjs.extend(utc); router.post("/add-company", async (req, res, next) => { try { // функция валидации ответа const ZResType = CompanyManagerApi.ZAddCompany.res; //change const sendRes = ( status: 200 | 400 | 500, resData: z.infer, ) => { const response = ZResType.parse(resData); res.status(status).json(response); }; // // валидация запроса const { name } = CompanyManagerApi.ZAddCompany.req.parse(req.body); const userId = UserUtils.getUserFromReq(req).userId; const companyId = uuidv7(); // company await db.query( sql.unsafe` insert into users.companies (company_id, name, owner_id) values (${companyId}, ${name}, ${userId})`, ); sendRes(200, { code: "success" }); } catch (e) { next(e); } });