placementt-core 1.400.871 → 1.400.873

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"}
@@ -751,7 +751,7 @@ export type ProviderContactData = {
751
751
  accessCode?: string;
752
752
  accessExpiry?: string;
753
753
  savedBy?: {
754
- [key: string]: {
754
+ [oId: string]: {
755
755
  exists: true;
756
756
  activities?: null | string[];
757
757
  eventsConsent?: boolean;
@@ -760,6 +760,9 @@ export type ProviderContactData = {
760
760
  providerConsentDate?: string;
761
761
  MATschools?: string[];
762
762
  notes?: Descendant[];
763
+ additionalData?: {
764
+ [key: string]: unknown;
765
+ };
763
766
  status: "uploaded" | "approved" | "rejected" | "providerReviewed" | "blocked";
764
767
  };
765
768
  };
@@ -769,6 +772,7 @@ export type InstituteData = {
769
772
  staff: number;
770
773
  studentsFields: string[];
771
774
  staffFields: string[];
775
+ employerFields: string[];
772
776
  studentsActive: number;
773
777
  staffActive: number;
774
778
  admin: string;
@@ -1564,6 +1568,7 @@ export type ExternalEvent = {
1564
1568
  designatedStaff: string;
1565
1569
  designatedStaffText: string;
1566
1570
  eventRequestId?: string;
1571
+ employersViewed?: string;
1567
1572
  equalexLearningOutcomes?: string;
1568
1573
  created: string;
1569
1574
  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.871",
5
+ "version": "1.400.873",
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";
@@ -749,7 +749,7 @@ export type ProviderContactData = {
749
749
  insuranceExpiry?: string,
750
750
  accessCode?: string,
751
751
  accessExpiry?: string,
752
- savedBy?: {[key:string]: {
752
+ savedBy?: {[oId: string]: {
753
753
  exists: true,
754
754
  activities?: null|string[], // IDs of consented activities.
755
755
  eventsConsent?: boolean,
@@ -758,6 +758,7 @@ export type ProviderContactData = {
758
758
  providerConsentDate?: string,
759
759
  MATschools?: string[],
760
760
  notes?: Descendant[],
761
+ additionalData?: {[key: string]: unknown},
761
762
  status: "uploaded"|"approved"|"rejected"|"providerReviewed"|"blocked"}},
762
763
  }&Address
763
764
 
@@ -766,6 +767,7 @@ export type InstituteData = {
766
767
  staff: number,
767
768
  studentsFields: string[],
768
769
  staffFields: string[],
770
+ employerFields: string[],
769
771
  studentsActive: number,
770
772
  staffActive: number,
771
773
  admin: string,
@@ -1515,6 +1517,7 @@ export type ExternalEvent = {
1515
1517
  designatedStaff: string,
1516
1518
  designatedStaffText: string,
1517
1519
  eventRequestId?: string,
1520
+ employersViewed?: string,
1518
1521
  equalexLearningOutcomes?: string,
1519
1522
  created: string,
1520
1523
  activityId?: string,