@primocaredentgroup/prescriptions-component 0.1.5 → 0.1.6

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 (33) hide show
  1. package/README.md +16 -0
  2. package/dist/convex/lib/auth.d.ts +5 -0
  3. package/dist/convex/lib/auth.d.ts.map +1 -1
  4. package/dist/convex/lib/auth.js +36 -0
  5. package/dist/convex/lib/auth.js.map +1 -1
  6. package/dist/convex/mutations/digitalAssets.d.ts.map +1 -1
  7. package/dist/convex/mutations/digitalAssets.js +20 -61
  8. package/dist/convex/mutations/digitalAssets.js.map +1 -1
  9. package/dist/convex/mutations/operational.d.ts.map +1 -1
  10. package/dist/convex/mutations/operational.js +19 -54
  11. package/dist/convex/mutations/operational.js.map +1 -1
  12. package/dist/convex/mutations/phases.d.ts.map +1 -1
  13. package/dist/convex/mutations/phases.js +20 -52
  14. package/dist/convex/mutations/phases.js.map +1 -1
  15. package/dist/convex/mutations/prescriptions.d.ts.map +1 -1
  16. package/dist/convex/mutations/prescriptions.js +80 -229
  17. package/dist/convex/mutations/prescriptions.js.map +1 -1
  18. package/dist/convex/mutations/syncJobs.d.ts.map +1 -1
  19. package/dist/convex/mutations/syncJobs.js +6 -16
  20. package/dist/convex/mutations/syncJobs.js.map +1 -1
  21. package/dist/convex/prescriptions/fields.d.ts.map +1 -1
  22. package/dist/convex/prescriptions/fields.js +6 -7
  23. package/dist/convex/prescriptions/fields.js.map +1 -1
  24. package/dist/convex/queries/dynamicFields.d.ts.map +1 -1
  25. package/dist/convex/queries/dynamicFields.js +2 -3
  26. package/dist/convex/queries/dynamicFields.js.map +1 -1
  27. package/dist/convex/schema.d.ts +2 -2
  28. package/dist/convex/schema.d.ts.map +1 -1
  29. package/dist/convex/schema.js +2 -2
  30. package/dist/convex/schema.js.map +1 -1
  31. package/dist/convex/types.d.ts +1 -1
  32. package/dist/convex/types.d.ts.map +1 -1
  33. package/package.json +1 -1
package/README.md CHANGED
@@ -28,6 +28,14 @@ Nel progetto host Convex, registra il componente puntando a:
28
28
 
29
29
  Gli endpoint dev-only (seed/migrazioni) non sono esportati dal surface pubblico del pacchetto.
30
30
 
31
+ ## Autorizzazione Embedded
32
+
33
+ In modalita` embedded, il componente richiede solo un'identita` valida (token) e non usa piu` la tabella interna `users` come gate RBAC business.
34
+
35
+ - RBAC e policy di accesso applicative sono demandate all'host (PrimoCore).
36
+ - Il componente continua a registrare audit events con actor derivato dall'identita` host.
37
+ - Se il token e` assente o invalido, ritorna `UNAUTHORIZED`.
38
+
31
39
  ## Uso React Widget con Auth0 (`getAccessToken`)
32
40
 
33
41
  ```tsx
@@ -82,3 +90,11 @@ npm publish --access public
82
90
  ```
83
91
 
84
92
  `prepublishOnly` esegue automaticamente `npm run build` e blocca la publish in caso di errore.
93
+
94
+ ## Test manuali embedded (checklist)
95
+
96
+ - Host autenticato (token valido) senza record nella tabella `users`: `createDraft` deve completare con successo.
97
+ - Token mancante/invalido: le mutation business devono fallire con `UNAUTHORIZED`.
98
+ - Invarianti dominio invariati:
99
+ - idempotenza `createFromCalendar` su `idempotencyKey` (seconda chiamata non crea duplicato),
100
+ - vincolo "una sola prescrizione attiva per `pdcItemId`" ancora attivo.
@@ -1,6 +1,11 @@
1
1
  import type { QueryCtx, MutationCtx } from "../_generated/server";
2
2
  import type { Doc } from "../_generated/dataModel";
3
3
  type Ctx = QueryCtx | MutationCtx;
4
+ export type IdentityPrincipal = {
5
+ subject: string;
6
+ email?: string;
7
+ };
8
+ export declare function requireIdentityOrThrow(ctx: Ctx): Promise<IdentityPrincipal>;
4
9
  export declare function requireIdentityUser(ctx: Ctx): Promise<Doc<"users">>;
5
10
  export declare function assertPrescriptionAccess(user: Doc<"users">, prescription: Doc<"prescriptions">): void;
6
11
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../convex/lib/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAEnD,KAAK,GAAG,GAAG,QAAQ,GAAG,WAAW,CAAC;AAYlC,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAqBzE;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,GAAG,CAAC,eAAe,CAAC,GAAG,IAAI,CAOrG"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../convex/lib/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAGnD,KAAK,GAAG,GAAG,QAAQ,GAAG,WAAW,CAAC;AAuBlC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,wBAAsB,sBAAsB,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAsBjF;AAGD,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAqBzE;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,GAAG,CAAC,eAAe,CAAC,GAAG,IAAI,CAOrG"}
@@ -1,3 +1,4 @@
1
+ import { ConvexError } from "convex/values";
1
2
  function extractIdentityEmail(identity) {
2
3
  if (typeof identity.email === "string" && identity.email.length > 0)
3
4
  return identity.email;
@@ -9,6 +10,41 @@ function extractIdentityEmail(identity) {
9
10
  }
10
11
  return undefined;
11
12
  }
13
+ function extractIdentitySubject(identity) {
14
+ if (typeof identity.subject === "string" && identity.subject.length > 0)
15
+ return identity.subject;
16
+ if (typeof identity.tokenIdentifier === "string" && identity.tokenIdentifier.length > 0)
17
+ return identity.tokenIdentifier;
18
+ const claims = identity["claims"];
19
+ if (claims && typeof claims === "object") {
20
+ const sub = claims["sub"];
21
+ if (typeof sub === "string" && sub.length > 0)
22
+ return sub;
23
+ }
24
+ return undefined;
25
+ }
26
+ export async function requireIdentityOrThrow(ctx) {
27
+ const identity = await ctx.auth.getUserIdentity();
28
+ if (!identity) {
29
+ throw new ConvexError({
30
+ code: "UNAUTHORIZED",
31
+ message: "Accesso non autorizzato",
32
+ });
33
+ }
34
+ const rawIdentity = identity;
35
+ const subject = extractIdentitySubject(rawIdentity);
36
+ if (!subject) {
37
+ throw new ConvexError({
38
+ code: "UNAUTHORIZED",
39
+ message: "Accesso non autorizzato",
40
+ });
41
+ }
42
+ return {
43
+ subject,
44
+ email: extractIdentityEmail(rawIdentity),
45
+ };
46
+ }
47
+ // DEPRECATED (embedded mode): prefer requireIdentityOrThrow in business mutations.
12
48
  export async function requireIdentityUser(ctx) {
13
49
  const identity = await ctx.auth.getUserIdentity();
14
50
  if (!identity) {
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../convex/lib/auth.ts"],"names":[],"mappings":"AAKA,SAAS,oBAAoB,CAAC,QAAoD;IAChF,IAAI,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,QAAQ,CAAC,KAAK,CAAC;IAC3F,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAClC,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QACzC,MAAM,KAAK,GAAI,MAAkC,CAAC,OAAO,CAAC,CAAC;QAC3D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;IAClE,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,GAAQ;IAChD,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;IAClD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,KAAK,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAC7C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,EAAE;SACtB,KAAK,CAAC,OAAO,CAAC;SACd,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;SAClD,KAAK,EAAE,CAAC;IAEX,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,IAAkB,EAAE,YAAkC;IAC7F,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,KAAK,OAAO,IAAI,IAAI,CAAC,SAAS,KAAK,YAAY,CAAC;IACrF,IAAI,cAAc;QAAE,OAAO;IAE3B,IAAI,IAAI,CAAC,QAAQ,KAAK,YAAY,CAAC,QAAQ,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;IAC/E,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../convex/lib/auth.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"digitalAssets.d.ts","sourceRoot":"","sources":["../../../convex/mutations/digitalAssets.ts"],"names":[],"mappings":"AAiBA;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;;;GAmC/B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;GA8E3B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;GAqExB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,mBAAmB;;;;;GA2D9B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;GAyD/B,CAAC"}
1
+ {"version":3,"file":"digitalAssets.d.ts","sourceRoot":"","sources":["../../../convex/mutations/digitalAssets.ts"],"names":[],"mappings":"AAiBA;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;;;GA4B/B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;GAwE3B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;GA+DxB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,mBAAmB;;;;;GAqD9B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;GAmD/B,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { mutation } from "../_generated/server";
2
- import { ConvexError, v } from "convex/values";
2
+ import { v } from "convex/values";
3
3
  import { generateUploadUrl, createDigitalAsset, validateFile, deleteFile, STORAGE_CONFIG, } from "../lib/storage";
4
- import { requireIdentityUser, assertPrescriptionAccess } from "../lib/auth";
4
+ import { requireIdentityOrThrow } from "../lib/auth";
5
5
  // ============================================
6
6
  // DIGITAL ASSETS MUTATIONS
7
7
  // ============================================
@@ -16,21 +16,12 @@ export const generateStlUploadUrl = mutation({
16
16
  prescriptionId: v.id("prescriptions"),
17
17
  },
18
18
  handler: async (ctx, args) => {
19
- let user;
20
- try {
21
- user = await requireIdentityUser(ctx);
22
- }
23
- catch (error) {
24
- if (error instanceof ConvexError)
25
- throw error;
26
- throw new ConvexError({ code: "UNAUTHORIZED", message: "Accesso non autorizzato" });
27
- }
19
+ await requireIdentityOrThrow(ctx);
28
20
  // 1. Verifica prescrizione
29
21
  const prescription = await ctx.db.get(args.prescriptionId);
30
22
  if (!prescription) {
31
23
  throw new Error("Prescrizione non trovata");
32
24
  }
33
- assertPrescriptionAccess(user, prescription);
34
25
  // 2. Verifica che sia in DRAFT
35
26
  if (prescription.status !== "DRAFT") {
36
27
  throw new Error("È possibile caricare file STL solo per prescrizioni in bozza");
@@ -60,21 +51,12 @@ export const confirmStlUpload = mutation({
60
51
  },
61
52
  handler: async (ctx, args) => {
62
53
  const now = Date.now();
63
- let user;
64
- try {
65
- user = await requireIdentityUser(ctx);
66
- }
67
- catch (error) {
68
- if (error instanceof ConvexError)
69
- throw error;
70
- throw new ConvexError({ code: "UNAUTHORIZED", message: "Accesso non autorizzato" });
71
- }
54
+ const identity = await requireIdentityOrThrow(ctx);
72
55
  // 1. Verifica prescrizione
73
56
  const prescription = await ctx.db.get(args.prescriptionId);
74
57
  if (!prescription) {
75
58
  throw new Error("Prescrizione non trovata");
76
59
  }
77
- assertPrescriptionAccess(user, prescription);
78
60
  // 2. Verifica stato
79
61
  if (prescription.status !== "DRAFT") {
80
62
  throw new Error("È possibile caricare file STL solo per prescrizioni in bozza");
@@ -90,7 +72,7 @@ export const confirmStlUpload = mutation({
90
72
  throw new Error(`Massimo ${STORAGE_CONFIG.maxFilesPerPrescription} file per prescrizione`);
91
73
  }
92
74
  // 6. Crea asset
93
- const asset = createDigitalAsset(args.storageId, args.fileName, args.fileSize, args.mimeType, user._id, args.description);
75
+ const asset = createDigitalAsset(args.storageId, args.fileName, args.fileSize, args.mimeType, identity.subject, args.description);
94
76
  // 7. Aggiorna prescrizione
95
77
  await ctx.db.patch(args.prescriptionId, {
96
78
  digitalAssets: [...currentAssets, asset],
@@ -103,13 +85,14 @@ export const confirmStlUpload = mutation({
103
85
  auditEventId: 0, // Will be backfilled
104
86
  prescriptionRef: args.prescriptionId,
105
87
  at: now,
106
- actorUserId: user._id,
107
- actorRole: user.role,
88
+ actorUserId: identity.subject,
89
+ actorRole: "HOST",
108
90
  type: "STL_UPLOADED",
109
91
  payload: {
110
92
  assetId: asset.assetId,
111
93
  fileName: asset.fileName,
112
94
  fileSize: asset.fileSize,
95
+ actorEmail: identity.email,
113
96
  },
114
97
  });
115
98
  return { success: true, asset };
@@ -125,21 +108,12 @@ export const deleteStlFile = mutation({
125
108
  },
126
109
  handler: async (ctx, args) => {
127
110
  const now = Date.now();
128
- let user;
129
- try {
130
- user = await requireIdentityUser(ctx);
131
- }
132
- catch (error) {
133
- if (error instanceof ConvexError)
134
- throw error;
135
- throw new ConvexError({ code: "UNAUTHORIZED", message: "Accesso non autorizzato" });
136
- }
111
+ const identity = await requireIdentityOrThrow(ctx);
137
112
  // 1. Verifica prescrizione
138
113
  const prescription = await ctx.db.get(args.prescriptionId);
139
114
  if (!prescription) {
140
115
  throw new Error("Prescrizione non trovata");
141
116
  }
142
- assertPrescriptionAccess(user, prescription);
143
117
  // 2. Verifica stato
144
118
  if (prescription.status !== "DRAFT") {
145
119
  throw new Error("È possibile eliminare file STL solo per prescrizioni in bozza");
@@ -168,12 +142,13 @@ export const deleteStlFile = mutation({
168
142
  auditEventId: 0, // Will be backfilled
169
143
  prescriptionRef: args.prescriptionId,
170
144
  at: now,
171
- actorUserId: user._id,
172
- actorRole: user.role,
145
+ actorUserId: identity.subject,
146
+ actorRole: "HOST",
173
147
  type: "STL_DELETED",
174
148
  payload: {
175
149
  assetId: args.assetId,
176
150
  fileName: asset.fileName,
151
+ actorEmail: identity.email,
177
152
  },
178
153
  });
179
154
  return { success: true };
@@ -190,21 +165,12 @@ export const setPrescriptionType = mutation({
190
165
  },
191
166
  handler: async (ctx, args) => {
192
167
  const now = Date.now();
193
- let user;
194
- try {
195
- user = await requireIdentityUser(ctx);
196
- }
197
- catch (error) {
198
- if (error instanceof ConvexError)
199
- throw error;
200
- throw new ConvexError({ code: "UNAUTHORIZED", message: "Accesso non autorizzato" });
201
- }
168
+ const identity = await requireIdentityOrThrow(ctx);
202
169
  // 1. Verifica prescrizione
203
170
  const prescription = await ctx.db.get(args.prescriptionId);
204
171
  if (!prescription) {
205
172
  throw new Error("Prescrizione non trovata");
206
173
  }
207
- assertPrescriptionAccess(user, prescription);
208
174
  // 2. Verifica stato
209
175
  if (prescription.status !== "DRAFT") {
210
176
  throw new Error("È possibile cambiare il tipo solo per prescrizioni in bozza");
@@ -228,12 +194,13 @@ export const setPrescriptionType = mutation({
228
194
  auditEventId: 0, // Will be backfilled
229
195
  prescriptionRef: args.prescriptionId,
230
196
  at: now,
231
- actorUserId: user._id,
232
- actorRole: user.role,
197
+ actorUserId: identity.subject,
198
+ actorRole: "HOST",
233
199
  type: "PRESCRIPTION_TYPE_CHANGED",
234
200
  payload: {
235
201
  previousType: prescription.prescriptionType || "ANALOG",
236
202
  newType: args.prescriptionType,
203
+ actorEmail: identity.email,
237
204
  },
238
205
  });
239
206
  return { success: true };
@@ -250,21 +217,12 @@ export const updateStlDescription = mutation({
250
217
  },
251
218
  handler: async (ctx, args) => {
252
219
  const now = Date.now();
253
- let user;
254
- try {
255
- user = await requireIdentityUser(ctx);
256
- }
257
- catch (error) {
258
- if (error instanceof ConvexError)
259
- throw error;
260
- throw new ConvexError({ code: "UNAUTHORIZED", message: "Accesso non autorizzato" });
261
- }
220
+ const identity = await requireIdentityOrThrow(ctx);
262
221
  // 1. Verifica prescrizione
263
222
  const prescription = await ctx.db.get(args.prescriptionId);
264
223
  if (!prescription) {
265
224
  throw new Error("Prescrizione non trovata");
266
225
  }
267
- assertPrescriptionAccess(user, prescription);
268
226
  // 2. Verifica stato
269
227
  if (prescription.status !== "DRAFT") {
270
228
  throw new Error("È possibile modificare solo prescrizioni in bozza");
@@ -284,11 +242,12 @@ export const updateStlDescription = mutation({
284
242
  auditEventId: 0,
285
243
  prescriptionRef: args.prescriptionId,
286
244
  at: now,
287
- actorUserId: user._id,
288
- actorRole: user.role,
245
+ actorUserId: identity.subject,
246
+ actorRole: "HOST",
289
247
  type: "STL_DESCRIPTION_UPDATED",
290
248
  payload: {
291
249
  assetId: args.assetId,
250
+ actorEmail: identity.email,
292
251
  },
293
252
  });
294
253
  return { success: true };
@@ -1 +1 @@
1
- {"version":3,"file":"digitalAssets.js","sourceRoot":"","sources":["../../../convex/mutations/digitalAssets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"digitalAssets.js","sourceRoot":"","sources":["../../../convex/mutations/digitalAssets.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"operational.d.ts","sourceRoot":"","sources":["../../../convex/mutations/operational.ts"],"names":[],"mappings":"AAQA;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;GAuDtB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;;GAmExB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;GAkD3B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;GAkDtB,CAAC"}
1
+ {"version":3,"file":"operational.d.ts","sourceRoot":"","sources":["../../../convex/mutations/operational.ts"],"names":[],"mappings":"AAQA;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;GAgDtB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;;GA6DxB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;GA2C3B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;GA2CtB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { mutation } from "../_generated/server";
2
- import { ConvexError, v } from "convex/values";
3
- import { requireIdentityUser, assertPrescriptionAccess } from "../lib/auth";
2
+ import { v } from "convex/values";
3
+ import { requireIdentityOrThrow } from "../lib/auth";
4
4
  // ============================================
5
5
  // OPERATIONAL DATA MUTATIONS
6
6
  // ============================================
@@ -14,21 +14,12 @@ export const updateNotes = mutation({
14
14
  },
15
15
  handler: async (ctx, args) => {
16
16
  const now = Date.now();
17
- let user;
18
- try {
19
- user = await requireIdentityUser(ctx);
20
- }
21
- catch (error) {
22
- if (error instanceof ConvexError)
23
- throw error;
24
- throw new ConvexError({ code: "UNAUTHORIZED", message: "Accesso non autorizzato" });
25
- }
17
+ const identity = await requireIdentityOrThrow(ctx);
26
18
  // 1. Verifica prescrizione/accesso
27
19
  const prescription = await ctx.db.get(args.prescriptionId);
28
20
  if (!prescription) {
29
21
  throw new Error("Prescrizione non trovata");
30
22
  }
31
- assertPrescriptionAccess(user, prescription);
32
23
  // 2. Carica o crea operational data
33
24
  let opData = await ctx.db
34
25
  .query("operationalData")
@@ -51,10 +42,10 @@ export const updateNotes = mutation({
51
42
  auditEventId: 0, // Will be backfilled
52
43
  prescriptionRef: args.prescriptionId,
53
44
  at: now,
54
- actorUserId: user._id,
55
- actorRole: user.role,
45
+ actorUserId: identity.subject,
46
+ actorRole: "HOST",
56
47
  type: "OPERATIONAL_NOTES_UPDATED",
57
- payload: {},
48
+ payload: { actorEmail: identity.email },
58
49
  });
59
50
  return { success: true };
60
51
  },
@@ -70,21 +61,12 @@ export const addAttachment = mutation({
70
61
  },
71
62
  handler: async (ctx, args) => {
72
63
  const now = Date.now();
73
- let user;
74
- try {
75
- user = await requireIdentityUser(ctx);
76
- }
77
- catch (error) {
78
- if (error instanceof ConvexError)
79
- throw error;
80
- throw new ConvexError({ code: "UNAUTHORIZED", message: "Accesso non autorizzato" });
81
- }
64
+ const identity = await requireIdentityOrThrow(ctx);
82
65
  // 1. Verifica prescrizione/accesso
83
66
  const prescription = await ctx.db.get(args.prescriptionId);
84
67
  if (!prescription) {
85
68
  throw new Error("Prescrizione non trovata");
86
69
  }
87
- assertPrescriptionAccess(user, prescription);
88
70
  // 2. Carica o crea operational data
89
71
  let opData = await ctx.db
90
72
  .query("operationalData")
@@ -94,7 +76,7 @@ export const addAttachment = mutation({
94
76
  fileId: args.fileId,
95
77
  fileName: args.fileName,
96
78
  uploadedAt: now,
97
- uploadedBy: user._id,
79
+ uploadedBy: identity.subject,
98
80
  };
99
81
  if (opData) {
100
82
  const allegati = opData.allegati ?? [];
@@ -114,12 +96,13 @@ export const addAttachment = mutation({
114
96
  auditEventId: 0, // Will be backfilled
115
97
  prescriptionRef: args.prescriptionId,
116
98
  at: now,
117
- actorUserId: user._id,
118
- actorRole: user.role,
99
+ actorUserId: identity.subject,
100
+ actorRole: "HOST",
119
101
  type: "ATTACHMENT_ADDED",
120
102
  payload: {
121
103
  fileId: args.fileId,
122
104
  fileName: args.fileName,
105
+ actorEmail: identity.email,
123
106
  },
124
107
  });
125
108
  return { success: true };
@@ -135,21 +118,12 @@ export const removeAttachment = mutation({
135
118
  },
136
119
  handler: async (ctx, args) => {
137
120
  const now = Date.now();
138
- let user;
139
- try {
140
- user = await requireIdentityUser(ctx);
141
- }
142
- catch (error) {
143
- if (error instanceof ConvexError)
144
- throw error;
145
- throw new ConvexError({ code: "UNAUTHORIZED", message: "Accesso non autorizzato" });
146
- }
121
+ const identity = await requireIdentityOrThrow(ctx);
147
122
  // 1. Verifica prescrizione/accesso
148
123
  const prescription = await ctx.db.get(args.prescriptionId);
149
124
  if (!prescription) {
150
125
  throw new Error("Prescrizione non trovata");
151
126
  }
152
- assertPrescriptionAccess(user, prescription);
153
127
  // 2. Carica operational data
154
128
  const opData = await ctx.db
155
129
  .query("operationalData")
@@ -165,10 +139,10 @@ export const removeAttachment = mutation({
165
139
  auditEventId: 0, // Will be backfilled
166
140
  prescriptionRef: args.prescriptionId,
167
141
  at: now,
168
- actorUserId: user._id,
169
- actorRole: user.role,
142
+ actorUserId: identity.subject,
143
+ actorRole: "HOST",
170
144
  type: "ATTACHMENT_REMOVED",
171
- payload: { fileId: args.fileId },
145
+ payload: { fileId: args.fileId, actorEmail: identity.email },
172
146
  });
173
147
  return { success: true };
174
148
  },
@@ -183,20 +157,11 @@ export const saveUiState = mutation({
183
157
  },
184
158
  handler: async (ctx, args) => {
185
159
  const now = Date.now();
186
- let user;
187
- try {
188
- user = await requireIdentityUser(ctx);
189
- }
190
- catch (error) {
191
- if (error instanceof ConvexError)
192
- throw error;
193
- throw new ConvexError({ code: "UNAUTHORIZED", message: "Accesso non autorizzato" });
194
- }
160
+ const identity = await requireIdentityOrThrow(ctx);
195
161
  const prescription = await ctx.db.get(args.prescriptionId);
196
162
  if (!prescription) {
197
163
  throw new Error("Prescrizione non trovata");
198
164
  }
199
- assertPrescriptionAccess(user, prescription);
200
165
  let opData = await ctx.db
201
166
  .query("operationalData")
202
167
  .withIndex("by_prescriptionRef", (q) => q.eq("prescriptionRef", args.prescriptionId))
@@ -215,10 +180,10 @@ export const saveUiState = mutation({
215
180
  auditEventId: 0,
216
181
  prescriptionRef: args.prescriptionId,
217
182
  at: now,
218
- actorUserId: user._id,
219
- actorRole: user.role,
183
+ actorUserId: identity.subject,
184
+ actorRole: "HOST",
220
185
  type: "OPERATIONAL_UI_STATE_SAVED",
221
- payload: {},
186
+ payload: { actorEmail: identity.email },
222
187
  });
223
188
  return { success: true };
224
189
  },
@@ -1 +1 @@
1
- {"version":3,"file":"operational.js","sourceRoot":"","sources":["../../../convex/mutations/operational.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"operational.js","sourceRoot":"","sources":["../../../convex/mutations/operational.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"phases.d.ts","sourceRoot":"","sources":["../../../convex/mutations/phases.ts"],"names":[],"mappings":"AAiBA;;;GAGG;AACH,eAAO,MAAM,cAAc;;;;;;;GAuFzB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;GA4F9B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;GAsFtB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;GA8EpB,CAAC"}
1
+ {"version":3,"file":"phases.d.ts","sourceRoot":"","sources":["../../../convex/mutations/phases.ts"],"names":[],"mappings":"AAiBA;;;GAGG;AACH,eAAO,MAAM,cAAc;;;;;;;GAiFzB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;GAsF9B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;GAgFtB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;GAwEpB,CAAC"}