@voyant-travel/distribution 0.109.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +42 -0
- package/dist/booking-extension.d.ts +168 -0
- package/dist/booking-extension.d.ts.map +1 -0
- package/dist/booking-extension.js +102 -0
- package/dist/channel-push/admin-routes.d.ts +31 -0
- package/dist/channel-push/admin-routes.d.ts.map +1 -0
- package/dist/channel-push/admin-routes.js +165 -0
- package/dist/channel-push/availability-push.d.ts +76 -0
- package/dist/channel-push/availability-push.d.ts.map +1 -0
- package/dist/channel-push/availability-push.js +236 -0
- package/dist/channel-push/booking-push-helpers.d.ts +36 -0
- package/dist/channel-push/booking-push-helpers.d.ts.map +1 -0
- package/dist/channel-push/booking-push-helpers.js +169 -0
- package/dist/channel-push/booking-push.d.ts +108 -0
- package/dist/channel-push/booking-push.d.ts.map +1 -0
- package/dist/channel-push/booking-push.js +335 -0
- package/dist/channel-push/boundary-sql.d.ts +23 -0
- package/dist/channel-push/boundary-sql.d.ts.map +1 -0
- package/dist/channel-push/boundary-sql.js +75 -0
- package/dist/channel-push/content-push.d.ts +60 -0
- package/dist/channel-push/content-push.d.ts.map +1 -0
- package/dist/channel-push/content-push.js +252 -0
- package/dist/channel-push/index.d.ts +15 -0
- package/dist/channel-push/index.d.ts.map +1 -0
- package/dist/channel-push/index.js +18 -0
- package/dist/channel-push/plugin.d.ts +18 -0
- package/dist/channel-push/plugin.d.ts.map +1 -0
- package/dist/channel-push/plugin.js +21 -0
- package/dist/channel-push/reconciler.d.ts +85 -0
- package/dist/channel-push/reconciler.d.ts.map +1 -0
- package/dist/channel-push/reconciler.js +179 -0
- package/dist/channel-push/subscriber.d.ts +40 -0
- package/dist/channel-push/subscriber.d.ts.map +1 -0
- package/dist/channel-push/subscriber.js +199 -0
- package/dist/channel-push/types.d.ts +43 -0
- package/dist/channel-push/types.d.ts.map +1 -0
- package/dist/channel-push/types.js +32 -0
- package/dist/channel-push/workflows.d.ts +56 -0
- package/dist/channel-push/workflows.d.ts.map +1 -0
- package/dist/channel-push/workflows.js +100 -0
- package/dist/external-refs/index.d.ts +11 -0
- package/dist/external-refs/index.d.ts.map +1 -0
- package/dist/external-refs/index.js +12 -0
- package/dist/external-refs/routes.d.ts +253 -0
- package/dist/external-refs/routes.d.ts.map +1 -0
- package/dist/external-refs/routes.js +52 -0
- package/dist/external-refs/schema.d.ts +251 -0
- package/dist/external-refs/schema.d.ts.map +1 -0
- package/dist/external-refs/schema.js +32 -0
- package/dist/external-refs/service.d.ts +82 -0
- package/dist/external-refs/service.d.ts.map +1 -0
- package/dist/external-refs/service.js +112 -0
- package/dist/external-refs/validation.d.ts +91 -0
- package/dist/external-refs/validation.d.ts.map +1 -0
- package/dist/external-refs/validation.js +40 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -0
- package/dist/interface-types.d.ts +128 -0
- package/dist/interface-types.d.ts.map +1 -0
- package/dist/interface-types.js +1 -0
- package/dist/interface.d.ts +10 -0
- package/dist/interface.d.ts.map +1 -0
- package/dist/interface.js +286 -0
- package/dist/rate-limit.d.ts +69 -0
- package/dist/rate-limit.d.ts.map +1 -0
- package/dist/rate-limit.js +135 -0
- package/dist/routes/batch.d.ts +200 -0
- package/dist/routes/batch.d.ts.map +1 -0
- package/dist/routes/batch.js +52 -0
- package/dist/routes/env.d.ts +8 -0
- package/dist/routes/env.d.ts.map +1 -0
- package/dist/routes/env.js +1 -0
- package/dist/routes/inventory.d.ts +604 -0
- package/dist/routes/inventory.d.ts.map +1 -0
- package/dist/routes/inventory.js +138 -0
- package/dist/routes/settlements.d.ts +1649 -0
- package/dist/routes/settlements.d.ts.map +1 -0
- package/dist/routes/settlements.js +265 -0
- package/dist/routes.d.ts +3909 -0
- package/dist/routes.d.ts.map +1 -0
- package/dist/routes.js +323 -0
- package/dist/schema-automation.d.ts +680 -0
- package/dist/schema-automation.d.ts.map +1 -0
- package/dist/schema-automation.js +76 -0
- package/dist/schema-core.d.ts +1674 -0
- package/dist/schema-core.d.ts.map +1 -0
- package/dist/schema-core.js +227 -0
- package/dist/schema-finance.d.ts +1372 -0
- package/dist/schema-finance.d.ts.map +1 -0
- package/dist/schema-finance.js +153 -0
- package/dist/schema-inventory.d.ts +855 -0
- package/dist/schema-inventory.d.ts.map +1 -0
- package/dist/schema-inventory.js +102 -0
- package/dist/schema-push-intents.d.ts +387 -0
- package/dist/schema-push-intents.d.ts.map +1 -0
- package/dist/schema-push-intents.js +77 -0
- package/dist/schema-relations.d.ts +95 -0
- package/dist/schema-relations.d.ts.map +1 -0
- package/dist/schema-relations.js +196 -0
- package/dist/schema-shared.d.ts +24 -0
- package/dist/schema-shared.d.ts.map +1 -0
- package/dist/schema-shared.js +123 -0
- package/dist/schema.d.ts +9 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +8 -0
- package/dist/service/channels.d.ts +167 -0
- package/dist/service/channels.d.ts.map +1 -0
- package/dist/service/channels.js +305 -0
- package/dist/service/commercial.d.ts +385 -0
- package/dist/service/commercial.d.ts.map +1 -0
- package/dist/service/commercial.js +248 -0
- package/dist/service/helpers.d.ts +10 -0
- package/dist/service/helpers.d.ts.map +1 -0
- package/dist/service/helpers.js +7 -0
- package/dist/service/inventory.d.ts +193 -0
- package/dist/service/inventory.d.ts.map +1 -0
- package/dist/service/inventory.js +154 -0
- package/dist/service/settlement-policies.d.ts +325 -0
- package/dist/service/settlement-policies.d.ts.map +1 -0
- package/dist/service/settlement-policies.js +272 -0
- package/dist/service/settlements.d.ts +357 -0
- package/dist/service/settlements.d.ts.map +1 -0
- package/dist/service/settlements.js +319 -0
- package/dist/service/types.d.ts +60 -0
- package/dist/service/types.d.ts.map +1 -0
- package/dist/service/types.js +1 -0
- package/dist/service.d.ts +1418 -0
- package/dist/service.d.ts.map +1 -0
- package/dist/service.js +17 -0
- package/dist/suppliers/index.d.ts +15 -0
- package/dist/suppliers/index.d.ts.map +1 -0
- package/dist/suppliers/index.js +23 -0
- package/dist/suppliers/routes.d.ts +1202 -0
- package/dist/suppliers/routes.d.ts.map +1 -0
- package/dist/suppliers/routes.js +290 -0
- package/dist/suppliers/schema.d.ts +1272 -0
- package/dist/suppliers/schema.d.ts.map +1 -0
- package/dist/suppliers/schema.js +219 -0
- package/dist/suppliers/service-aggregates.d.ts +23 -0
- package/dist/suppliers/service-aggregates.d.ts.map +1 -0
- package/dist/suppliers/service-aggregates.js +51 -0
- package/dist/suppliers/service-core.d.ts +89 -0
- package/dist/suppliers/service-core.d.ts.map +1 -0
- package/dist/suppliers/service-core.js +164 -0
- package/dist/suppliers/service-identity.d.ts +162 -0
- package/dist/suppliers/service-identity.d.ts.map +1 -0
- package/dist/suppliers/service-identity.js +101 -0
- package/dist/suppliers/service-operations.d.ts +1500 -0
- package/dist/suppliers/service-operations.d.ts.map +1 -0
- package/dist/suppliers/service-operations.js +157 -0
- package/dist/suppliers/service-shared.d.ts +45 -0
- package/dist/suppliers/service-shared.d.ts.map +1 -0
- package/dist/suppliers/service-shared.js +294 -0
- package/dist/suppliers/service.d.ts +41 -0
- package/dist/suppliers/service.d.ts.map +1 -0
- package/dist/suppliers/service.js +40 -0
- package/dist/suppliers/validation.d.ts +2 -0
- package/dist/suppliers/validation.d.ts.map +1 -0
- package/dist/suppliers/validation.js +1 -0
- package/dist/validation.d.ts +1371 -0
- package/dist/validation.d.ts.map +1 -0
- package/dist/validation.js +445 -0
- package/dist/webhook-deliveries.d.ts +86 -0
- package/dist/webhook-deliveries.d.ts.map +1 -0
- package/dist/webhook-deliveries.js +296 -0
- package/package.json +71 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAyB3D,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oCA0YA,CAAA;AAE/B,MAAM,MAAM,kBAAkB,GAAG,OAAO,kBAAkB,CAAA"}
|
package/dist/routes.js
ADDED
|
@@ -0,0 +1,323 @@
|
|
|
1
|
+
import { parseJsonBody, parseQuery } from "@voyant-travel/hono";
|
|
2
|
+
import { insertContactPointForEntitySchema, insertNamedContactForEntitySchema, updateContactPointSchema as updateIdentityContactPointSchema, updateNamedContactSchema as updateIdentityNamedContactSchema, } from "@voyant-travel/identity/validation";
|
|
3
|
+
import { Hono } from "hono";
|
|
4
|
+
import { batchIdsSchema, batchUpdateChannelBookingLinkSchema, batchUpdateChannelCommissionRuleSchema, batchUpdateChannelContractSchema, batchUpdateChannelProductMappingSchema, batchUpdateChannelSchema, batchUpdateChannelWebhookEventSchema, handleBatchDelete, handleBatchUpdate, } from "./routes/batch.js";
|
|
5
|
+
import { inventoryRoutes } from "./routes/inventory.js";
|
|
6
|
+
import { settlementRoutes } from "./routes/settlements.js";
|
|
7
|
+
import { distributionService } from "./service.js";
|
|
8
|
+
import { channelBookingLinkListQuerySchema, channelCommissionRuleListQuerySchema, channelContractListQuerySchema, channelListQuerySchema, channelProductMappingListQuerySchema, channelWebhookEventListQuerySchema, insertChannelBookingLinkSchema, insertChannelCommissionRuleSchema, insertChannelContractSchema, insertChannelProductMappingSchema, insertChannelSchema, insertChannelWebhookEventSchema, updateChannelBookingLinkSchema, updateChannelCommissionRuleSchema, updateChannelContractSchema, updateChannelProductMappingSchema, updateChannelSchema, updateChannelWebhookEventSchema, } from "./validation.js";
|
|
9
|
+
export const distributionRoutes = new Hono()
|
|
10
|
+
.get("/channels", async (c) => {
|
|
11
|
+
const query = await parseQuery(c, channelListQuerySchema);
|
|
12
|
+
return c.json(await distributionService.listChannels(c.get("db"), query));
|
|
13
|
+
})
|
|
14
|
+
.post("/channels", async (c) => {
|
|
15
|
+
return c.json({
|
|
16
|
+
data: await distributionService.createChannel(c.get("db"), await parseJsonBody(c, insertChannelSchema)),
|
|
17
|
+
}, 201);
|
|
18
|
+
})
|
|
19
|
+
.post("/channels/batch-update", async (c) => {
|
|
20
|
+
const body = await parseJsonBody(c, batchUpdateChannelSchema);
|
|
21
|
+
return c.json(await handleBatchUpdate({
|
|
22
|
+
db: c.get("db"),
|
|
23
|
+
ids: body.ids,
|
|
24
|
+
patch: body.patch,
|
|
25
|
+
update: distributionService.updateChannel.bind(distributionService),
|
|
26
|
+
}));
|
|
27
|
+
})
|
|
28
|
+
.post("/channels/batch-delete", async (c) => {
|
|
29
|
+
const body = await parseJsonBody(c, batchIdsSchema);
|
|
30
|
+
return c.json(await handleBatchDelete({
|
|
31
|
+
db: c.get("db"),
|
|
32
|
+
ids: body.ids,
|
|
33
|
+
remove: distributionService.deleteChannel,
|
|
34
|
+
}));
|
|
35
|
+
})
|
|
36
|
+
.get("/channels/:id", async (c) => {
|
|
37
|
+
const row = await distributionService.getChannelById(c.get("db"), c.req.param("id"));
|
|
38
|
+
if (!row)
|
|
39
|
+
return c.json({ error: "Channel not found" }, 404);
|
|
40
|
+
return c.json({ data: row });
|
|
41
|
+
})
|
|
42
|
+
.patch("/channels/:id", async (c) => {
|
|
43
|
+
const row = await distributionService.updateChannel(c.get("db"), c.req.param("id"), await parseJsonBody(c, updateChannelSchema));
|
|
44
|
+
if (!row)
|
|
45
|
+
return c.json({ error: "Channel not found" }, 404);
|
|
46
|
+
return c.json({ data: row });
|
|
47
|
+
})
|
|
48
|
+
.delete("/channels/:id", async (c) => {
|
|
49
|
+
const row = await distributionService.deleteChannel(c.get("db"), c.req.param("id"));
|
|
50
|
+
if (!row)
|
|
51
|
+
return c.json({ error: "Channel not found" }, 404);
|
|
52
|
+
return c.json({ success: true });
|
|
53
|
+
})
|
|
54
|
+
.get("/channels/:id/contact-points", async (c) => {
|
|
55
|
+
const rows = await distributionService.listChannelContactPoints(c.get("db"), c.req.param("id"));
|
|
56
|
+
if (!rows)
|
|
57
|
+
return c.json({ error: "Channel not found" }, 404);
|
|
58
|
+
return c.json({ data: rows });
|
|
59
|
+
})
|
|
60
|
+
.post("/channels/:id/contact-points", async (c) => {
|
|
61
|
+
const row = await distributionService.createChannelContactPoint(c.get("db"), c.req.param("id"), await parseJsonBody(c, insertContactPointForEntitySchema));
|
|
62
|
+
if (!row)
|
|
63
|
+
return c.json({ error: "Channel not found" }, 404);
|
|
64
|
+
return c.json({ data: row }, 201);
|
|
65
|
+
})
|
|
66
|
+
.patch("/channel-contact-points/:contactPointId", async (c) => {
|
|
67
|
+
const row = await distributionService.updateChannelContactPoint(c.get("db"), c.req.param("contactPointId"), await parseJsonBody(c, updateIdentityContactPointSchema));
|
|
68
|
+
if (!row)
|
|
69
|
+
return c.json({ error: "Channel contact point not found" }, 404);
|
|
70
|
+
return c.json({ data: row });
|
|
71
|
+
})
|
|
72
|
+
.delete("/channel-contact-points/:contactPointId", async (c) => {
|
|
73
|
+
const row = await distributionService.deleteChannelContactPoint(c.get("db"), c.req.param("contactPointId"));
|
|
74
|
+
if (!row)
|
|
75
|
+
return c.json({ error: "Channel contact point not found" }, 404);
|
|
76
|
+
return c.json({ success: true });
|
|
77
|
+
})
|
|
78
|
+
.get("/channels/:id/contacts", async (c) => {
|
|
79
|
+
const rows = await distributionService.listChannelContacts(c.get("db"), c.req.param("id"));
|
|
80
|
+
if (!rows)
|
|
81
|
+
return c.json({ error: "Channel not found" }, 404);
|
|
82
|
+
return c.json({ data: rows });
|
|
83
|
+
})
|
|
84
|
+
.post("/channels/:id/contacts", async (c) => {
|
|
85
|
+
const row = await distributionService.createChannelContact(c.get("db"), c.req.param("id"), await parseJsonBody(c, insertNamedContactForEntitySchema));
|
|
86
|
+
if (!row)
|
|
87
|
+
return c.json({ error: "Channel not found" }, 404);
|
|
88
|
+
return c.json({ data: row }, 201);
|
|
89
|
+
})
|
|
90
|
+
.patch("/channel-contacts/:contactId", async (c) => {
|
|
91
|
+
const row = await distributionService.updateChannelContact(c.get("db"), c.req.param("contactId"), await parseJsonBody(c, updateIdentityNamedContactSchema));
|
|
92
|
+
if (!row)
|
|
93
|
+
return c.json({ error: "Channel contact not found" }, 404);
|
|
94
|
+
return c.json({ data: row });
|
|
95
|
+
})
|
|
96
|
+
.delete("/channel-contacts/:contactId", async (c) => {
|
|
97
|
+
const row = await distributionService.deleteChannelContact(c.get("db"), c.req.param("contactId"));
|
|
98
|
+
if (!row)
|
|
99
|
+
return c.json({ error: "Channel contact not found" }, 404);
|
|
100
|
+
return c.json({ success: true });
|
|
101
|
+
})
|
|
102
|
+
.get("/contracts", async (c) => {
|
|
103
|
+
const query = await parseQuery(c, channelContractListQuerySchema);
|
|
104
|
+
return c.json(await distributionService.listContracts(c.get("db"), query));
|
|
105
|
+
})
|
|
106
|
+
.post("/contracts", async (c) => {
|
|
107
|
+
return c.json({
|
|
108
|
+
data: await distributionService.createContract(c.get("db"), await parseJsonBody(c, insertChannelContractSchema)),
|
|
109
|
+
}, 201);
|
|
110
|
+
})
|
|
111
|
+
.post("/contracts/batch-update", async (c) => {
|
|
112
|
+
const body = await parseJsonBody(c, batchUpdateChannelContractSchema);
|
|
113
|
+
return c.json(await handleBatchUpdate({
|
|
114
|
+
db: c.get("db"),
|
|
115
|
+
ids: body.ids,
|
|
116
|
+
patch: body.patch,
|
|
117
|
+
update: distributionService.updateContract,
|
|
118
|
+
}));
|
|
119
|
+
})
|
|
120
|
+
.post("/contracts/batch-delete", async (c) => {
|
|
121
|
+
const body = await parseJsonBody(c, batchIdsSchema);
|
|
122
|
+
return c.json(await handleBatchDelete({
|
|
123
|
+
db: c.get("db"),
|
|
124
|
+
ids: body.ids,
|
|
125
|
+
remove: distributionService.deleteContract,
|
|
126
|
+
}));
|
|
127
|
+
})
|
|
128
|
+
.get("/contracts/:id", async (c) => {
|
|
129
|
+
const row = await distributionService.getContractById(c.get("db"), c.req.param("id"));
|
|
130
|
+
if (!row)
|
|
131
|
+
return c.json({ error: "Channel contract not found" }, 404);
|
|
132
|
+
return c.json({ data: row });
|
|
133
|
+
})
|
|
134
|
+
.patch("/contracts/:id", async (c) => {
|
|
135
|
+
const row = await distributionService.updateContract(c.get("db"), c.req.param("id"), await parseJsonBody(c, updateChannelContractSchema));
|
|
136
|
+
if (!row)
|
|
137
|
+
return c.json({ error: "Channel contract not found" }, 404);
|
|
138
|
+
return c.json({ data: row });
|
|
139
|
+
})
|
|
140
|
+
.delete("/contracts/:id", async (c) => {
|
|
141
|
+
const row = await distributionService.deleteContract(c.get("db"), c.req.param("id"));
|
|
142
|
+
if (!row)
|
|
143
|
+
return c.json({ error: "Channel contract not found" }, 404);
|
|
144
|
+
return c.json({ success: true });
|
|
145
|
+
})
|
|
146
|
+
.get("/commission-rules", async (c) => {
|
|
147
|
+
const query = await parseQuery(c, channelCommissionRuleListQuerySchema);
|
|
148
|
+
return c.json(await distributionService.listCommissionRules(c.get("db"), query));
|
|
149
|
+
})
|
|
150
|
+
.post("/commission-rules", async (c) => {
|
|
151
|
+
return c.json({
|
|
152
|
+
data: await distributionService.createCommissionRule(c.get("db"), await parseJsonBody(c, insertChannelCommissionRuleSchema)),
|
|
153
|
+
}, 201);
|
|
154
|
+
})
|
|
155
|
+
.post("/commission-rules/batch-update", async (c) => {
|
|
156
|
+
const body = await parseJsonBody(c, batchUpdateChannelCommissionRuleSchema);
|
|
157
|
+
return c.json(await handleBatchUpdate({
|
|
158
|
+
db: c.get("db"),
|
|
159
|
+
ids: body.ids,
|
|
160
|
+
patch: body.patch,
|
|
161
|
+
update: distributionService.updateCommissionRule,
|
|
162
|
+
}));
|
|
163
|
+
})
|
|
164
|
+
.post("/commission-rules/batch-delete", async (c) => {
|
|
165
|
+
const body = await parseJsonBody(c, batchIdsSchema);
|
|
166
|
+
return c.json(await handleBatchDelete({
|
|
167
|
+
db: c.get("db"),
|
|
168
|
+
ids: body.ids,
|
|
169
|
+
remove: distributionService.deleteCommissionRule,
|
|
170
|
+
}));
|
|
171
|
+
})
|
|
172
|
+
.get("/commission-rules/:id", async (c) => {
|
|
173
|
+
const row = await distributionService.getCommissionRuleById(c.get("db"), c.req.param("id"));
|
|
174
|
+
if (!row)
|
|
175
|
+
return c.json({ error: "Channel commission rule not found" }, 404);
|
|
176
|
+
return c.json({ data: row });
|
|
177
|
+
})
|
|
178
|
+
.patch("/commission-rules/:id", async (c) => {
|
|
179
|
+
const row = await distributionService.updateCommissionRule(c.get("db"), c.req.param("id"), await parseJsonBody(c, updateChannelCommissionRuleSchema));
|
|
180
|
+
if (!row)
|
|
181
|
+
return c.json({ error: "Channel commission rule not found" }, 404);
|
|
182
|
+
return c.json({ data: row });
|
|
183
|
+
})
|
|
184
|
+
.delete("/commission-rules/:id", async (c) => {
|
|
185
|
+
const row = await distributionService.deleteCommissionRule(c.get("db"), c.req.param("id"));
|
|
186
|
+
if (!row)
|
|
187
|
+
return c.json({ error: "Channel commission rule not found" }, 404);
|
|
188
|
+
return c.json({ success: true });
|
|
189
|
+
})
|
|
190
|
+
.get("/product-mappings", async (c) => {
|
|
191
|
+
const query = await parseQuery(c, channelProductMappingListQuerySchema);
|
|
192
|
+
return c.json(await distributionService.listProductMappings(c.get("db"), query));
|
|
193
|
+
})
|
|
194
|
+
.post("/product-mappings", async (c) => {
|
|
195
|
+
return c.json({
|
|
196
|
+
data: await distributionService.createProductMapping(c.get("db"), await parseJsonBody(c, insertChannelProductMappingSchema)),
|
|
197
|
+
}, 201);
|
|
198
|
+
})
|
|
199
|
+
.post("/product-mappings/batch-update", async (c) => {
|
|
200
|
+
const body = await parseJsonBody(c, batchUpdateChannelProductMappingSchema);
|
|
201
|
+
return c.json(await handleBatchUpdate({
|
|
202
|
+
db: c.get("db"),
|
|
203
|
+
ids: body.ids,
|
|
204
|
+
patch: body.patch,
|
|
205
|
+
update: distributionService.updateProductMapping,
|
|
206
|
+
}));
|
|
207
|
+
})
|
|
208
|
+
.post("/product-mappings/batch-delete", async (c) => {
|
|
209
|
+
const body = await parseJsonBody(c, batchIdsSchema);
|
|
210
|
+
return c.json(await handleBatchDelete({
|
|
211
|
+
db: c.get("db"),
|
|
212
|
+
ids: body.ids,
|
|
213
|
+
remove: distributionService.deleteProductMapping,
|
|
214
|
+
}));
|
|
215
|
+
})
|
|
216
|
+
.get("/product-mappings/:id", async (c) => {
|
|
217
|
+
const row = await distributionService.getProductMappingById(c.get("db"), c.req.param("id"));
|
|
218
|
+
if (!row)
|
|
219
|
+
return c.json({ error: "Channel product mapping not found" }, 404);
|
|
220
|
+
return c.json({ data: row });
|
|
221
|
+
})
|
|
222
|
+
.patch("/product-mappings/:id", async (c) => {
|
|
223
|
+
const row = await distributionService.updateProductMapping(c.get("db"), c.req.param("id"), await parseJsonBody(c, updateChannelProductMappingSchema));
|
|
224
|
+
if (!row)
|
|
225
|
+
return c.json({ error: "Channel product mapping not found" }, 404);
|
|
226
|
+
return c.json({ data: row });
|
|
227
|
+
})
|
|
228
|
+
.delete("/product-mappings/:id", async (c) => {
|
|
229
|
+
const row = await distributionService.deleteProductMapping(c.get("db"), c.req.param("id"));
|
|
230
|
+
if (!row)
|
|
231
|
+
return c.json({ error: "Channel product mapping not found" }, 404);
|
|
232
|
+
return c.json({ success: true });
|
|
233
|
+
})
|
|
234
|
+
.get("/booking-links", async (c) => {
|
|
235
|
+
const query = await parseQuery(c, channelBookingLinkListQuerySchema);
|
|
236
|
+
return c.json(await distributionService.listBookingLinks(c.get("db"), query));
|
|
237
|
+
})
|
|
238
|
+
.post("/booking-links", async (c) => {
|
|
239
|
+
return c.json({
|
|
240
|
+
data: await distributionService.createBookingLink(c.get("db"), await parseJsonBody(c, insertChannelBookingLinkSchema)),
|
|
241
|
+
}, 201);
|
|
242
|
+
})
|
|
243
|
+
.post("/booking-links/batch-update", async (c) => {
|
|
244
|
+
const body = await parseJsonBody(c, batchUpdateChannelBookingLinkSchema);
|
|
245
|
+
return c.json(await handleBatchUpdate({
|
|
246
|
+
db: c.get("db"),
|
|
247
|
+
ids: body.ids,
|
|
248
|
+
patch: body.patch,
|
|
249
|
+
update: distributionService.updateBookingLink,
|
|
250
|
+
}));
|
|
251
|
+
})
|
|
252
|
+
.post("/booking-links/batch-delete", async (c) => {
|
|
253
|
+
const body = await parseJsonBody(c, batchIdsSchema);
|
|
254
|
+
return c.json(await handleBatchDelete({
|
|
255
|
+
db: c.get("db"),
|
|
256
|
+
ids: body.ids,
|
|
257
|
+
remove: distributionService.deleteBookingLink,
|
|
258
|
+
}));
|
|
259
|
+
})
|
|
260
|
+
.get("/booking-links/:id", async (c) => {
|
|
261
|
+
const row = await distributionService.getBookingLinkById(c.get("db"), c.req.param("id"));
|
|
262
|
+
if (!row)
|
|
263
|
+
return c.json({ error: "Channel booking link not found" }, 404);
|
|
264
|
+
return c.json({ data: row });
|
|
265
|
+
})
|
|
266
|
+
.patch("/booking-links/:id", async (c) => {
|
|
267
|
+
const row = await distributionService.updateBookingLink(c.get("db"), c.req.param("id"), await parseJsonBody(c, updateChannelBookingLinkSchema));
|
|
268
|
+
if (!row)
|
|
269
|
+
return c.json({ error: "Channel booking link not found" }, 404);
|
|
270
|
+
return c.json({ data: row });
|
|
271
|
+
})
|
|
272
|
+
.delete("/booking-links/:id", async (c) => {
|
|
273
|
+
const row = await distributionService.deleteBookingLink(c.get("db"), c.req.param("id"));
|
|
274
|
+
if (!row)
|
|
275
|
+
return c.json({ error: "Channel booking link not found" }, 404);
|
|
276
|
+
return c.json({ success: true });
|
|
277
|
+
})
|
|
278
|
+
.get("/webhook-events", async (c) => {
|
|
279
|
+
const query = await parseQuery(c, channelWebhookEventListQuerySchema);
|
|
280
|
+
return c.json(await distributionService.listWebhookEvents(c.get("db"), query));
|
|
281
|
+
})
|
|
282
|
+
.post("/webhook-events", async (c) => {
|
|
283
|
+
return c.json({
|
|
284
|
+
data: await distributionService.createWebhookEvent(c.get("db"), await parseJsonBody(c, insertChannelWebhookEventSchema)),
|
|
285
|
+
}, 201);
|
|
286
|
+
})
|
|
287
|
+
.post("/webhook-events/batch-update", async (c) => {
|
|
288
|
+
const body = await parseJsonBody(c, batchUpdateChannelWebhookEventSchema);
|
|
289
|
+
return c.json(await handleBatchUpdate({
|
|
290
|
+
db: c.get("db"),
|
|
291
|
+
ids: body.ids,
|
|
292
|
+
patch: body.patch,
|
|
293
|
+
update: distributionService.updateWebhookEvent,
|
|
294
|
+
}));
|
|
295
|
+
})
|
|
296
|
+
.post("/webhook-events/batch-delete", async (c) => {
|
|
297
|
+
const body = await parseJsonBody(c, batchIdsSchema);
|
|
298
|
+
return c.json(await handleBatchDelete({
|
|
299
|
+
db: c.get("db"),
|
|
300
|
+
ids: body.ids,
|
|
301
|
+
remove: distributionService.deleteWebhookEvent,
|
|
302
|
+
}));
|
|
303
|
+
})
|
|
304
|
+
.get("/webhook-events/:id", async (c) => {
|
|
305
|
+
const row = await distributionService.getWebhookEventById(c.get("db"), c.req.param("id"));
|
|
306
|
+
if (!row)
|
|
307
|
+
return c.json({ error: "Channel webhook event not found" }, 404);
|
|
308
|
+
return c.json({ data: row });
|
|
309
|
+
})
|
|
310
|
+
.patch("/webhook-events/:id", async (c) => {
|
|
311
|
+
const row = await distributionService.updateWebhookEvent(c.get("db"), c.req.param("id"), await parseJsonBody(c, updateChannelWebhookEventSchema));
|
|
312
|
+
if (!row)
|
|
313
|
+
return c.json({ error: "Channel webhook event not found" }, 404);
|
|
314
|
+
return c.json({ data: row });
|
|
315
|
+
})
|
|
316
|
+
.delete("/webhook-events/:id", async (c) => {
|
|
317
|
+
const row = await distributionService.deleteWebhookEvent(c.get("db"), c.req.param("id"));
|
|
318
|
+
if (!row)
|
|
319
|
+
return c.json({ error: "Channel webhook event not found" }, 404);
|
|
320
|
+
return c.json({ success: true });
|
|
321
|
+
})
|
|
322
|
+
.route("/", inventoryRoutes)
|
|
323
|
+
.route("/", settlementRoutes);
|