-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathroute.ts
More file actions
30 lines (26 loc) · 1.73 KB
/
route.ts
File metadata and controls
30 lines (26 loc) · 1.73 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import { Hono } from "hono";
import { DataSource } from "typeorm";
import { ClaimController, IClaimController } from "./controller";
import { DocumentTransaction, IDocumentTransaction } from "../documents/transaction";
import { ClaimService, IClaimService } from "./service";
import { ClaimTransaction, IClaimTransaction } from "./transaction";
import { CompanyTransaction, ICompanyTransaction } from "../company/transaction";
export const claimRoutes = (db: DataSource): Hono => {
const claim = new Hono();
const claimTransaction: IClaimTransaction = new ClaimTransaction(db);
const documentTransaction: IDocumentTransaction = new DocumentTransaction(db);
const companyTransaction: ICompanyTransaction = new CompanyTransaction(db);
const claimService: IClaimService = new ClaimService(claimTransaction, documentTransaction, companyTransaction, db);
const claimController: IClaimController = new ClaimController(claimService);
claim.get("/company", (ctx) => claimController.getClaimByCompanyId(ctx));
claim.post("/", (ctx) => claimController.createClaim(ctx));
claim.get("/:id", (ctx) => claimController.getClaimById(ctx));
claim.patch("/:id/status", (ctx) => claimController.updateClaimStatus(ctx));
claim.delete("/:id", (ctx) => claimController.deleteClaim(ctx));
claim.post("/line-item", (ctx) => claimController.linkClaimToLineItem(ctx));
claim.post("/purchase", (ctx) => claimController.linkClaimToPurchaseItems(ctx));
claim.get("/:id/line-item", (ctx) => claimController.getLinkedPurchaseLineItems(ctx));
claim.delete("/:claimId/line-item/:lineItemId", (ctx) => claimController.deletePurchaseLineItem(ctx));
claim.get("/:id/pdf", (ctx) => claimController.createClaimPDF(ctx));
return claim;
};