placementt-core 1.400.872 → 1.400.874

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.
@@ -0,0 +1,12 @@
1
+ export type CallableJobContext = {
2
+ collectionLink: string;
3
+ collectionItemId?: (data: unknown) => string | undefined;
4
+ recipientId?: (data: unknown) => string | undefined;
5
+ };
6
+ /**
7
+ * Maps each callable function name to its Firestore collection context.
8
+ * collectionItemId/recipientId are accessor functions over the data payload.
9
+ * Used by executeCallable and useExecuteCallableJob to tag job documents,
10
+ * allowing jobs to be queried by collection/item (e.g. all jobs for an event).
11
+ */
12
+ export declare const CALLABLE_JOB_CONTEXT: Record<string, CallableJobContext>;
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CALLABLE_JOB_CONTEXT = void 0;
4
+ const d = (data) => data;
5
+ /**
6
+ * Maps each callable function name to its Firestore collection context.
7
+ * collectionItemId/recipientId are accessor functions over the data payload.
8
+ * Used by executeCallable and useExecuteCallableJob to tag job documents,
9
+ * allowing jobs to be queried by collection/item (e.g. all jobs for an event).
10
+ */
11
+ exports.CALLABLE_JOB_CONTEXT = {
12
+ // ─── Events ────────────────────────────────────────────────────────────────
13
+ "events-sendExternalEventInvites": {
14
+ collectionLink: "externalEvents",
15
+ collectionItemId: (data) => d(data)?.data?.eventId,
16
+ },
17
+ "events-sendEmployerConfirmations": {
18
+ collectionLink: "externalEvents",
19
+ collectionItemId: (data) => d(data)?.data?.event?.id,
20
+ },
21
+ "events-addStudents": {
22
+ collectionLink: "externalEvents",
23
+ collectionItemId: (data) => d(data)?.event?.id,
24
+ },
25
+ "events-studentJoinEvent": {
26
+ collectionLink: "externalEvents",
27
+ collectionItemId: (data) => d(data)?.eventId,
28
+ },
29
+ "events-careersHubAddSchool": {
30
+ collectionLink: "externalEvents",
31
+ collectionItemId: (data) => d(data)?.eventId,
32
+ },
33
+ // ─── User Management ───────────────────────────────────────────────────────
34
+ "userManagement-addUsers": {
35
+ collectionLink: "users",
36
+ },
37
+ "userManagement-activateUsers": {
38
+ collectionLink: "users",
39
+ },
40
+ "userManagement-deactivateUsers": {
41
+ collectionLink: "users",
42
+ },
43
+ "userManagement-deleteUsers": {
44
+ collectionLink: "users",
45
+ },
46
+ "userManagement-uploadAnalytics": {
47
+ collectionLink: "users",
48
+ },
49
+ "userManagement-sendParentWelcomeEmail": {
50
+ collectionLink: "users",
51
+ },
52
+ "userManagement-addStudentsToCohort": {
53
+ collectionLink: "cohorts",
54
+ collectionItemId: (data) => d(data)?.cohortId,
55
+ },
56
+ "userManagement-removeFromCohort": {
57
+ collectionLink: "users",
58
+ collectionItemId: (data) => d(data)?.cohortId,
59
+ },
60
+ // ─── Provider Contacts ─────────────────────────────────────────────────────
61
+ "providerContacts-add": {
62
+ collectionLink: "providerContacts",
63
+ },
64
+ "providerContacts-delete": {
65
+ collectionLink: "providerContacts",
66
+ },
67
+ "providerContacts-resendEmployerInvite": {
68
+ collectionLink: "providerContacts",
69
+ },
70
+ "providerContacts-approveEmployerContacts": {
71
+ collectionLink: "providerContacts",
72
+ },
73
+ // ─── Placement Listings ────────────────────────────────────────────────────
74
+ "placementListing-addToCohort": {
75
+ collectionLink: "placementListings",
76
+ collectionItemId: (data) => d(data)?.cohortId,
77
+ },
78
+ "placementListing-delist": {
79
+ collectionLink: "placementListings",
80
+ collectionItemId: (data) => d(data)?.cohortId,
81
+ },
82
+ // ─── Placements ────────────────────────────────────────────────────────────
83
+ "placement-bulkUpload": {
84
+ collectionLink: "placements",
85
+ collectionItemId: (data) => d(data)?.cohortId,
86
+ },
87
+ // ─── Registration ──────────────────────────────────────────────────────────
88
+ "registration-registerInstitutes": {
89
+ collectionLink: "institutes",
90
+ },
91
+ "registration-resendSchoolInvites": {
92
+ collectionLink: "careersInvites",
93
+ },
94
+ "registration-deleteSchoolInvites": {
95
+ collectionLink: "careersInvites",
96
+ },
97
+ "registration-registerInstitute": {
98
+ collectionLink: "institutes",
99
+ },
100
+ "registration-registerProvider": {
101
+ collectionLink: "providerContacts",
102
+ },
103
+ "registration-registerStudent": {
104
+ collectionLink: "users",
105
+ },
106
+ // ─── Admissions ────────────────────────────────────────────────────────────
107
+ "admissions-createCohort": {
108
+ collectionLink: "admissionCohorts",
109
+ },
110
+ // ─── Parents ───────────────────────────────────────────────────────────────
111
+ "parents-add": {
112
+ collectionLink: "parents",
113
+ },
114
+ "parents-bulkApprove": {
115
+ collectionLink: "parents",
116
+ },
117
+ };
118
+ //# sourceMappingURL=callableJobContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"callableJobContext.js","sourceRoot":"","sources":["../../src/firebase/callableJobContext.ts"],"names":[],"mappings":"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"}
@@ -18,23 +18,13 @@ export type RegistrationData = {
18
18
  family_name: string;
19
19
  };
20
20
  export declare const register: (credentials: RegistrationData, type: "Institute" | "Provider" | "Student") => Promise<string>;
21
- export type CallableLog = {
22
- functionName: string;
23
- data: unknown;
24
- timestamp: string;
25
- userId: string | null;
26
- userEmail: string | null;
27
- url: string | null;
28
- outcome: "pending" | "success" | "error";
29
- error?: string;
30
- };
31
21
  export declare const executeCallable: (functionName: string, data: unknown) => Promise<{
32
22
  data: any;
33
23
  }>;
34
24
  export declare function useExecuteCallableJob({ user }: {
35
25
  user: UserData;
36
26
  }): {
37
- execute: (functionName: "userManagement-addUsers" | "userManagement-activateUsers" | "userManagement-deactivateUsers" | "userManagement-deleteUsers" | "admissions-createCohort" | "userManagement-uploadAnalytics" | "providerContacts-add" | "userManagement-sendParentWelcomeEmail" | "events-sendExternalEventInvites" | "events-sendEmployerConfirmations" | "placementListing-addToCohort" | "placementListing-delist" | "providerContacts-delete" | "events-addStudents" | "registration-registerInstitutes" | "events-careersHubAddSchool" | "events-studentJoinEvent" | "userManagement-addStudentsToCohort" | "userManagement-removeFromCohort" | "providerContacts-resendEmployerInvite" | "registration-resendSchoolInvites" | "placement-bulkUpload" | "registration-deleteSchoolInvites" | "providerContacts-approveEmployerContacts" | "parents-add" | "parents-bulkApprove", data: {
27
+ execute: (functionName: "events-sendExternalEventInvites" | "events-sendEmployerConfirmations" | "events-addStudents" | "events-studentJoinEvent" | "events-careersHubAddSchool" | "userManagement-addUsers" | "userManagement-activateUsers" | "userManagement-deactivateUsers" | "userManagement-deleteUsers" | "userManagement-uploadAnalytics" | "userManagement-sendParentWelcomeEmail" | "userManagement-addStudentsToCohort" | "userManagement-removeFromCohort" | "providerContacts-add" | "providerContacts-delete" | "providerContacts-resendEmployerInvite" | "providerContacts-approveEmployerContacts" | "placementListing-addToCohort" | "placementListing-delist" | "placement-bulkUpload" | "registration-registerInstitutes" | "registration-resendSchoolInvites" | "registration-deleteSchoolInvites" | "admissions-createCohort" | "parents-add" | "parents-bulkApprove", data: {
38
28
  [key: string]: unknown;
39
29
  }) => Promise<{
40
30
  severity: string;
@@ -12,6 +12,7 @@ const firebaseQuery_1 = __importDefault(require("./firebaseQuery"));
12
12
  const firebaseConfig_1 = require("./firebaseConfig");
13
13
  const jobsSlice_1 = require("../features/jobs/jobsSlice");
14
14
  const reduxHooks_1 = require("../reduxHooks");
15
+ const callableJobContext_1 = require("./callableJobContext");
15
16
  const authListener = (setUser) => {
16
17
  return (0, auth_1.onAuthStateChanged)(firebaseConfig_1.auth, (aUser) => {
17
18
  if (!aUser) {
@@ -59,25 +60,32 @@ function sanitiseData(data) {
59
60
  const executeCallable = async (functionName, data) => {
60
61
  const currentUser = firebaseConfig_1.auth.currentUser;
61
62
  const firebaseQuery = new firebaseQuery_1.default();
62
- const logEntry = {
63
+ const date = new Date();
64
+ const context = callableJobContext_1.CALLABLE_JOB_CONTEXT[functionName];
65
+ const jobObject = {
63
66
  functionName,
64
- data: sanitiseData(data),
65
- timestamp: new Date().toISOString(),
67
+ dataSent: sanitiseData(data),
68
+ status: "processing",
69
+ viewedBy: [],
70
+ started: date.toISOString(),
71
+ updated: date.toISOString(),
66
72
  userId: currentUser?.uid ?? null,
67
73
  userEmail: currentUser?.email ?? null,
68
74
  url: typeof window !== "undefined" ? window.location.href : null,
69
- outcome: "pending",
75
+ collectionLink: context?.collectionLink ?? null,
76
+ collectionItemId: context?.collectionItemId?.(data) ?? null,
77
+ recipientId: context?.recipientId?.(data) ?? null,
70
78
  };
71
- const logRef = firebaseQuery.add(["callableLogs"], logEntry);
79
+ const jobRef = firebaseQuery.add(["jobs"], jobObject);
72
80
  const funcCallable = (0, functions_1.httpsCallable)(firebaseConfig_1.functions, functionName);
73
81
  try {
74
82
  const res = await funcCallable(data);
75
- logRef.then((doc) => firebaseQuery.update(["callableLogs", doc.id], { outcome: "success" }));
83
+ jobRef.then((doc) => firebaseQuery.update(["jobs", doc.id], { status: "complete", updated: new Date().toISOString() }));
76
84
  return res;
77
85
  }
78
86
  catch (e) {
79
87
  console.log("callableError", functionName, e);
80
- logRef.then((doc) => firebaseQuery.update(["callableLogs", doc.id], { outcome: "error", error: e?.message ?? String(e) }));
88
+ jobRef.then((doc) => firebaseQuery.update(["jobs", doc.id], { status: "error", updated: new Date().toISOString(), error: e?.message ?? String(e) }));
81
89
  throw e;
82
90
  }
83
91
  };
@@ -231,6 +239,7 @@ function useExecuteCallableJob({ user }) {
231
239
  };
232
240
  const date = new Date();
233
241
  const firebaseQuery = new firebaseQuery_1.default();
242
+ const context = callableJobContext_1.CALLABLE_JOB_CONTEXT[functionName];
234
243
  const jobObject = {
235
244
  title: getCode()?.title,
236
245
  description: getCode()?.description,
@@ -244,6 +253,9 @@ function useExecuteCallableJob({ user }) {
244
253
  userId: user.id ?? null,
245
254
  userEmail: user.email ?? null,
246
255
  dataSent: sanitiseData(data),
256
+ collectionLink: context?.collectionLink ?? null,
257
+ collectionItemId: context?.collectionItemId?.(data) ?? null,
258
+ recipientId: context?.recipientId?.(data) ?? null,
247
259
  };
248
260
  const jobId = (await firebaseQuery.add(["jobs"], jobObject)).id;
249
261
  console.log("jobId", jobId);
@@ -1 +1 @@
1
- {"version":3,"file":"firebase.js","sourceRoot":"","sources":["../../src/firebase/firebase.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"firebase.js","sourceRoot":"","sources":["../../src/firebase/firebase.tsx"],"names":[],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from "./firebase/firebase";
2
+ export * from "./firebase/callableJobContext";
2
3
  export * from "./firebase/readDatabase";
3
4
  export * from "./firebase/writeDatabase";
4
5
  export * from "./firebase/util";
package/lib/index.js CHANGED
@@ -19,6 +19,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
19
19
  Object.defineProperty(exports, "__esModule", { value: true });
20
20
  exports.genericEmailDomains = void 0;
21
21
  __exportStar(require("./firebase/firebase"), exports);
22
+ __exportStar(require("./firebase/callableJobContext"), exports);
22
23
  __exportStar(require("./firebase/readDatabase"), exports);
23
24
  __exportStar(require("./firebase/writeDatabase"), exports);
24
25
  __exportStar(require("./firebase/util"), exports);
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AACA,sDAAoC;AACpC,0DAAwC;AACxC,2DAAyC;AACzC,kDAAgC;AAChC,4DAA0C;AAC1C,2DAAyC;AAEzC,oDAAkC;AAClC,kDAAgC;AAChC,uDAAqC;AACrC,iDAA+B;AAC/B,8CAA4B;AAC5B,0CAAwB;AACxB,yCAAuB;AACvB,4DAA0C;AAC1C,kDAAgC;AAChC,iDAA+B;AAC/B,2CAAyB;AACzB,4DAA0C;AAC1C,oEAAiD;AACjD,yEAAuD;AACvD,kEAAgD;AAChD,kEAAgD;AAChD,oEAAkD;AAClD,yGAAuF;AACvF,0GAAwF;AACxF,+FAA6E;AAC7E,4DAA0C;AAC1C,oEAAkD;AAClD,gEAA8C;AAC9C,2EAAyD;AACzD,6CAA2B;AAC3B,+CAA6B;AAC7B,6DAAuE;AAA9D,2IAAA,OAAO,OAAuB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AACA,sDAAoC;AACpC,gEAA8C;AAC9C,0DAAwC;AACxC,2DAAyC;AACzC,kDAAgC;AAChC,4DAA0C;AAC1C,2DAAyC;AAEzC,oDAAkC;AAClC,kDAAgC;AAChC,uDAAqC;AACrC,iDAA+B;AAC/B,8CAA4B;AAC5B,0CAAwB;AACxB,yCAAuB;AACvB,4DAA0C;AAC1C,kDAAgC;AAChC,iDAA+B;AAC/B,2CAAyB;AACzB,4DAA0C;AAC1C,oEAAiD;AACjD,yEAAuD;AACvD,kEAAgD;AAChD,kEAAgD;AAChD,oEAAkD;AAClD,yGAAuF;AACvF,0GAAwF;AACxF,+FAA6E;AAC7E,4DAA0C;AAC1C,oEAAkD;AAClD,gEAA8C;AAC9C,2EAAyD;AACzD,6CAA2B;AAC3B,+CAA6B;AAC7B,6DAAuE;AAA9D,2IAAA,OAAO,OAAuB"}
@@ -760,6 +760,10 @@ export type ProviderContactData = {
760
760
  providerConsentDate?: string;
761
761
  MATschools?: string[];
762
762
  notes?: Descendant[];
763
+ schoolGroups?: {
764
+ groups?: string[];
765
+ specificSchools?: string[];
766
+ };
763
767
  additionalData?: {
764
768
  [key: string]: unknown;
765
769
  };
@@ -1568,6 +1572,7 @@ export type ExternalEvent = {
1568
1572
  designatedStaff: string;
1569
1573
  designatedStaffText: string;
1570
1574
  eventRequestId?: string;
1575
+ employersViewed?: string;
1571
1576
  equalexLearningOutcomes?: string;
1572
1577
  created: string;
1573
1578
  activityId?: string;
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "private": false,
3
3
  "name": "placementt-core",
4
4
  "author": "Placementt",
5
- "version": "1.400.872",
5
+ "version": "1.400.874",
6
6
  "main": "lib/index.js",
7
7
  "types": "lib/index.d.ts",
8
8
  "scripts": {
@@ -0,0 +1,128 @@
1
+ export type CallableJobContext = {
2
+ collectionLink: string;
3
+ collectionItemId?: (data: unknown) => string | undefined;
4
+ recipientId?: (data: unknown) => string | undefined;
5
+ };
6
+
7
+ const d = (data: unknown) => data as Record<string, unknown>;
8
+
9
+ /**
10
+ * Maps each callable function name to its Firestore collection context.
11
+ * collectionItemId/recipientId are accessor functions over the data payload.
12
+ * Used by executeCallable and useExecuteCallableJob to tag job documents,
13
+ * allowing jobs to be queried by collection/item (e.g. all jobs for an event).
14
+ */
15
+ export const CALLABLE_JOB_CONTEXT: Record<string, CallableJobContext> = {
16
+ // ─── Events ────────────────────────────────────────────────────────────────
17
+ "events-sendExternalEventInvites": {
18
+ collectionLink: "externalEvents",
19
+ collectionItemId: (data) => (d(data)?.data as any)?.eventId,
20
+ },
21
+ "events-sendEmployerConfirmations": {
22
+ collectionLink: "externalEvents",
23
+ collectionItemId: (data) => (d(data)?.data as any)?.event?.id,
24
+ },
25
+ "events-addStudents": {
26
+ collectionLink: "externalEvents",
27
+ collectionItemId: (data) => (d(data)?.event as any)?.id,
28
+ },
29
+ "events-studentJoinEvent": {
30
+ collectionLink: "externalEvents",
31
+ collectionItemId: (data) => d(data)?.eventId as string | undefined,
32
+ },
33
+ "events-careersHubAddSchool": {
34
+ collectionLink: "externalEvents",
35
+ collectionItemId: (data) => d(data)?.eventId as string | undefined,
36
+ },
37
+
38
+ // ─── User Management ───────────────────────────────────────────────────────
39
+ "userManagement-addUsers": {
40
+ collectionLink: "users",
41
+ },
42
+ "userManagement-activateUsers": {
43
+ collectionLink: "users",
44
+ },
45
+ "userManagement-deactivateUsers": {
46
+ collectionLink: "users",
47
+ },
48
+ "userManagement-deleteUsers": {
49
+ collectionLink: "users",
50
+ },
51
+ "userManagement-uploadAnalytics": {
52
+ collectionLink: "users",
53
+ },
54
+ "userManagement-sendParentWelcomeEmail": {
55
+ collectionLink: "users",
56
+ },
57
+ "userManagement-addStudentsToCohort": {
58
+ collectionLink: "cohorts",
59
+ collectionItemId: (data) => d(data)?.cohortId as string | undefined,
60
+ },
61
+ "userManagement-removeFromCohort": {
62
+ collectionLink: "users",
63
+ collectionItemId: (data) => d(data)?.cohortId as string | undefined,
64
+ },
65
+
66
+ // ─── Provider Contacts ─────────────────────────────────────────────────────
67
+ "providerContacts-add": {
68
+ collectionLink: "providerContacts",
69
+ },
70
+ "providerContacts-delete": {
71
+ collectionLink: "providerContacts",
72
+ },
73
+ "providerContacts-resendEmployerInvite": {
74
+ collectionLink: "providerContacts",
75
+ },
76
+ "providerContacts-approveEmployerContacts": {
77
+ collectionLink: "providerContacts",
78
+ },
79
+
80
+ // ─── Placement Listings ────────────────────────────────────────────────────
81
+ "placementListing-addToCohort": {
82
+ collectionLink: "placementListings",
83
+ collectionItemId: (data) => d(data)?.cohortId as string | undefined,
84
+ },
85
+ "placementListing-delist": {
86
+ collectionLink: "placementListings",
87
+ collectionItemId: (data) => d(data)?.cohortId as string | undefined,
88
+ },
89
+
90
+ // ─── Placements ────────────────────────────────────────────────────────────
91
+ "placement-bulkUpload": {
92
+ collectionLink: "placements",
93
+ collectionItemId: (data) => d(data)?.cohortId as string | undefined,
94
+ },
95
+
96
+ // ─── Registration ──────────────────────────────────────────────────────────
97
+ "registration-registerInstitutes": {
98
+ collectionLink: "institutes",
99
+ },
100
+ "registration-resendSchoolInvites": {
101
+ collectionLink: "careersInvites",
102
+ },
103
+ "registration-deleteSchoolInvites": {
104
+ collectionLink: "careersInvites",
105
+ },
106
+ "registration-registerInstitute": {
107
+ collectionLink: "institutes",
108
+ },
109
+ "registration-registerProvider": {
110
+ collectionLink: "providerContacts",
111
+ },
112
+ "registration-registerStudent": {
113
+ collectionLink: "users",
114
+ },
115
+
116
+ // ─── Admissions ────────────────────────────────────────────────────────────
117
+ "admissions-createCohort": {
118
+ collectionLink: "admissionCohorts",
119
+ },
120
+
121
+ // ─── Parents ───────────────────────────────────────────────────────────────
122
+ "parents-add": {
123
+ collectionLink: "parents",
124
+ },
125
+ "parents-bulkApprove": {
126
+ collectionLink: "parents",
127
+ },
128
+ };
@@ -7,6 +7,7 @@ import FirebaseQuery from "./firebaseQuery";
7
7
  import {auth, functions} from "./firebaseConfig";
8
8
  import {addJob, Job, updateJob} from "../features/jobs/jobsSlice";
9
9
  import { useAppDispatch } from "../reduxHooks";
10
+ import { CALLABLE_JOB_CONTEXT } from "./callableJobContext";
10
11
 
11
12
 
12
13
  export const authListener = (setUser: SetStateAction<any>) => {
@@ -67,41 +68,37 @@ function sanitiseData(data: unknown): unknown {
67
68
  );
68
69
  }
69
70
 
70
- export type CallableLog = {
71
- functionName: string;
72
- data: unknown;
73
- timestamp: string;
74
- userId: string | null;
75
- userEmail: string | null;
76
- url: string | null;
77
- outcome: "pending" | "success" | "error";
78
- error?: string;
79
- };
80
-
81
71
  export const executeCallable = async (functionName: string, data: unknown) => {
82
72
  const currentUser = auth.currentUser;
83
73
  const firebaseQuery = new FirebaseQuery();
74
+ const date = new Date();
75
+ const context = CALLABLE_JOB_CONTEXT[functionName];
84
76
 
85
- const logEntry: CallableLog = {
77
+ const jobObject = {
86
78
  functionName,
87
- data: sanitiseData(data),
88
- timestamp: new Date().toISOString(),
79
+ dataSent: sanitiseData(data),
80
+ status: "processing",
81
+ viewedBy: [],
82
+ started: date.toISOString(),
83
+ updated: date.toISOString(),
89
84
  userId: currentUser?.uid ?? null,
90
85
  userEmail: currentUser?.email ?? null,
91
86
  url: typeof window !== "undefined" ? window.location.href : null,
92
- outcome: "pending",
87
+ collectionLink: context?.collectionLink ?? null,
88
+ collectionItemId: context?.collectionItemId?.(data) ?? null,
89
+ recipientId: context?.recipientId?.(data) ?? null,
93
90
  };
94
91
 
95
- const logRef = firebaseQuery.add(["callableLogs"], logEntry as unknown as {[key: string]: unknown});
92
+ const jobRef = firebaseQuery.add(["jobs"], jobObject as unknown as {[key: string]: unknown});
96
93
 
97
94
  const funcCallable = httpsCallable(functions, functionName);
98
95
  try {
99
96
  const res = await funcCallable(data);
100
- logRef.then((doc) => firebaseQuery.update(["callableLogs", doc.id], {outcome: "success"}));
97
+ jobRef.then((doc) => firebaseQuery.update(["jobs", doc.id], {status: "complete", updated: new Date().toISOString()}));
101
98
  return res as {data: any};
102
99
  } catch (e: any) {
103
100
  console.log("callableError", functionName, e);
104
- logRef.then((doc) => firebaseQuery.update(["callableLogs", doc.id], {outcome: "error", error: e?.message ?? String(e)}));
101
+ jobRef.then((doc) => firebaseQuery.update(["jobs", doc.id], {status: "error", updated: new Date().toISOString(), error: e?.message ?? String(e)}));
105
102
  throw e;
106
103
  }
107
104
  };
@@ -274,6 +271,7 @@ export function useExecuteCallableJob({user}:{user: UserData}) {
274
271
 
275
272
  const date = new Date();
276
273
  const firebaseQuery = new FirebaseQuery();
274
+ const context = CALLABLE_JOB_CONTEXT[functionName];
277
275
 
278
276
  const jobObject = {
279
277
  title: getCode()?.title,
@@ -288,6 +286,9 @@ export function useExecuteCallableJob({user}:{user: UserData}) {
288
286
  userId: user.id ?? null,
289
287
  userEmail: user.email ?? null,
290
288
  dataSent: sanitiseData(data),
289
+ collectionLink: context?.collectionLink ?? null,
290
+ collectionItemId: context?.collectionItemId?.(data) ?? null,
291
+ recipientId: context?.recipientId?.(data) ?? null,
291
292
  };
292
293
 
293
294
  const jobId = (await firebaseQuery.add(["jobs"], jobObject)).id;
package/src/index.ts CHANGED
@@ -1,5 +1,6 @@
1
1
 
2
2
  export * from "./firebase/firebase";
3
+ export * from "./firebase/callableJobContext";
3
4
  export * from "./firebase/readDatabase";
4
5
  export * from "./firebase/writeDatabase";
5
6
  export * from "./firebase/util";
@@ -758,6 +758,10 @@ export type ProviderContactData = {
758
758
  providerConsentDate?: string,
759
759
  MATschools?: string[],
760
760
  notes?: Descendant[],
761
+ schoolGroups?: {
762
+ groups?: string[],
763
+ specificSchools?: string[],
764
+ },
761
765
  additionalData?: {[key: string]: unknown},
762
766
  status: "uploaded"|"approved"|"rejected"|"providerReviewed"|"blocked"}},
763
767
  }&Address
@@ -1517,6 +1521,7 @@ export type ExternalEvent = {
1517
1521
  designatedStaff: string,
1518
1522
  designatedStaffText: string,
1519
1523
  eventRequestId?: string,
1524
+ employersViewed?: string,
1520
1525
  equalexLearningOutcomes?: string,
1521
1526
  created: string,
1522
1527
  activityId?: string,