@dakkitor/api-contracts 1.5.0 → 1.7.0
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/dist/abilities/abilities.contract.d.ts +6 -2
- package/dist/abilities/abilities.contract.d.ts.map +1 -1
- package/dist/abilities/abilities.contract.js +45 -1
- package/dist/abilities/abilities.contract.spec.js +98 -0
- package/dist/abilities/first-agent.abilities.json +8 -14
- package/dist/abilities/outreach.abilities.json +25 -0
- package/dist/abilities/second-agent.abilities.json +4 -13
- package/dist/actives/actives.contract.d.ts +3618 -3479
- package/dist/actives/actives.contract.d.ts.map +1 -1
- package/dist/actives/actives.contract.js +2 -0
- package/dist/actives/actives.contract.spec.d.ts +2 -0
- package/dist/actives/actives.contract.spec.d.ts.map +1 -0
- package/dist/actives/actives.contract.spec.js +35 -0
- package/dist/agent-client-links/agent-client-links.contract.d.ts +1087 -1087
- package/dist/auth/auth.contract.d.ts +108 -108
- package/dist/bookings/bookings.contract.d.ts +6644 -6452
- package/dist/bookings/bookings.contract.d.ts.map +1 -1
- package/dist/call-history/call-history.contract.d.ts +718 -718
- package/dist/calls-feed/calls-feed.contract.d.ts +86 -86
- package/dist/client-contacts/client-contacts.contract.d.ts +469 -469
- package/dist/clients/clients.contract.d.ts +203 -203
- package/dist/collaboration-checkings/collaboration-checkings.contract.d.ts +2713 -2713
- package/dist/collaborations/collaborations.contract.d.ts +2270 -2270
- package/dist/common/common-schemas.d.ts +12 -12
- package/dist/companies/companies.contract.d.ts +74 -74
- package/dist/crews/crews.contract.d.ts +253 -253
- package/dist/cron-executions/cron-executions.contract.d.ts +182 -182
- package/dist/curated-worker-leads/candidate-coordination.contract.d.ts +2723 -2723
- package/dist/curated-worker-leads/candidate-edit-session.contract.d.ts +378 -378
- package/dist/curated-worker-leads/consent-queue.contract.d.ts +1117 -1087
- package/dist/curated-worker-leads/consent-queue.contract.d.ts.map +1 -1
- package/dist/curated-worker-leads/curated-worker-lead-config.contract.d.ts +16 -16
- package/dist/curated-worker-leads/curated-worker-leads.contract.d.ts +2 -2
- package/dist/curated-worker-leads/jobs-tab.contract.d.ts +5818 -5372
- package/dist/curated-worker-leads/jobs-tab.contract.d.ts.map +1 -1
- package/dist/curated-worker-leads/jobs-tab.contract.js +34 -1
- package/dist/curated-worker-leads/lead-agent-area.contract.d.ts +4 -4
- package/dist/curated-worker-leads/outreach-pool-summary.contract.spec.d.ts +2 -0
- package/dist/curated-worker-leads/outreach-pool-summary.contract.spec.d.ts.map +1 -0
- package/dist/curated-worker-leads/outreach-pool-summary.contract.spec.js +39 -0
- package/dist/curated-worker-leads/owned-jobs-tab.contract.d.ts +148 -148
- package/dist/curated-workers/curated-workers.contract.d.ts +789 -789
- package/dist/dashboards/agent-daily-metrics.contract.d.ts +2 -2
- package/dist/dashboards/dashboard-widgets.contract.d.ts +180 -180
- package/dist/dashboards/dashboard.contract.d.ts +12 -12
- package/dist/document-intake/document-intake.contract.d.ts +601 -601
- package/dist/export-jobs/export-jobs.contract.d.ts +694 -694
- package/dist/exports-events/exports-events.schemas.d.ts +4 -4
- package/dist/files/files.contract.d.ts +74 -74
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -0
- package/dist/interactions/interactions.contract.d.ts +6 -6
- package/dist/job-clusters/job-clusters.contract.d.ts +112 -112
- package/dist/jobs/job-moderation-fields.spec.d.ts +2 -0
- package/dist/jobs/job-moderation-fields.spec.d.ts.map +1 -0
- package/dist/jobs/job-moderation-fields.spec.js +72 -0
- package/dist/jobs/jobs.contract.d.ts +4773 -4525
- package/dist/jobs/jobs.contract.d.ts.map +1 -1
- package/dist/jobs/jobs.contract.js +48 -0
- package/dist/kpi-impersonation/kpi-impersonation.contract.d.ts +141 -141
- package/dist/lead-assignments/lead-assignments.contract.d.ts +911 -911
- package/dist/lead-distribution/agent-lead-distribution.contract.d.ts +209 -209
- package/dist/lead-distribution/lead-distribution-config.contract.d.ts +77 -77
- package/dist/leads/leads.contract.d.ts +283 -283
- package/dist/locations/locations.contract.d.ts +49 -49
- package/dist/notifications/notifications.contract.d.ts +67 -67
- package/dist/offices/offices.contract.d.ts +34 -34
- package/dist/outreach/__tests__/outreach-contract-additions.spec.js +11 -0
- package/dist/outreach/__tests__/outreach-requests.contract.spec.js +50 -0
- package/dist/outreach/__tests__/outreach-routes.test.js +14 -3
- package/dist/outreach/lab-outreach.contract.d.ts +1110 -0
- package/dist/outreach/lab-outreach.contract.d.ts.map +1 -0
- package/dist/outreach/lab-outreach.contract.js +174 -0
- package/dist/outreach/lab-outreach.contract.spec.d.ts +2 -0
- package/dist/outreach/lab-outreach.contract.spec.d.ts.map +1 -0
- package/dist/outreach/lab-outreach.contract.spec.js +90 -0
- package/dist/outreach/outreach-requests.contract.d.ts +946 -217
- package/dist/outreach/outreach-requests.contract.d.ts.map +1 -1
- package/dist/outreach/outreach-requests.contract.js +23 -3
- package/dist/outreach/outreach-requests.schemas.d.ts +65 -10
- package/dist/outreach/outreach-requests.schemas.d.ts.map +1 -1
- package/dist/outreach/outreach-requests.schemas.js +6 -0
- package/dist/outreach/outreach.contract.d.ts +300 -38
- package/dist/outreach/outreach.contract.d.ts.map +1 -1
- package/dist/outreach/outreach.contract.js +18 -0
- package/dist/outreach/outreach.contract.spec.d.ts +2 -0
- package/dist/outreach/outreach.contract.spec.d.ts.map +1 -0
- package/dist/outreach/outreach.contract.spec.js +57 -0
- package/dist/outreach/outreach.schemas.d.ts +2 -2
- package/dist/own-research/own-research.contract.d.ts +775 -775
- package/dist/postcodes/postcodes.contract.d.ts +24 -24
- package/dist/proofs/proof-type.enum.d.ts +4 -4
- package/dist/proofs/proofs.contract.d.ts +363 -363
- package/dist/proofs/proofs.dtos.d.ts +124 -124
- package/dist/qualifications/qualifications.contract.d.ts +38 -38
- package/dist/relay-pods/relay-lab-fleet.contract.d.ts +829 -0
- package/dist/relay-pods/relay-lab-fleet.contract.d.ts.map +1 -0
- package/dist/relay-pods/relay-lab-fleet.contract.js +79 -0
- package/dist/relay-pods/relay-lab-fleet.contract.spec.d.ts +2 -0
- package/dist/relay-pods/relay-lab-fleet.contract.spec.d.ts.map +1 -0
- package/dist/relay-pods/relay-lab-fleet.contract.spec.js +146 -0
- package/dist/relay-pods/relay-lab-fleet.schemas.d.ts +443 -0
- package/dist/relay-pods/relay-lab-fleet.schemas.d.ts.map +1 -0
- package/dist/relay-pods/relay-lab-fleet.schemas.js +138 -0
- package/dist/relay-pods/relay-pod-sessions.contract.d.ts +680 -0
- package/dist/relay-pods/relay-pod-sessions.contract.d.ts.map +1 -0
- package/dist/relay-pods/relay-pod-sessions.contract.js +67 -0
- package/dist/relay-pods/relay-pod-sessions.contract.spec.d.ts +2 -0
- package/dist/relay-pods/relay-pod-sessions.contract.spec.d.ts.map +1 -0
- package/dist/relay-pods/relay-pod-sessions.contract.spec.js +129 -0
- package/dist/relay-pods/relay-pods.contract.d.ts +1569 -0
- package/dist/relay-pods/relay-pods.contract.d.ts.map +1 -0
- package/dist/relay-pods/relay-pods.contract.js +188 -0
- package/dist/relay-pods/relay-pods.contract.spec.d.ts +2 -0
- package/dist/relay-pods/relay-pods.contract.spec.d.ts.map +1 -0
- package/dist/relay-pods/relay-pods.contract.spec.js +141 -0
- package/dist/relay-pods/relay-pods.schemas.d.ts +415 -0
- package/dist/relay-pods/relay-pods.schemas.d.ts.map +1 -0
- package/dist/relay-pods/relay-pods.schemas.js +112 -0
- package/dist/shared/live-booking.schema.d.ts +4 -4
- package/dist/shared/summary-schemas.d.ts +6 -6
- package/dist/sheets-sync/sheets-sync.contract.d.ts +939 -939
- package/dist/telegram/telegram.contract.d.ts +22 -22
- package/dist/trades/trades.contract.d.ts +90 -90
- package/dist/user-access-grants/user-access-grants.contract.d.ts +165 -165
- package/dist/users/__tests__/assignable-roles.spec.d.ts +2 -0
- package/dist/users/__tests__/assignable-roles.spec.d.ts.map +1 -0
- package/dist/users/__tests__/assignable-roles.spec.js +41 -0
- package/dist/users/users.contract.d.ts +399 -393
- package/dist/users/users.contract.d.ts.map +1 -1
- package/dist/users/users.contract.js +11 -0
- package/dist/worker-identity-cases/worker-identity-cases.contract.d.ts +585 -527
- package/dist/worker-identity-cases/worker-identity-cases.contract.d.ts.map +1 -1
- package/dist/worker-merge-proposals/worker-merge-proposals.contract.d.ts +278 -236
- package/dist/worker-merge-proposals/worker-merge-proposals.contract.d.ts.map +1 -1
- package/dist/worker-merge-proposals/worker-merge-proposals.contract.js +1 -0
- package/dist/worker-source-identity-conflicts/worker-source-identity-conflicts.contract.d.ts +153 -153
- package/dist/worker-source-identity-conflicts/worker-source-identity-conflicts.schemas.d.ts +59 -59
- package/dist/workers/workers.contract.d.ts +2919 -2919
- package/package.json +1 -1
- package/dist/bookings/bookings.contract.spec.d.ts +0 -2
- package/dist/bookings/bookings.contract.spec.d.ts.map +0 -1
- package/dist/bookings/bookings.contract.spec.js +0 -11
|
@@ -8,28 +8,28 @@ export declare const OfficeSchema: z.ZodObject<{
|
|
|
8
8
|
lastName: z.ZodString;
|
|
9
9
|
}, "strip", z.ZodTypeAny, {
|
|
10
10
|
id: string;
|
|
11
|
-
lastName: string;
|
|
12
11
|
firstName: string;
|
|
12
|
+
lastName: string;
|
|
13
13
|
}, {
|
|
14
14
|
id: string;
|
|
15
|
-
lastName: string;
|
|
16
15
|
firstName: string;
|
|
16
|
+
lastName: string;
|
|
17
17
|
}>, "many">>;
|
|
18
18
|
}, "strip", z.ZodTypeAny, {
|
|
19
19
|
id: string;
|
|
20
20
|
name: string;
|
|
21
21
|
managers?: {
|
|
22
22
|
id: string;
|
|
23
|
-
lastName: string;
|
|
24
23
|
firstName: string;
|
|
24
|
+
lastName: string;
|
|
25
25
|
}[] | undefined;
|
|
26
26
|
}, {
|
|
27
27
|
id: string;
|
|
28
28
|
name: string;
|
|
29
29
|
managers?: {
|
|
30
30
|
id: string;
|
|
31
|
-
lastName: string;
|
|
32
31
|
firstName: string;
|
|
32
|
+
lastName: string;
|
|
33
33
|
}[] | undefined;
|
|
34
34
|
}>;
|
|
35
35
|
export declare const CreateOfficeSchema: z.ZodObject<{
|
|
@@ -61,28 +61,28 @@ export declare const OfficeArraySchema: z.ZodArray<z.ZodObject<{
|
|
|
61
61
|
lastName: z.ZodString;
|
|
62
62
|
}, "strip", z.ZodTypeAny, {
|
|
63
63
|
id: string;
|
|
64
|
-
lastName: string;
|
|
65
64
|
firstName: string;
|
|
65
|
+
lastName: string;
|
|
66
66
|
}, {
|
|
67
67
|
id: string;
|
|
68
|
-
lastName: string;
|
|
69
68
|
firstName: string;
|
|
69
|
+
lastName: string;
|
|
70
70
|
}>, "many">>;
|
|
71
71
|
}, "strip", z.ZodTypeAny, {
|
|
72
72
|
id: string;
|
|
73
73
|
name: string;
|
|
74
74
|
managers?: {
|
|
75
75
|
id: string;
|
|
76
|
-
lastName: string;
|
|
77
76
|
firstName: string;
|
|
77
|
+
lastName: string;
|
|
78
78
|
}[] | undefined;
|
|
79
79
|
}, {
|
|
80
80
|
id: string;
|
|
81
81
|
name: string;
|
|
82
82
|
managers?: {
|
|
83
83
|
id: string;
|
|
84
|
-
lastName: string;
|
|
85
84
|
firstName: string;
|
|
85
|
+
lastName: string;
|
|
86
86
|
}[] | undefined;
|
|
87
87
|
}>, "many">;
|
|
88
88
|
export type Office = z.infer<typeof OfficeSchema>;
|
|
@@ -108,7 +108,7 @@ export declare const officesContract: {
|
|
|
108
108
|
}>;
|
|
109
109
|
path: "/v2/offices";
|
|
110
110
|
responses: {
|
|
111
|
-
|
|
111
|
+
400: z.ZodObject<{
|
|
112
112
|
statusCode: z.ZodNumber;
|
|
113
113
|
message: z.ZodString;
|
|
114
114
|
code: z.ZodString;
|
|
@@ -133,7 +133,7 @@ export declare const officesContract: {
|
|
|
133
133
|
details?: unknown;
|
|
134
134
|
correlationId?: string | undefined;
|
|
135
135
|
}>;
|
|
136
|
-
|
|
136
|
+
401: z.ZodObject<{
|
|
137
137
|
statusCode: z.ZodNumber;
|
|
138
138
|
message: z.ZodString;
|
|
139
139
|
code: z.ZodString;
|
|
@@ -217,28 +217,28 @@ export declare const officesContract: {
|
|
|
217
217
|
lastName: z.ZodString;
|
|
218
218
|
}, "strip", z.ZodTypeAny, {
|
|
219
219
|
id: string;
|
|
220
|
-
lastName: string;
|
|
221
220
|
firstName: string;
|
|
221
|
+
lastName: string;
|
|
222
222
|
}, {
|
|
223
223
|
id: string;
|
|
224
|
-
lastName: string;
|
|
225
224
|
firstName: string;
|
|
225
|
+
lastName: string;
|
|
226
226
|
}>, "many">>;
|
|
227
227
|
}, "strip", z.ZodTypeAny, {
|
|
228
228
|
id: string;
|
|
229
229
|
name: string;
|
|
230
230
|
managers?: {
|
|
231
231
|
id: string;
|
|
232
|
-
lastName: string;
|
|
233
232
|
firstName: string;
|
|
233
|
+
lastName: string;
|
|
234
234
|
}[] | undefined;
|
|
235
235
|
}, {
|
|
236
236
|
id: string;
|
|
237
237
|
name: string;
|
|
238
238
|
managers?: {
|
|
239
239
|
id: string;
|
|
240
|
-
lastName: string;
|
|
241
240
|
firstName: string;
|
|
241
|
+
lastName: string;
|
|
242
242
|
}[] | undefined;
|
|
243
243
|
}>;
|
|
244
244
|
409: z.ZodObject<{
|
|
@@ -276,7 +276,7 @@ export declare const officesContract: {
|
|
|
276
276
|
method: "GET";
|
|
277
277
|
path: "/v2/offices";
|
|
278
278
|
responses: {
|
|
279
|
-
|
|
279
|
+
400: z.ZodObject<{
|
|
280
280
|
statusCode: z.ZodNumber;
|
|
281
281
|
message: z.ZodString;
|
|
282
282
|
code: z.ZodString;
|
|
@@ -301,7 +301,7 @@ export declare const officesContract: {
|
|
|
301
301
|
details?: unknown;
|
|
302
302
|
correlationId?: string | undefined;
|
|
303
303
|
}>;
|
|
304
|
-
|
|
304
|
+
401: z.ZodObject<{
|
|
305
305
|
statusCode: z.ZodNumber;
|
|
306
306
|
message: z.ZodString;
|
|
307
307
|
code: z.ZodString;
|
|
@@ -385,28 +385,28 @@ export declare const officesContract: {
|
|
|
385
385
|
lastName: z.ZodString;
|
|
386
386
|
}, "strip", z.ZodTypeAny, {
|
|
387
387
|
id: string;
|
|
388
|
-
lastName: string;
|
|
389
388
|
firstName: string;
|
|
389
|
+
lastName: string;
|
|
390
390
|
}, {
|
|
391
391
|
id: string;
|
|
392
|
-
lastName: string;
|
|
393
392
|
firstName: string;
|
|
393
|
+
lastName: string;
|
|
394
394
|
}>, "many">>;
|
|
395
395
|
}, "strip", z.ZodTypeAny, {
|
|
396
396
|
id: string;
|
|
397
397
|
name: string;
|
|
398
398
|
managers?: {
|
|
399
399
|
id: string;
|
|
400
|
-
lastName: string;
|
|
401
400
|
firstName: string;
|
|
401
|
+
lastName: string;
|
|
402
402
|
}[] | undefined;
|
|
403
403
|
}, {
|
|
404
404
|
id: string;
|
|
405
405
|
name: string;
|
|
406
406
|
managers?: {
|
|
407
407
|
id: string;
|
|
408
|
-
lastName: string;
|
|
409
408
|
firstName: string;
|
|
409
|
+
lastName: string;
|
|
410
410
|
}[] | undefined;
|
|
411
411
|
}>, "many">;
|
|
412
412
|
};
|
|
@@ -426,7 +426,7 @@ export declare const officesContract: {
|
|
|
426
426
|
method: "GET";
|
|
427
427
|
path: "/v2/offices/:id";
|
|
428
428
|
responses: {
|
|
429
|
-
|
|
429
|
+
400: z.ZodObject<{
|
|
430
430
|
statusCode: z.ZodNumber;
|
|
431
431
|
message: z.ZodString;
|
|
432
432
|
code: z.ZodString;
|
|
@@ -451,7 +451,7 @@ export declare const officesContract: {
|
|
|
451
451
|
details?: unknown;
|
|
452
452
|
correlationId?: string | undefined;
|
|
453
453
|
}>;
|
|
454
|
-
|
|
454
|
+
401: z.ZodObject<{
|
|
455
455
|
statusCode: z.ZodNumber;
|
|
456
456
|
message: z.ZodString;
|
|
457
457
|
code: z.ZodString;
|
|
@@ -535,28 +535,28 @@ export declare const officesContract: {
|
|
|
535
535
|
lastName: z.ZodString;
|
|
536
536
|
}, "strip", z.ZodTypeAny, {
|
|
537
537
|
id: string;
|
|
538
|
-
lastName: string;
|
|
539
538
|
firstName: string;
|
|
539
|
+
lastName: string;
|
|
540
540
|
}, {
|
|
541
541
|
id: string;
|
|
542
|
-
lastName: string;
|
|
543
542
|
firstName: string;
|
|
543
|
+
lastName: string;
|
|
544
544
|
}>, "many">>;
|
|
545
545
|
}, "strip", z.ZodTypeAny, {
|
|
546
546
|
id: string;
|
|
547
547
|
name: string;
|
|
548
548
|
managers?: {
|
|
549
549
|
id: string;
|
|
550
|
-
lastName: string;
|
|
551
550
|
firstName: string;
|
|
551
|
+
lastName: string;
|
|
552
552
|
}[] | undefined;
|
|
553
553
|
}, {
|
|
554
554
|
id: string;
|
|
555
555
|
name: string;
|
|
556
556
|
managers?: {
|
|
557
557
|
id: string;
|
|
558
|
-
lastName: string;
|
|
559
558
|
firstName: string;
|
|
559
|
+
lastName: string;
|
|
560
560
|
}[] | undefined;
|
|
561
561
|
}>;
|
|
562
562
|
404: z.ZodObject<{
|
|
@@ -611,7 +611,7 @@ export declare const officesContract: {
|
|
|
611
611
|
}>;
|
|
612
612
|
path: "/v2/offices/:id";
|
|
613
613
|
responses: {
|
|
614
|
-
|
|
614
|
+
400: z.ZodObject<{
|
|
615
615
|
statusCode: z.ZodNumber;
|
|
616
616
|
message: z.ZodString;
|
|
617
617
|
code: z.ZodString;
|
|
@@ -636,7 +636,7 @@ export declare const officesContract: {
|
|
|
636
636
|
details?: unknown;
|
|
637
637
|
correlationId?: string | undefined;
|
|
638
638
|
}>;
|
|
639
|
-
|
|
639
|
+
401: z.ZodObject<{
|
|
640
640
|
statusCode: z.ZodNumber;
|
|
641
641
|
message: z.ZodString;
|
|
642
642
|
code: z.ZodString;
|
|
@@ -720,28 +720,28 @@ export declare const officesContract: {
|
|
|
720
720
|
lastName: z.ZodString;
|
|
721
721
|
}, "strip", z.ZodTypeAny, {
|
|
722
722
|
id: string;
|
|
723
|
-
lastName: string;
|
|
724
723
|
firstName: string;
|
|
724
|
+
lastName: string;
|
|
725
725
|
}, {
|
|
726
726
|
id: string;
|
|
727
|
-
lastName: string;
|
|
728
727
|
firstName: string;
|
|
728
|
+
lastName: string;
|
|
729
729
|
}>, "many">>;
|
|
730
730
|
}, "strip", z.ZodTypeAny, {
|
|
731
731
|
id: string;
|
|
732
732
|
name: string;
|
|
733
733
|
managers?: {
|
|
734
734
|
id: string;
|
|
735
|
-
lastName: string;
|
|
736
735
|
firstName: string;
|
|
736
|
+
lastName: string;
|
|
737
737
|
}[] | undefined;
|
|
738
738
|
}, {
|
|
739
739
|
id: string;
|
|
740
740
|
name: string;
|
|
741
741
|
managers?: {
|
|
742
742
|
id: string;
|
|
743
|
-
lastName: string;
|
|
744
743
|
firstName: string;
|
|
744
|
+
lastName: string;
|
|
745
745
|
}[] | undefined;
|
|
746
746
|
}>;
|
|
747
747
|
404: z.ZodObject<{
|
|
@@ -787,7 +787,7 @@ export declare const officesContract: {
|
|
|
787
787
|
body: typeof import("@ts-rest/core").ContractNoBody;
|
|
788
788
|
path: "/v2/offices/:id";
|
|
789
789
|
responses: {
|
|
790
|
-
|
|
790
|
+
400: z.ZodObject<{
|
|
791
791
|
statusCode: z.ZodNumber;
|
|
792
792
|
message: z.ZodString;
|
|
793
793
|
code: z.ZodString;
|
|
@@ -812,7 +812,7 @@ export declare const officesContract: {
|
|
|
812
812
|
details?: unknown;
|
|
813
813
|
correlationId?: string | undefined;
|
|
814
814
|
}>;
|
|
815
|
-
|
|
815
|
+
401: z.ZodObject<{
|
|
816
816
|
statusCode: z.ZodNumber;
|
|
817
817
|
message: z.ZodString;
|
|
818
818
|
code: z.ZodString;
|
|
@@ -35,12 +35,23 @@ const jobs_tab_contract_1 = require("../../curated-worker-leads/jobs-tab.contrac
|
|
|
35
35
|
outreachRequest: {
|
|
36
36
|
id: '22222222-2222-4222-8222-222222222222',
|
|
37
37
|
status: 'RUNNING',
|
|
38
|
+
requestedByUserId: '33333333-3333-4333-8333-333333333333',
|
|
38
39
|
requestedByName: 'Priya Shah',
|
|
39
40
|
contactedCount: 142,
|
|
41
|
+
assignedPod: {
|
|
42
|
+
id: '44444444-4444-4444-8444-444444444444',
|
|
43
|
+
slug: 'north-pod',
|
|
44
|
+
displayName: 'North Pod',
|
|
45
|
+
ownerUserId: '55555555-5555-4555-8555-555555555555',
|
|
46
|
+
ownerName: 'Relay Owner',
|
|
47
|
+
publicBaseUrl: 'https://north.example.test',
|
|
48
|
+
status: 'ACTIVE',
|
|
49
|
+
},
|
|
40
50
|
},
|
|
41
51
|
});
|
|
42
52
|
(0, bun_test_1.expect)(parsed.outreachRequest?.contactedCount).toBe(142);
|
|
43
53
|
(0, bun_test_1.expect)(parsed.outreachRequest?.id).toBe('22222222-2222-4222-8222-222222222222');
|
|
54
|
+
(0, bun_test_1.expect)(parsed.outreachRequest?.requestedByUserId).toBe('33333333-3333-4333-8333-333333333333');
|
|
44
55
|
});
|
|
45
56
|
(0, bun_test_1.it)('rejects an open request without an id', () => {
|
|
46
57
|
// The id is REQUIRED inside the object (the object itself stays nullable
|
|
@@ -15,6 +15,7 @@ const outreach_requests_contract_1 = require("../outreach-requests.contract");
|
|
|
15
15
|
const parsed = outreach_requests_contract_1.OutreachRequestSchema.parse({
|
|
16
16
|
id: '11111111-1111-4111-8111-111111111111',
|
|
17
17
|
jobId: '22222222-2222-4222-8222-222222222222',
|
|
18
|
+
requestedByUserId: '33333333-3333-4333-8333-333333333333',
|
|
18
19
|
status: 'PENDING',
|
|
19
20
|
eligibleAtRequest: 214,
|
|
20
21
|
requestedByName: 'Priya Shah',
|
|
@@ -22,13 +23,19 @@ const outreach_requests_contract_1 = require("../outreach-requests.contract");
|
|
|
22
23
|
createdAt: '2026-07-29T09:00:00.000Z',
|
|
23
24
|
startedAt: null,
|
|
24
25
|
completedAt: null,
|
|
26
|
+
assignedPod: null,
|
|
27
|
+
terminalReason: null,
|
|
28
|
+
terminalCampaignId: null,
|
|
29
|
+
terminalAt: null,
|
|
25
30
|
});
|
|
26
31
|
(0, bun_test_1.expect)(parsed.status).toBe('PENDING');
|
|
32
|
+
(0, bun_test_1.expect)(parsed.requestedByUserId).toBe('33333333-3333-4333-8333-333333333333');
|
|
27
33
|
});
|
|
28
34
|
(0, bun_test_1.it)('carries job facts on a queue item so the rack can label a campaign', () => {
|
|
29
35
|
const item = outreach_requests_contract_1.OutreachRequestQueueItemSchema.parse({
|
|
30
36
|
id: '11111111-1111-4111-8111-111111111111',
|
|
31
37
|
jobId: '22222222-2222-4222-8222-222222222222',
|
|
38
|
+
requestedByUserId: '33333333-3333-4333-8333-333333333333',
|
|
32
39
|
status: 'RUNNING',
|
|
33
40
|
eligibleAtRequest: 12,
|
|
34
41
|
requestedByName: null,
|
|
@@ -36,6 +43,18 @@ const outreach_requests_contract_1 = require("../outreach-requests.contract");
|
|
|
36
43
|
createdAt: '2026-07-29T09:00:00.000Z',
|
|
37
44
|
startedAt: '2026-07-29T09:05:00.000Z',
|
|
38
45
|
completedAt: null,
|
|
46
|
+
assignedPod: {
|
|
47
|
+
id: '33333333-3333-4333-8333-333333333333',
|
|
48
|
+
slug: 'pod-01',
|
|
49
|
+
displayName: 'Pod 01',
|
|
50
|
+
ownerUserId: '44444444-4444-4444-8444-444444444444',
|
|
51
|
+
ownerName: 'Relay Owner',
|
|
52
|
+
publicBaseUrl: 'https://pod.test',
|
|
53
|
+
status: 'ACTIVE',
|
|
54
|
+
},
|
|
55
|
+
terminalReason: null,
|
|
56
|
+
terminalCampaignId: null,
|
|
57
|
+
terminalAt: null,
|
|
39
58
|
job: {
|
|
40
59
|
title: 'Need 1 x bricklayer',
|
|
41
60
|
trade: 'Bricklayer',
|
|
@@ -61,4 +80,35 @@ const outreach_requests_contract_1 = require("../outreach-requests.contract");
|
|
|
61
80
|
(0, bun_test_1.expect)(Object.keys(outreach_requests_contract_1.outreachRequestsContract.create.responses)).toContain('200');
|
|
62
81
|
(0, bun_test_1.expect)(Object.keys(outreach_requests_contract_1.outreachRequestsContract.create.responses)).not.toContain('409');
|
|
63
82
|
});
|
|
83
|
+
(0, bun_test_1.it)('accepts only the Lab terminal completion marker or null', () => {
|
|
84
|
+
const base = {
|
|
85
|
+
id: '11111111-1111-4111-8111-111111111111',
|
|
86
|
+
jobId: '22222222-2222-4222-8222-222222222222',
|
|
87
|
+
requestedByUserId: '33333333-3333-4333-8333-333333333333',
|
|
88
|
+
status: 'COMPLETED',
|
|
89
|
+
eligibleAtRequest: 0,
|
|
90
|
+
requestedByName: null,
|
|
91
|
+
contactedCount: 0,
|
|
92
|
+
createdAt: '2026-07-29T09:00:00.000Z',
|
|
93
|
+
startedAt: null,
|
|
94
|
+
completedAt: '2026-07-29T09:05:00.000Z',
|
|
95
|
+
assignedPod: null,
|
|
96
|
+
terminalReason: null,
|
|
97
|
+
terminalCampaignId: null,
|
|
98
|
+
terminalAt: null,
|
|
99
|
+
};
|
|
100
|
+
(0, bun_test_1.expect)(outreach_requests_contract_1.OutreachRequestSchema.safeParse(base).success).toBe(true);
|
|
101
|
+
(0, bun_test_1.expect)(outreach_requests_contract_1.OutreachRequestSchema.safeParse({
|
|
102
|
+
...base,
|
|
103
|
+
terminalReason: 'LAB_RUN_COMPLETED',
|
|
104
|
+
terminalCampaignId: '44444444-4444-4444-8444-444444444444',
|
|
105
|
+
terminalAt: '2026-07-29T09:05:00.000Z',
|
|
106
|
+
}).success).toBe(true);
|
|
107
|
+
(0, bun_test_1.expect)(outreach_requests_contract_1.OutreachRequestSchema.safeParse({
|
|
108
|
+
...base,
|
|
109
|
+
terminalReason: 'OTHER',
|
|
110
|
+
}).success).toBe(false);
|
|
111
|
+
const { terminalReason, terminalCampaignId, terminalAt, ...legacyShape } = base;
|
|
112
|
+
(0, bun_test_1.expect)(outreach_requests_contract_1.OutreachRequestSchema.safeParse(legacyShape).success).toBe(false);
|
|
113
|
+
});
|
|
64
114
|
});
|
|
@@ -8,7 +8,9 @@ const index_1 = require("../../index");
|
|
|
8
8
|
const outreach_contract_1 = require("../outreach.contract");
|
|
9
9
|
// `pathPrefix: '/v2'` is applied by c.router, so the runtime paths are absolute.
|
|
10
10
|
node_assert_1.default.equal(outreach_contract_1.outreachContract.claimNext.method, 'POST');
|
|
11
|
-
node_assert_1.default.equal(outreach_contract_1.outreachContract.claimNext.path, '/v2/outreach/
|
|
11
|
+
node_assert_1.default.equal(outreach_contract_1.outreachContract.claimNext.path, '/v2/outreach/requests/:requestId/claim-next');
|
|
12
|
+
node_assert_1.default.equal(outreach_contract_1.outreachContract.claimNextLegacy.method, 'POST');
|
|
13
|
+
node_assert_1.default.equal(outreach_contract_1.outreachContract.claimNextLegacy.path, '/v2/outreach/jobs/:jobId/claim-next');
|
|
12
14
|
node_assert_1.default.equal(outreach_contract_1.outreachContract.confirmSent.method, 'POST');
|
|
13
15
|
node_assert_1.default.equal(outreach_contract_1.outreachContract.confirmSent.path, '/v2/outreach/leases/:leaseId/sent');
|
|
14
16
|
node_assert_1.default.equal(outreach_contract_1.outreachContract.release.method, 'POST');
|
|
@@ -17,12 +19,16 @@ node_assert_1.default.equal(outreach_contract_1.outreachContract.release.path, '
|
|
|
17
19
|
// 410 is not used anywhere: a late confirm succeeds. `commonResponses` are
|
|
18
20
|
// merged into every route's `responses` by c.router, so 400, 401, 403 and 500
|
|
19
21
|
// appear here.
|
|
20
|
-
const declared = (route) => Object.keys(route.responses)
|
|
22
|
+
const declared = (route) => Object.keys(route.responses)
|
|
23
|
+
.map(Number)
|
|
24
|
+
.sort((a, b) => a - b);
|
|
21
25
|
node_assert_1.default.deepStrictEqual(declared(outreach_contract_1.outreachContract.claimNext), [200, 400, 401, 403, 409, 500]);
|
|
26
|
+
node_assert_1.default.deepStrictEqual(declared(outreach_contract_1.outreachContract.claimNextLegacy), [200, 400, 401, 403, 409, 500]);
|
|
22
27
|
node_assert_1.default.deepStrictEqual(declared(outreach_contract_1.outreachContract.confirmSent), [200, 400, 401, 403, 404, 500]);
|
|
23
28
|
node_assert_1.default.deepStrictEqual(declared(outreach_contract_1.outreachContract.release), [200, 400, 401, 403, 404, 500]);
|
|
24
29
|
for (const route of [
|
|
25
30
|
outreach_contract_1.outreachContract.claimNext,
|
|
31
|
+
outreach_contract_1.outreachContract.claimNextLegacy,
|
|
26
32
|
outreach_contract_1.outreachContract.confirmSent,
|
|
27
33
|
outreach_contract_1.outreachContract.release,
|
|
28
34
|
]) {
|
|
@@ -30,9 +36,13 @@ for (const route of [
|
|
|
30
36
|
}
|
|
31
37
|
// Path params are validated as uuids.
|
|
32
38
|
node_assert_1.default.ok(outreach_contract_1.outreachContract.claimNext.pathParams.safeParse({
|
|
39
|
+
requestId: '6ba7b810-9dad-11d1-80b4-00c04fd430c8',
|
|
40
|
+
}).success);
|
|
41
|
+
node_assert_1.default.ok(!outreach_contract_1.outreachContract.claimNext.pathParams.safeParse({ requestId: 'nope' })
|
|
42
|
+
.success);
|
|
43
|
+
node_assert_1.default.ok(outreach_contract_1.outreachContract.claimNextLegacy.pathParams.safeParse({
|
|
33
44
|
jobId: '6ba7b810-9dad-11d1-80b4-00c04fd430c8',
|
|
34
45
|
}).success);
|
|
35
|
-
node_assert_1.default.ok(!outreach_contract_1.outreachContract.claimNext.pathParams.safeParse({ jobId: 'nope' }).success);
|
|
36
46
|
node_assert_1.default.ok(outreach_contract_1.outreachContract.confirmSent.pathParams.safeParse({
|
|
37
47
|
leaseId: '3f2504e0-4f89-41d3-9a0c-0305e82c3301',
|
|
38
48
|
}).success);
|
|
@@ -46,6 +56,7 @@ node_assert_1.default.ok(outreach_contract_1.outreachContract.confirmSent.pathPa
|
|
|
46
56
|
const headersOf = (route) => route.headers;
|
|
47
57
|
for (const route of [
|
|
48
58
|
outreach_contract_1.outreachContract.claimNext,
|
|
59
|
+
outreach_contract_1.outreachContract.claimNextLegacy,
|
|
49
60
|
outreach_contract_1.outreachContract.confirmSent,
|
|
50
61
|
outreach_contract_1.outreachContract.release,
|
|
51
62
|
]) {
|