Companies are now listing properly

This commit is contained in:
2026-02-13 17:02:03 -06:00
parent 24d0c066fd
commit 628dc35dea
13 changed files with 123 additions and 15 deletions
+19 -13
View File
@@ -10,22 +10,28 @@ export default createRoute(
"get",
["/companies"],
async (c) => {
/**
*
*
* @TODO MAKE THIS WORK
*
*
*
*/
const page = new Number(c.req.query("page") ?? 1) as number;
const rpp = new Number(c.req.query("rpp") ?? 30) as number; // Records Per Page
const companyQty = await companies.count();
const company = await companies.fetch(c.req.param("identifier"));
const data = await companies.fetchPages(page, rpp);
const response = apiResponse.successful(
"Company Fetched Successfully!",
company,
let response = apiResponse.successful(
"Companies Fetched Successfully!",
data,
{
pagination: {
previousPage: page == 1 ? null : page - 1, // Previous Page
currentPage: page, // Current Page
nextPage: page >= companyQty / rpp ? null : page + 1, // Next Page
totalPages: Math.ceil(companyQty / rpp), // Total Number of Pages
totalRecords: companyQty, // Total Number of Records
listedRecords: rpp, // Total Number of Records being recieved at time of request.
},
},
);
return c.json(response, response.status as ContentfulStatusCode);
},
authMiddleware({ permissions: ["company.fetch"] }),
authMiddleware({ permissions: ["company.fetch.many"] }),
);
+2
View File
@@ -0,0 +1,2 @@
export { default as fetchAll } from "./fetchAll";
//export { default as fetch } from "./fetch";
+7
View File
@@ -0,0 +1,7 @@
import { Hono } from "hono";
import * as companyRoutes from "../companies";
const companyRouter = new Hono();
Object.values(companyRoutes).map((r) => companyRouter.route("/", r));
export default companyRouter;
+7
View File
@@ -0,0 +1,7 @@
import { Hono } from "hono";
import * as userRoutes from "../user/@me";
const authRouter = new Hono();
Object.values(userRoutes).map((r) => authRouter.route("/", r));
export default authRouter;
+2
View File
@@ -48,6 +48,8 @@ app.notFound((c) => {
v1.route("/teapot", teapot);
v1.route("/auth", require("./routers/authRouter").default);
v1.route("/user", require("./routers/user").default);
v1.route("/company", require("./routers/companyRouter").default);
app.route("/v1", v1);
export default app;
+18
View File
@@ -0,0 +1,18 @@
import { ContentfulStatusCode } from "hono/utils/http-status";
import { apiResponse } from "../../../modules/api-utils/apiResponse";
import { createRoute } from "../../../modules/api-utils/createRoute";
import { authMiddleware } from "../../middleware/authorization";
// /v1/user/@me
export default createRoute(
"get",
["/@me"],
(c) => {
const response = apiResponse.successful(
"Fetched user.",
c.get("user")?.toJson(),
);
return c.json(response, response.status as ContentfulStatusCode);
},
authMiddleware({ scopes: ["user.read"] }),
);
+2
View File
@@ -0,0 +1,2 @@
export { default as fetch } from "./fetch";
export { default as update } from "./update";
+19
View File
@@ -0,0 +1,19 @@
import { ContentfulStatusCode } from "hono/utils/http-status";
import { apiResponse } from "../../../modules/api-utils/apiResponse";
import { createRoute } from "../../../modules/api-utils/createRoute";
import { authMiddleware } from "../../middleware/authorization";
export default createRoute(
"patch",
["/@me"],
async (c) => {
const updatedUser = await c.get("user")?.update(await c.req.json());
const response = apiResponse.successful(
"Successfully updated user.",
updatedUser?.toJson(),
);
return c.json(response, response.status as ContentfulStatusCode);
},
authMiddleware({ scopes: ["user.write"] }),
);