placementt-core 1.20.211 → 11.10.151

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.
Files changed (130) hide show
  1. package/.eslintrc.js +40 -40
  2. package/.gitattributes +2 -2
  3. package/lib/config.d.ts +0 -1
  4. package/lib/constants.d.ts +6 -2
  5. package/lib/constants.js +136 -136
  6. package/lib/constants.js.map +1 -1
  7. package/lib/features/analytics/useAnalytics.d.ts +0 -1
  8. package/lib/features/analytics/useAnalytics.js +3 -4
  9. package/lib/features/analytics/useAnalytics.js.map +1 -1
  10. package/lib/features/config.d.ts +133 -133
  11. package/lib/features/config.js +35 -35
  12. package/lib/features/contacts/contacts.d.ts +75 -75
  13. package/lib/features/contacts/contacts.js +105 -105
  14. package/lib/features/contacts/contactsSlice.d.ts +5 -5
  15. package/lib/features/contacts/useContacts.js +1 -2
  16. package/lib/features/contacts/useContacts.js.map +1 -1
  17. package/lib/features/downtime/useDowntime.d.ts +11 -11
  18. package/lib/features/downtime/useDowntime.js +22 -22
  19. package/lib/features/dropdown/useDropdown.d.ts +2 -3
  20. package/lib/features/dropdown/useDropdown.js +1 -2
  21. package/lib/features/dropdown/useDropdown.js.map +1 -1
  22. package/lib/features/global/downtime/useDowntime.d.ts +0 -1
  23. package/lib/features/global/downtime/useDowntime.js +1 -2
  24. package/lib/features/global/downtime/useDowntime.js.map +1 -1
  25. package/lib/features/global/users/useUserFunctions.d.ts +0 -1
  26. package/lib/features/global/users/useUserFunctions.js +7 -8
  27. package/lib/features/global/users/useUserFunctions.js.map +1 -1
  28. package/lib/features/placements/studentPlacements/activePlacement.d.ts +1 -1
  29. package/lib/features/placements/studentPlacements/completedStudentPlacementsSlice.d.ts +2 -2
  30. package/lib/features/placements/studentPlacements/studentPlacementsSlice.d.ts +63 -63
  31. package/lib/features/placements/studentPlacements/studentPlacementsSlice.js +81 -81
  32. package/lib/features/placements/studentPlacements/upcomingStudentPlacementsSlice.d.ts +2 -2
  33. package/lib/features/placements/studentPlacements/useStudentPlacements.d.ts +0 -1
  34. package/lib/features/placements/studentPlacements/useStudentPlacements.js +1 -2
  35. package/lib/features/placements/studentPlacements/useStudentPlacements.js.map +1 -1
  36. package/lib/features/providerPlacements/providerPlacementsSlice.d.ts +19 -19
  37. package/lib/features/providerPlacements/providerPlacementsSlice.js +24 -24
  38. package/lib/features/referrals/useReferrals.d.ts +0 -1
  39. package/lib/features/referrals/useReferrals.js +1 -2
  40. package/lib/features/referrals/useReferrals.js.map +1 -1
  41. package/lib/features/studentPlacements/studentPlacementsSlice.d.ts +62 -62
  42. package/lib/features/studentPlacements/studentPlacementsSlice.js +87 -87
  43. package/lib/features/studentPlacements/useStudentPlacements.d.ts +6 -6
  44. package/lib/features/studentPlacements/useStudentPlacements.js +18 -18
  45. package/lib/features/updates/useUpdates.js +1 -2
  46. package/lib/features/updates/useUpdates.js.map +1 -1
  47. package/lib/features/userSlice.d.ts +26 -26
  48. package/lib/features/userSlice.js +23 -23
  49. package/lib/features/users/useUserFunctions.d.ts +25 -25
  50. package/lib/features/users/useUserFunctions.js +124 -124
  51. package/lib/features/users/userSlice.d.ts +46 -46
  52. package/lib/features/users/userSlice.js +48 -48
  53. package/lib/firebase/firebase.d.ts +3 -1
  54. package/lib/firebase/firebase.js +9 -3
  55. package/lib/firebase/firebase.js.map +1 -1
  56. package/lib/firebase/firebaseConfig.js +3 -0
  57. package/lib/firebase/firebaseConfig.js.map +1 -1
  58. package/lib/firebase/firebaseQuery.d.ts +3 -1
  59. package/lib/firebase/firebaseQuery.js +11 -1
  60. package/lib/firebase/firebaseQuery.js.map +1 -1
  61. package/lib/firebase/persistence.js +2 -2
  62. package/lib/firebase/persistence.js.map +1 -1
  63. package/lib/firebase/readDatabase.d.ts +8 -7
  64. package/lib/firebase/readDatabase.js +41 -8
  65. package/lib/firebase/readDatabase.js.map +1 -1
  66. package/lib/firebase/util.d.ts +3 -4
  67. package/lib/firebase/util.js +49 -4
  68. package/lib/firebase/util.js.map +1 -1
  69. package/lib/firebase/writeDatabase.d.ts +7 -3
  70. package/lib/firebase/writeDatabase.js +9 -2
  71. package/lib/firebase/writeDatabase.js.map +1 -1
  72. package/lib/hooks.d.ts +476 -20
  73. package/lib/hooks.js +1855 -237
  74. package/lib/hooks.js.map +1 -1
  75. package/lib/images/GatsbyBenchmarks.d.ts +0 -1
  76. package/lib/images/GatsbyBenchmarks.js +1 -1
  77. package/lib/images/GatsbyBenchmarks.js.map +1 -1
  78. package/lib/reduxHooks.d.ts +9 -2
  79. package/lib/reduxHooks.js +36 -9
  80. package/lib/reduxHooks.js.map +1 -1
  81. package/lib/tasksAndTips.d.ts +25 -5
  82. package/lib/tasksAndTips.js +517 -48
  83. package/lib/tasksAndTips.js.map +1 -1
  84. package/lib/typeDefinitions.d.ts +472 -55
  85. package/lib/util.d.ts +1 -0
  86. package/lib/util.js +85 -7
  87. package/lib/util.js.map +1 -1
  88. package/package.json +52 -49
  89. package/src/DatabaseDefinitions.ts +18 -18
  90. package/src/apiCalls.ts +128 -128
  91. package/src/config.ts +50 -50
  92. package/src/constants.ts +714 -707
  93. package/src/databaseTypes.ts +42 -42
  94. package/src/features/analytics/useAnalytics.tsx +64 -64
  95. package/src/features/contacts/contactsSlice.ts +147 -147
  96. package/src/features/contacts/useContacts.tsx +73 -73
  97. package/src/features/dropdown/useDropdown.tsx +52 -52
  98. package/src/features/global/downtime/useDowntime.tsx +23 -23
  99. package/src/features/global/users/useUserFunctions.tsx +132 -132
  100. package/src/features/jobs/jobsSlice.ts +65 -65
  101. package/src/features/placements/studentPlacements/activePlacement.ts +68 -68
  102. package/src/features/placements/studentPlacements/completedStudentPlacementsSlice.ts +97 -97
  103. package/src/features/placements/studentPlacements/upcomingStudentPlacementsSlice.ts +108 -108
  104. package/src/features/placements/studentPlacements/useStudentPlacements.tsx +9 -9
  105. package/src/features/placements/types.ts +10 -10
  106. package/src/features/referrals/useReferrals.tsx +56 -56
  107. package/src/features/updates/useUpdates.tsx +38 -38
  108. package/src/firebase/firebase.tsx +144 -138
  109. package/src/firebase/firebaseConfig.tsx +45 -42
  110. package/src/firebase/firebaseQuery.tsx +150 -140
  111. package/src/firebase/persistence.ts +84 -84
  112. package/src/firebase/readDatabase.tsx +235 -197
  113. package/src/firebase/util.tsx +352 -308
  114. package/src/firebase/writeDatabase.tsx +77 -68
  115. package/src/hooks.tsx +4029 -1928
  116. package/src/images/GatsbyBenchmarks.tsx +711 -711
  117. package/src/images/LogFuturePlacement.jsx +64 -64
  118. package/src/images/LogPreviousPlacement.jsx +228 -228
  119. package/src/images/gatsby_benchmarks.svg +466 -466
  120. package/src/images/log_future_placement.svg +114 -114
  121. package/src/images/log_previous_placement.svg +199 -199
  122. package/src/index.ts +34 -34
  123. package/src/readDatabase.tsx +3 -3
  124. package/src/reduxHooks.ts +231 -200
  125. package/src/tasksAndTips.ts +917 -410
  126. package/src/tutorialTips.ts +58 -58
  127. package/src/typeDefinitions.ts +893 -503
  128. package/src/util.ts +137 -47
  129. package/tsconfig.dev.json +5 -5
  130. package/tsconfig.json +21 -21
package/lib/util.d.ts CHANGED
@@ -7,4 +7,5 @@ type Params = {
7
7
  user: UserData;
8
8
  };
9
9
  export declare const getPlacementFlagCodes: ({ placement, studentData, workflow, institute, user }: Params) => FlagCodes[];
10
+ export declare function objectsEqualNew(a: any, b: any): boolean;
10
11
  export {};
package/lib/util.js CHANGED
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getPlacementFlagCodes = void 0;
4
+ exports.objectsEqualNew = objectsEqualNew;
4
5
  const getPlacementFlagCodes = ({ placement, studentData, workflow, institute, user }) => {
5
- var _a, _b, _c, _d;
6
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
6
7
  let flags = placement.flags || [];
7
8
  if (!studentData.details.parentEmail && !flags.find((x) => x.includes("noParentEmail"))) {
8
9
  if (((_a = workflow.find((obj) => obj.id === placement.status)) === null || _a === void 0 ? void 0 : _a.userType) === "Parent") {
@@ -17,26 +18,103 @@ const getPlacementFlagCodes = ({ placement, studentData, workflow, institute, us
17
18
  const placementNotEnded = !placement.leadTimes.some((x) => x.split("_")[0] === "8");
18
19
  const providerUnverified = placement.providerId && !((_b = institute === null || institute === void 0 ? void 0 : institute.verifiedProviders) === null || _b === void 0 ? void 0 : _b.includes(placement.providerId));
19
20
  const awaitingProviderInsurance = placement.providerId && ((_c = institute === null || institute === void 0 ? void 0 : institute.awaitingProviderInsurance) === null || _c === void 0 ? void 0 : _c.includes(placement.providerId));
20
- if (user.userType === "Staff" && placementIsPostProviderReview && placementNotEnded && providerUnverified && !awaitingProviderInsurance) {
21
- console.log("Add flag!");
21
+ const riskAssessmentNotVerified = !((_d = institute === null || institute === void 0 ? void 0 : institute.verifiedRiskAssessments) === null || _d === void 0 ? void 0 : _d.includes(placement.placementId || placement.id));
22
+ const awaitingRiskAssessment = !placement.riskAssessment || ((_e = institute === null || institute === void 0 ? void 0 : institute.awaitingPlacementRiskAssessments) === null || _e === void 0 ? void 0 : _e.includes(placement.placementId || placement.id));
23
+ const dbsCheckNotVerified = !((_f = institute === null || institute === void 0 ? void 0 : institute.verifiedDbsChecks) === null || _f === void 0 ? void 0 : _f.includes(placement.placementId || placement.id));
24
+ const awaitingDbsCheck = !placement.dbsCheck || ((_g = institute === null || institute === void 0 ? void 0 : institute.awaitingPlacementDbsChecks) === null || _g === void 0 ? void 0 : _g.includes(placement.placementId || placement.id));
25
+ if (user.userType === "Staff" && user.product === "institutes" && placement.insurance && placementIsPostProviderReview && placementNotEnded && providerUnverified && !awaitingProviderInsurance) {
26
+ console.log("Add insurance flag!");
22
27
  flags.includes("noInsurance") || flags.push("noInsurance");
23
28
  }
24
29
  else {
25
30
  flags = flags.filter((x) => x !== "noInsurance");
26
31
  }
27
- if (user.userType === "Staff" && placementIsPostProviderReview && placementNotEnded && awaitingProviderInsurance) {
32
+ if (user.userType === "Staff" && user.product === "institutes" && placementIsPostProviderReview && placementNotEnded && awaitingProviderInsurance) {
28
33
  flags.includes("awaitingInsurance") || flags.push("awaitingInsurance");
29
34
  }
30
35
  else {
31
36
  flags = flags.filter((x) => x !== "awaitingInsurance");
32
37
  }
33
- if (user.product === "students" && !(placement.providerCompleted && ((_d = placement.providerCompleted) === null || _d === void 0 ? void 0 : _d.includes("details")))) {
34
- flags.includes("notVerified") || flags.push("notVerified");
38
+ if (user.userType === "Staff" && user.product === "institutes" && placement.dbsCheck && workflow.find((stage) => stage.dbsCheck) && placement.dbsCheck !== true && placementIsPostProviderReview && placementNotEnded && dbsCheckNotVerified && !awaitingDbsCheck) {
39
+ flags.includes("noDbsCheck") || flags.push("noDbsCheck");
35
40
  }
36
41
  else {
37
- flags = flags.filter((x) => x !== "notVerified");
42
+ flags = flags.filter((x) => x !== "noDbsCheck");
43
+ }
44
+ if (user.userType === "Staff" && user.product === "institutes" && placementIsPostProviderReview && workflow.find((stage) => stage.dbsCheck) && placementNotEnded && awaitingProviderInsurance) {
45
+ flags.includes("awaitingDbsCheck") || flags.push("awaitingDbsCheck");
46
+ }
47
+ else {
48
+ flags = flags.filter((x) => x !== "awaitingDbsCheck");
49
+ }
50
+ if (user.userType === "Staff" && user.product === "institutes" && placement.riskAssessment && workflow.find((stage) => stage.riskAssessment) && placement.riskAssessment !== true && placementIsPostProviderReview && placementNotEnded && riskAssessmentNotVerified && !awaitingRiskAssessment) {
51
+ console.log("Add RA flag!");
52
+ flags.includes("noRiskAssessment") || flags.push("noRiskAssessment");
53
+ }
54
+ else {
55
+ flags = flags.filter((x) => x !== "noRiskAssessment");
56
+ }
57
+ if (user.userType === "Staff" && user.product === "institutes" && placementIsPostProviderReview && workflow.find((stage) => stage.riskAssessment) && placementNotEnded && awaitingProviderInsurance) {
58
+ flags.includes("awaitingRiskAssessment") || flags.push("awaitingRiskAssessment");
59
+ }
60
+ else {
61
+ flags = flags.filter((x) => x !== "awaitingRiskAssessment");
62
+ }
63
+ if (placement.inProgress && user.userType === "Staff" && user.product === "providers" && user.oId === placement.providerId && placement.onboarding === null) {
64
+ flags.includes("addOnboarding") || flags.push("addOnboarding");
65
+ }
66
+ else {
67
+ flags = flags.filter((x) => x !== "addOnboarding");
68
+ }
69
+ if (placement.inProgress && user.userType === "Staff" && user.product === "providers" && user.oId === placement.providerId && placement.onboarding && (((_h = placement.onboarding.completed) === null || _h === void 0 ? void 0 : _h.submitted) && !placement.onboarding.completed.accepted) && (placement.inProgress || placement.active)) {
70
+ flags.includes("reviewOnboarding") || flags.push("reviewOnboarding");
71
+ }
72
+ else {
73
+ flags = flags.filter((x) => x !== "reviewOnboarding");
74
+ }
75
+ if (placement.inProgress && user.userType === "Students" && placement.onboarding && (!placement.onboarding.completed || (placement.onboarding.completed && !((_j = placement.onboarding.completed) === null || _j === void 0 ? void 0 : _j.submitted))) && (placement.inProgress || placement.active)) {
76
+ flags.includes("completeOnboarding") || flags.push("completeOnboarding");
77
+ }
78
+ else {
79
+ flags = flags.filter((x) => x !== "completeOnboarding");
38
80
  }
39
81
  return flags;
40
82
  };
41
83
  exports.getPlacementFlagCodes = getPlacementFlagCodes;
84
+ function objectsEqualNew(a, b) {
85
+ if (a === b) {
86
+ return true;
87
+ }
88
+ if (typeof a !== typeof b) {
89
+ return false;
90
+ }
91
+ if (Array.isArray(a) && Array.isArray(b)) {
92
+ if (a.length !== b.length) {
93
+ return false;
94
+ }
95
+ for (let i = 0; i < a.length; i++) {
96
+ if (!objectsEqualNew(a[i], b[i])) {
97
+ return false;
98
+ }
99
+ }
100
+ return true;
101
+ }
102
+ if (typeof a === "object" && typeof b === "object" && a !== null && b !== null) {
103
+ const keysA = Object.keys(a);
104
+ const keysB = Object.keys(b);
105
+ if (keysA.length !== keysB.length) {
106
+ return false;
107
+ }
108
+ for (const key of keysA) {
109
+ if (!keysB.includes(key)) {
110
+ return false;
111
+ }
112
+ if (!objectsEqualNew(a[key], b[key])) {
113
+ return false;
114
+ }
115
+ }
116
+ return true;
117
+ }
118
+ return false;
119
+ }
42
120
  //# sourceMappingURL=util.js.map
package/lib/util.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";;;AA+FA,0CAyCC;AA9HM,MAAM,qBAAqB,GAAG,CAAC,EAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAS,EAAE,EAAE;;IACjG,IAAI,KAAK,GAAe,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC;IAG9C,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC;QACtF,IAAI,CAAA,MAAA,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,SAAS,CAAC,MAAM,CAAC,0CAAE,QAAQ,MAAK,QAAQ,EAAE,CAAC;YAC7E,KAAK,CAAC,QAAQ,CAAC,sBAAsB,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC/E,CAAC;aAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,EAAE,CAAC;YAC3D,KAAK,CAAC,QAAQ,CAAC,sBAAsB,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC/E,CAAC;IACL,CAAC;IAED,sDAAsD;IACtD,MAAM,6BAA6B,GAAG,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;IAC/F,MAAM,iBAAiB,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;IACpF,MAAM,kBAAkB,GAAG,SAAS,CAAC,UAAU,IAAI,CAAC,CAAA,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,iBAAiB,0CAAE,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA,CAAC;IACjH,MAAM,yBAAyB,GAAG,SAAS,CAAC,UAAU,KAAI,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,yBAAyB,0CAAE,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA,CAAC;IAE/H,MAAM,yBAAyB,GAAG,CAAC,CAAA,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,uBAAuB,0CAAE,QAAQ,CAAC,SAAS,CAAC,WAAW,IAAI,SAAS,CAAC,EAAE,CAAC,CAAA,CAAC;IACvH,MAAM,sBAAsB,GAAG,CAAC,SAAS,CAAC,cAAc,KAAI,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,gCAAgC,0CAAE,QAAQ,CAAC,SAAS,CAAC,WAAW,IAAI,SAAS,CAAC,EAAE,CAAC,CAAA,CAAC;IAEzJ,MAAM,mBAAmB,GAAG,CAAC,CAAA,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,iBAAiB,0CAAE,QAAQ,CAAC,SAAS,CAAC,WAAW,IAAI,SAAS,CAAC,EAAE,CAAC,CAAA,CAAC;IAC3G,MAAM,gBAAgB,GAAG,CAAC,SAAS,CAAC,QAAQ,KAAI,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,0BAA0B,0CAAE,QAAQ,CAAC,SAAS,CAAC,WAAW,IAAI,SAAS,CAAC,EAAE,CAAC,CAAA,CAAC;IAEvI,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,IAAI,IAAI,CAAC,OAAO,KAAK,YAAY,IAAI,SAAS,CAAC,SAAS,IAAI,6BAA6B,IAAI,iBAAiB,IAAI,kBAAkB,IAAI,CAAC,yBAAyB,EAAE,CAAC;QAC9L,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACnC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC/D,CAAC;SAAM,CAAC;QACJ,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,aAAa,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,IAAI,IAAI,CAAC,OAAO,KAAK,YAAY,IAAI,6BAA6B,IAAI,iBAAiB,IAAI,yBAAyB,EAAE,CAAC;QAChJ,KAAK,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC3E,CAAC;SAAM,CAAC;QACJ,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,mBAAmB,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,IAAI,IAAI,CAAC,OAAO,KAAK,YAAY,IAAI,SAAS,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,QAAQ,KAAK,IAAI,IAAI,6BAA6B,IAAI,iBAAiB,IAAI,mBAAmB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAChQ,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC7D,CAAC;SAAM,CAAC;QACJ,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,IAAI,IAAI,CAAC,OAAO,KAAK,YAAY,IAAI,6BAA6B,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,iBAAiB,IAAI,yBAAyB,EAAE,CAAC;QAC5L,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACzE,CAAC;SAAM,CAAC;QACJ,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,kBAAkB,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,IAAI,IAAI,CAAC,OAAO,KAAK,YAAY,IAAI,SAAS,CAAC,cAAc,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,SAAS,CAAC,cAAc,KAAK,IAAI,IAAI,6BAA6B,IAAI,iBAAiB,IAAI,yBAAyB,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9R,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC5B,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACzE,CAAC;SAAM,CAAC;QACJ,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,kBAAkB,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,IAAI,IAAI,CAAC,OAAO,KAAK,YAAY,IAAI,6BAA6B,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,iBAAiB,IAAI,yBAAyB,EAAE,CAAC;QAClM,KAAK,CAAC,QAAQ,CAAC,wBAAwB,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACrF,CAAC;SAAM,CAAC;QACJ,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,wBAAwB,CAAC,CAAC;IAChE,CAAC;IAED,IAAI,SAAS,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,IAAI,IAAI,CAAC,OAAO,KAAK,WAAW,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,UAAU,IAAI,SAAS,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;QAC1J,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACnE,CAAC;SAAM,CAAC;QACJ,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,eAAe,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,SAAS,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,IAAI,IAAI,CAAC,OAAO,KAAK,WAAW,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,UAAU,IAAI,SAAS,CAAC,UAAU,IAAI,CAAC,CAAA,MAAA,SAAS,CAAC,UAAU,CAAC,SAAS,0CAAE,SAAS,KAAI,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1R,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACzE,CAAC;SAAM,CAAC;QACJ,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,kBAAkB,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,SAAS,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU,IAAI,SAAS,CAAC,UAAU,IAAI,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,IAAI,CAAC,CAAA,MAAA,SAAS,CAAC,UAAU,CAAC,SAAS,0CAAE,SAAS,CAAA,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QACpP,KAAK,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAC7E,CAAC;SAAM,CAAC;QACJ,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,oBAAoB,CAAC,CAAC;IAC5D,CAAC;IAGD,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAlFW,QAAA,qBAAqB,yBAkFhC;AAGF,SAAgB,eAAe,CAAC,CAAM,EAAE,CAAM;IAC1C,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACV,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,OAAO,CAAC,KAAK,OAAO,CAAC,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/B,OAAO,KAAK,CAAC;YACjB,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QAC7E,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAE7B,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;YAChC,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvB,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACnC,OAAO,KAAK,CAAC;YACjB,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC"}
package/package.json CHANGED
@@ -1,49 +1,52 @@
1
- {
2
- "private": false,
3
- "name": "placementt-core",
4
- "author": "Placementt",
5
- "version": "1.20.211",
6
- "main": "lib/index.js",
7
- "types": "lib/index.d.ts",
8
- "scripts": {
9
- "lint": "eslint --ext .js,.ts .",
10
- "prebuild": "rimraf build",
11
- "build": "tsc",
12
- "prestart": "rimraf build",
13
- "start": "tsc -w",
14
- "pack": "yarn pack",
15
- "deploy": "tsc && yarn publish"
16
- },
17
- "dependencies": {
18
- "@react-native-async-storage/async-storage": "^1.21.0",
19
- "@reduxjs/toolkit": "^1.9.7",
20
- "@types/jest": "29.5.0",
21
- "@types/ngeohash": "0.6.4",
22
- "@types/react": "18.0.29",
23
- "firebase": "9.16.0",
24
- "fs": "^0.0.1-security",
25
- "jest": "29.5.0",
26
- "ngeohash": "^0.6.3",
27
- "path": "^0.12.7",
28
- "placementt-prisma": "1.0.2",
29
- "react": "18.2.0",
30
- "react-dom": "18.2.0",
31
- "react-redux": "^8.1.3",
32
- "redux-persist": "^6.0.0",
33
- "slate": "^0.84.0",
34
- "slate-history": "^0.66.0",
35
- "slate-react": "^0.83.2",
36
- "ts-jest": "29.1.0",
37
- "typescript": "^5.3.3"
38
- },
39
- "devDependencies": {
40
- "npm-run-all": "^4.1.5",
41
- "rimraf": "^3.0.2"
42
- },
43
- "resolutions": {
44
- "@types/react": "18.0.29"
45
- },
46
- "engines": {
47
- "node": "18"
48
- }
49
- }
1
+ {
2
+ "private": false,
3
+ "name": "placementt-core",
4
+ "author": "Placementt",
5
+ "version": "11.10.151",
6
+ "main": "lib/index.js",
7
+ "types": "lib/index.d.ts",
8
+ "scripts": {
9
+ "lint": "eslint --ext .js,.ts .",
10
+ "prebuild": "rimraf build",
11
+ "build": "tsc",
12
+ "prestart": "rimraf build",
13
+ "start": "tsc -w",
14
+ "pack": "yarn pack",
15
+ "deploy": "tsc && yarn publish"
16
+ },
17
+ "dependencies": {
18
+ "@react-native-async-storage/async-storage": "1.19.3",
19
+ "@reduxjs/toolkit": "^1.9.7",
20
+ "@types/jest": "29.5.0",
21
+ "@types/ngeohash": "0.6.4",
22
+ "@types/react": "18.0.29",
23
+ "algoliasearch": "^4.23.3",
24
+ "firebase": "9.16.0",
25
+ "html2canvas": "^1.4.1",
26
+ "jest": "29.5.0",
27
+ "jspdf": "^2.5.1",
28
+ "ngeohash": "^0.6.3",
29
+ "path": "^0.12.7",
30
+ "placementt-core": "1.0.525",
31
+ "placementt-prisma": "1.0.2",
32
+ "react": "18.2.0",
33
+ "react-dom": "18.2.0",
34
+ "react-redux": "^8.1.3",
35
+ "redux-persist": "^6.0.0",
36
+ "slate": "^0.84.0",
37
+ "slate-history": "^0.66.0",
38
+ "slate-react": "^0.83.2",
39
+ "ts-jest": "29.1.0",
40
+ "typescript": "^5.3.3"
41
+ },
42
+ "devDependencies": {
43
+ "npm-run-all": "^4.1.5",
44
+ "rimraf": "^3.0.2"
45
+ },
46
+ "resolutions": {
47
+ "@types/react": "18.0.29"
48
+ },
49
+ "engines": {
50
+ "node": "18"
51
+ }
52
+ }
@@ -1,19 +1,19 @@
1
- import {Addresses, Cohorts,
2
- Contacts, InstituteStudents, Institutes, Logs, PlacementListings, Placements, Providers,
3
- StudentUsers,
4
- InstituteStaff as InstituteStaffObj,
5
- ProviderStaff as ProviderStaffObj,} from "placementt-prisma"
6
-
7
-
8
- export type PrismaAddress = Addresses
9
- export type PrismaCohort = Cohorts
10
- export type PrismaContact = Contacts
11
- export type PrismaInstitute = Institutes
12
- export type PrismaLog = Logs
13
- export type PrismaPlacementListing = PlacementListings
14
- export type PrismaPlacement = Placements
15
- export type PrismaProvider = Providers
16
- export type PrismaStudentUser = StudentUsers
17
- export type PrismaInstituteStaff = InstituteStaffObj
18
- export type PrismaInstituteStudent = InstituteStudents
1
+ import {Addresses, Cohorts,
2
+ Contacts, InstituteStudents, Institutes, Logs, PlacementListings, Placements, Providers,
3
+ StudentUsers,
4
+ InstituteStaff as InstituteStaffObj,
5
+ ProviderStaff as ProviderStaffObj,} from "placementt-prisma"
6
+
7
+
8
+ export type PrismaAddress = Addresses
9
+ export type PrismaCohort = Cohorts
10
+ export type PrismaContact = Contacts
11
+ export type PrismaInstitute = Institutes
12
+ export type PrismaLog = Logs
13
+ export type PrismaPlacementListing = PlacementListings
14
+ export type PrismaPlacement = Placements
15
+ export type PrismaProvider = Providers
16
+ export type PrismaStudentUser = StudentUsers
17
+ export type PrismaInstituteStaff = InstituteStaffObj
18
+ export type PrismaInstituteStudent = InstituteStudents
19
19
  export type PrismaProviderStaff = ProviderStaffObj
package/src/apiCalls.ts CHANGED
@@ -1,128 +1,128 @@
1
- import {Auth} from "firebase/auth";
2
- import {Contact} from "./typeDefinitions";
3
-
4
- export const initializeToken = async (auth: Auth) => {
5
- try {
6
- const user = auth.currentUser;
7
- if (user) {
8
- const token = await user.getIdToken();
9
- console.log("this is the token###",token);
10
- return token;
11
- } else {
12
- console.error("User is not signed in.");
13
- return null;
14
- }
15
- } catch (error) {
16
- console.error("Error initializing token:", error);
17
- return null;
18
- }
19
- };
20
-
21
- export class API {
22
- private rootURL: string;
23
- private auth: Auth;
24
-
25
-
26
- constructor(auth: Auth, type?:string) {
27
- if (type === "local") {
28
- this.rootURL = "localhost:3006";
29
- } else {
30
- this.rootURL = "placemmentt.co.uk";
31
- }
32
- this.auth = auth;
33
- }
34
-
35
-
36
- async getContact(id: string): Promise<Contact | undefined> {
37
- const token = await initializeToken(this.auth);
38
-
39
- try {
40
- const response = await fetch(`${this.rootURL}/api/contacts/getContacts/${id}`, {
41
- method: "GET",
42
- headers: {
43
- "Authorization": `Bearer ${token}`,
44
- "Content-Type": "application/json",
45
- },
46
- });
47
- return (await response.json()) as Contact;
48
- } catch (error) {
49
- console.log(error);
50
- }
51
- return undefined;
52
- }
53
-
54
- async addContact(details:Contact) {
55
- const token = await initializeToken(this.auth);
56
-
57
- try {
58
- const response = await fetch(`${this.rootURL}/api/contacts/addContact`, {
59
- method: "POST",
60
- headers: {
61
- "Authorization": `Bearer ${token}`,
62
- "Content-Type": "application/json",
63
- },
64
- body: JSON.stringify(details ),
65
- });
66
- return (await response.json());
67
- } catch (error) {
68
- console.log(error);
69
- }
70
- }
71
-
72
- async update_contact(id:string, details:Contact, Constraint:string) {
73
- const token = await initializeToken(this.auth);
74
-
75
- try {
76
- const response = await fetch(`${this.rootURL}/api/contacts/update/${id}`, {
77
- method: "PUT",
78
- headers: {
79
- "Authorization": `Bearer ${token}`,
80
- "Content-Type": "application/json",
81
- },
82
- body: JSON.stringify({
83
- details: details,
84
- constraint: Constraint,
85
- } ),
86
- });
87
- return (await response.json());
88
- } catch (error) {
89
- console.log(error);
90
- }
91
- }
92
-
93
- async delete_contact(contactid:string) {
94
- const token = await initializeToken(this.auth);
95
-
96
- try {
97
- const response = await fetch(`${this.rootURL}/api/contacts/delete}`, {
98
- headers: {
99
- "Authorization": `Bearer ${token}`,
100
- "Content-Type": "application/json",
101
- },
102
- body: JSON.stringify({
103
- contactid: contactid,
104
- } ),
105
- });
106
- return (await response.json());
107
- } catch (error) {
108
- console.log(error);
109
- }
110
- }
111
- async get_placements(id:string) {
112
- const token = await initializeToken(this.auth);
113
-
114
- try {
115
- const response = await fetch(`${this.rootURL}/api/contacts/getPlacements/${id}`, {
116
- method: "GET",
117
- headers: {
118
- "Authorization": `Bearer ${token}`,
119
- "Content-Type": "application/json",
120
- },
121
- });
122
- return (await response.json()) as Contact;
123
- } catch (error) {
124
- console.log(error);
125
- }
126
- return undefined;
127
- }
128
- }
1
+ import {Auth} from "firebase/auth";
2
+ import {Contact} from "./typeDefinitions";
3
+
4
+ export const initializeToken = async (auth: Auth) => {
5
+ try {
6
+ const user = auth.currentUser;
7
+ if (user) {
8
+ const token = await user.getIdToken();
9
+ console.log("this is the token###",token);
10
+ return token;
11
+ } else {
12
+ console.error("User is not signed in.");
13
+ return null;
14
+ }
15
+ } catch (error) {
16
+ console.error("Error initializing token:", error);
17
+ return null;
18
+ }
19
+ };
20
+
21
+ export class API {
22
+ private rootURL: string;
23
+ private auth: Auth;
24
+
25
+
26
+ constructor(auth: Auth, type?:string) {
27
+ if (type === "local") {
28
+ this.rootURL = "localhost:3006";
29
+ } else {
30
+ this.rootURL = "placemmentt.co.uk";
31
+ }
32
+ this.auth = auth;
33
+ }
34
+
35
+
36
+ async getContact(id: string): Promise<Contact | undefined> {
37
+ const token = await initializeToken(this.auth);
38
+
39
+ try {
40
+ const response = await fetch(`${this.rootURL}/api/contacts/getContacts/${id}`, {
41
+ method: "GET",
42
+ headers: {
43
+ "Authorization": `Bearer ${token}`,
44
+ "Content-Type": "application/json",
45
+ },
46
+ });
47
+ return (await response.json()) as Contact;
48
+ } catch (error) {
49
+ console.log(error);
50
+ }
51
+ return undefined;
52
+ }
53
+
54
+ async addContact(details:Contact) {
55
+ const token = await initializeToken(this.auth);
56
+
57
+ try {
58
+ const response = await fetch(`${this.rootURL}/api/contacts/addContact`, {
59
+ method: "POST",
60
+ headers: {
61
+ "Authorization": `Bearer ${token}`,
62
+ "Content-Type": "application/json",
63
+ },
64
+ body: JSON.stringify(details ),
65
+ });
66
+ return (await response.json());
67
+ } catch (error) {
68
+ console.log(error);
69
+ }
70
+ }
71
+
72
+ async update_contact(id:string, details:Contact, Constraint:string) {
73
+ const token = await initializeToken(this.auth);
74
+
75
+ try {
76
+ const response = await fetch(`${this.rootURL}/api/contacts/update/${id}`, {
77
+ method: "PUT",
78
+ headers: {
79
+ "Authorization": `Bearer ${token}`,
80
+ "Content-Type": "application/json",
81
+ },
82
+ body: JSON.stringify({
83
+ details: details,
84
+ constraint: Constraint,
85
+ } ),
86
+ });
87
+ return (await response.json());
88
+ } catch (error) {
89
+ console.log(error);
90
+ }
91
+ }
92
+
93
+ async delete_contact(contactid:string) {
94
+ const token = await initializeToken(this.auth);
95
+
96
+ try {
97
+ const response = await fetch(`${this.rootURL}/api/contacts/delete}`, {
98
+ headers: {
99
+ "Authorization": `Bearer ${token}`,
100
+ "Content-Type": "application/json",
101
+ },
102
+ body: JSON.stringify({
103
+ contactid: contactid,
104
+ } ),
105
+ });
106
+ return (await response.json());
107
+ } catch (error) {
108
+ console.log(error);
109
+ }
110
+ }
111
+ async get_placements(id:string) {
112
+ const token = await initializeToken(this.auth);
113
+
114
+ try {
115
+ const response = await fetch(`${this.rootURL}/api/contacts/getPlacements/${id}`, {
116
+ method: "GET",
117
+ headers: {
118
+ "Authorization": `Bearer ${token}`,
119
+ "Content-Type": "application/json",
120
+ },
121
+ });
122
+ return (await response.json()) as Contact;
123
+ } catch (error) {
124
+ console.log(error);
125
+ }
126
+ return undefined;
127
+ }
128
+ }