@primocaredentgroup/elettromedicali 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/index.d.ts +72 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +233 -0
- package/dist/client/index.js.map +1 -0
- package/dist/component/_generated/api.d.ts +94 -0
- package/dist/component/_generated/api.d.ts.map +1 -0
- package/dist/component/_generated/api.js +31 -0
- package/dist/component/_generated/api.js.map +1 -0
- package/dist/component/_generated/component.d.ts +1444 -0
- package/dist/component/_generated/component.d.ts.map +1 -0
- package/dist/component/_generated/component.js +11 -0
- package/dist/component/_generated/component.js.map +1 -0
- package/dist/component/_generated/dataModel.d.ts +46 -0
- package/dist/component/_generated/dataModel.d.ts.map +1 -0
- package/dist/component/_generated/dataModel.js +11 -0
- package/dist/component/_generated/dataModel.js.map +1 -0
- package/dist/component/_generated/server.d.ts +121 -0
- package/dist/component/_generated/server.d.ts.map +1 -0
- package/dist/component/_generated/server.js +78 -0
- package/dist/component/_generated/server.js.map +1 -0
- package/dist/component/apiKeys.d.ts +69 -0
- package/dist/component/apiKeys.d.ts.map +1 -0
- package/dist/component/apiKeys.js +207 -0
- package/dist/component/apiKeys.js.map +1 -0
- package/dist/component/clinics.d.ts +103 -0
- package/dist/component/clinics.d.ts.map +1 -0
- package/dist/component/clinics.js +126 -0
- package/dist/component/clinics.js.map +1 -0
- package/dist/component/contracts.d.ts +85 -0
- package/dist/component/contracts.d.ts.map +1 -0
- package/dist/component/contracts.js +115 -0
- package/dist/component/contracts.js.map +1 -0
- package/dist/component/convex.config.d.ts +3 -0
- package/dist/component/convex.config.d.ts.map +1 -0
- package/dist/component/convex.config.js +3 -0
- package/dist/component/convex.config.js.map +1 -0
- package/dist/component/crons.d.ts +3 -0
- package/dist/component/crons.d.ts.map +1 -0
- package/dist/component/crons.js +7 -0
- package/dist/component/crons.js.map +1 -0
- package/dist/component/dashboardStats.d.ts +14 -0
- package/dist/component/dashboardStats.d.ts.map +1 -0
- package/dist/component/dashboardStats.js +136 -0
- package/dist/component/dashboardStats.js.map +1 -0
- package/dist/component/dashboardStatsCache.d.ts +32 -0
- package/dist/component/dashboardStatsCache.d.ts.map +1 -0
- package/dist/component/dashboardStatsCache.js +129 -0
- package/dist/component/dashboardStatsCache.js.map +1 -0
- package/dist/component/deviceCategories.d.ts +108 -0
- package/dist/component/deviceCategories.d.ts.map +1 -0
- package/dist/component/deviceCategories.js +254 -0
- package/dist/component/deviceCategories.js.map +1 -0
- package/dist/component/deviceQuestions.d.ts +129 -0
- package/dist/component/deviceQuestions.d.ts.map +1 -0
- package/dist/component/deviceQuestions.js +175 -0
- package/dist/component/deviceQuestions.js.map +1 -0
- package/dist/component/deviceRepairHistory.d.ts +30 -0
- package/dist/component/deviceRepairHistory.d.ts.map +1 -0
- package/dist/component/deviceRepairHistory.js +84 -0
- package/dist/component/deviceRepairHistory.js.map +1 -0
- package/dist/component/deviceStatus.d.ts +63 -0
- package/dist/component/deviceStatus.d.ts.map +1 -0
- package/dist/component/deviceStatus.js +58 -0
- package/dist/component/deviceStatus.js.map +1 -0
- package/dist/component/devices.d.ts +299 -0
- package/dist/component/devices.d.ts.map +1 -0
- package/dist/component/devices.js +587 -0
- package/dist/component/devices.js.map +1 -0
- package/dist/component/emailHelpers.d.ts +17 -0
- package/dist/component/emailHelpers.d.ts.map +1 -0
- package/dist/component/emailHelpers.js +39 -0
- package/dist/component/emailHelpers.js.map +1 -0
- package/dist/component/emails.d.ts +56 -0
- package/dist/component/emails.d.ts.map +1 -0
- package/dist/component/emails.js +58 -0
- package/dist/component/emails.js.map +1 -0
- package/dist/component/http.d.ts +3 -0
- package/dist/component/http.d.ts.map +1 -0
- package/dist/component/http.js +229 -0
- package/dist/component/http.js.map +1 -0
- package/dist/component/maintenanceTasks.d.ts +733 -0
- package/dist/component/maintenanceTasks.d.ts.map +1 -0
- package/dist/component/maintenanceTasks.js +937 -0
- package/dist/component/maintenanceTasks.js.map +1 -0
- package/dist/component/roles.d.ts +75 -0
- package/dist/component/roles.d.ts.map +1 -0
- package/dist/component/roles.js +98 -0
- package/dist/component/roles.js.map +1 -0
- package/dist/component/schema.d.ts +1295 -0
- package/dist/component/schema.d.ts.map +1 -0
- package/dist/component/schema.js +724 -0
- package/dist/component/schema.js.map +1 -0
- package/dist/component/slaMonitoring.d.ts +32 -0
- package/dist/component/slaMonitoring.d.ts.map +1 -0
- package/dist/component/slaMonitoring.js +111 -0
- package/dist/component/slaMonitoring.js.map +1 -0
- package/dist/component/slaRules.d.ts +72 -0
- package/dist/component/slaRules.d.ts.map +1 -0
- package/dist/component/slaRules.js +193 -0
- package/dist/component/slaRules.js.map +1 -0
- package/dist/component/sparePartOrders.d.ts +177 -0
- package/dist/component/sparePartOrders.d.ts.map +1 -0
- package/dist/component/sparePartOrders.js +243 -0
- package/dist/component/sparePartOrders.js.map +1 -0
- package/dist/component/spareParts.d.ts +472 -0
- package/dist/component/spareParts.d.ts.map +1 -0
- package/dist/component/spareParts.js +319 -0
- package/dist/component/spareParts.js.map +1 -0
- package/dist/component/supplierCategories.d.ts +22 -0
- package/dist/component/supplierCategories.d.ts.map +1 -0
- package/dist/component/supplierCategories.js +64 -0
- package/dist/component/supplierCategories.js.map +1 -0
- package/dist/component/suppliers.d.ts +94 -0
- package/dist/component/suppliers.d.ts.map +1 -0
- package/dist/component/suppliers.js +195 -0
- package/dist/component/suppliers.js.map +1 -0
- package/dist/component/ticketComments.d.ts +89 -0
- package/dist/component/ticketComments.d.ts.map +1 -0
- package/dist/component/ticketComments.js +246 -0
- package/dist/component/ticketComments.js.map +1 -0
- package/dist/component/ticketCustomFields.d.ts +149 -0
- package/dist/component/ticketCustomFields.d.ts.map +1 -0
- package/dist/component/ticketCustomFields.js +215 -0
- package/dist/component/ticketCustomFields.js.map +1 -0
- package/dist/component/ticketExport.d.ts +83 -0
- package/dist/component/ticketExport.d.ts.map +1 -0
- package/dist/component/ticketExport.js +182 -0
- package/dist/component/ticketExport.js.map +1 -0
- package/dist/component/ticketHistory.d.ts +57 -0
- package/dist/component/ticketHistory.d.ts.map +1 -0
- package/dist/component/ticketHistory.js +81 -0
- package/dist/component/ticketHistory.js.map +1 -0
- package/dist/component/ticketMacros.d.ts +141 -0
- package/dist/component/ticketMacros.d.ts.map +1 -0
- package/dist/component/ticketMacros.js +255 -0
- package/dist/component/ticketMacros.js.map +1 -0
- package/dist/component/ticketStatuses.d.ts +60 -0
- package/dist/component/ticketStatuses.d.ts.map +1 -0
- package/dist/component/ticketStatuses.js +110 -0
- package/dist/component/ticketStatuses.js.map +1 -0
- package/dist/component/ticketTriggers.d.ts +408 -0
- package/dist/component/ticketTriggers.d.ts.map +1 -0
- package/dist/component/ticketTriggers.js +941 -0
- package/dist/component/ticketTriggers.js.map +1 -0
- package/dist/component/userProfiles.d.ts +259 -0
- package/dist/component/userProfiles.d.ts.map +1 -0
- package/dist/component/userProfiles.js +634 -0
- package/dist/component/userProfiles.js.map +1 -0
- package/dist/component/vendorArticles.d.ts +64 -0
- package/dist/component/vendorArticles.d.ts.map +1 -0
- package/dist/component/vendorArticles.js +116 -0
- package/dist/component/vendorArticles.js.map +1 -0
- package/dist/test.d.ts +1302 -0
- package/dist/test.d.ts.map +1 -0
- package/dist/test.js +7 -0
- package/dist/test.js.map +1 -0
- package/package.json +71 -0
- package/src/client/index.ts +344 -0
- package/src/component/_generated/api.ts +110 -0
- package/src/component/_generated/component.ts +2460 -0
- package/src/component/_generated/dataModel.ts +60 -0
- package/src/component/_generated/server.ts +156 -0
- package/src/component/apiKeys.ts +229 -0
- package/src/component/clinics.ts +136 -0
- package/src/component/contracts.ts +136 -0
- package/src/component/convex.config.js +2 -0
- package/src/component/convex.config.ts +3 -0
- package/src/component/crons.ts +18 -0
- package/src/component/dashboardStats.ts +141 -0
- package/src/component/dashboardStatsCache.ts +145 -0
- package/src/component/deviceCategories.ts +280 -0
- package/src/component/deviceQuestions.ts +225 -0
- package/src/component/deviceRepairHistory.ts +94 -0
- package/src/component/deviceStatus.ts +79 -0
- package/src/component/devices.ts +645 -0
- package/src/component/emailHelpers.ts +38 -0
- package/src/component/emails.ts +61 -0
- package/src/component/http.ts +231 -0
- package/src/component/maintenanceTasks.ts +1003 -0
- package/src/component/roles.ts +99 -0
- package/src/component/schema.ts +842 -0
- package/src/component/slaMonitoring.ts +125 -0
- package/src/component/slaRules.ts +231 -0
- package/src/component/sparePartOrders.ts +290 -0
- package/src/component/spareParts.ts +362 -0
- package/src/component/supplierCategories.ts +65 -0
- package/src/component/suppliers.ts +234 -0
- package/src/component/ticketComments.ts +288 -0
- package/src/component/ticketCustomFields.ts +260 -0
- package/src/component/ticketExport.ts +220 -0
- package/src/component/ticketHistory.ts +106 -0
- package/src/component/ticketMacros.ts +291 -0
- package/src/component/ticketStatuses.ts +109 -0
- package/src/component/ticketTriggers.ts +1152 -0
- package/src/component/userProfiles.ts +745 -0
- package/src/component/vendorArticles.ts +139 -0
- package/src/test.ts +15 -0
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import type { Auth, GenericActionCtx, GenericDataModel, HttpRouter } from "convex/server";
|
|
2
|
+
import type { ComponentApi } from "../component/_generated/component.js";
|
|
3
|
+
type ActionCtx = Pick<GenericActionCtx<GenericDataModel>, "runQuery" | "runMutation" | "runAction">;
|
|
4
|
+
interface UserIdentity {
|
|
5
|
+
auth0Id: string;
|
|
6
|
+
email: string;
|
|
7
|
+
name?: string;
|
|
8
|
+
role?: string;
|
|
9
|
+
clinicId?: string;
|
|
10
|
+
supplierId?: string;
|
|
11
|
+
selectedClinicId?: number;
|
|
12
|
+
}
|
|
13
|
+
interface ElettromedicaliOptions {
|
|
14
|
+
RESEND_API?: string;
|
|
15
|
+
MAIL_SENDER?: string;
|
|
16
|
+
PRIMOUP_BASE_URL?: string;
|
|
17
|
+
PRIMOUP_USER?: string;
|
|
18
|
+
PRIMOUP_PASSWORD?: string;
|
|
19
|
+
EXTERNAL_API_URL?: string;
|
|
20
|
+
EXTERNAL_API_KEY?: string;
|
|
21
|
+
EXTERNAL_CATEGORY_ID?: string;
|
|
22
|
+
}
|
|
23
|
+
export declare class ElettromedicaliClient {
|
|
24
|
+
component: ComponentApi;
|
|
25
|
+
private options?;
|
|
26
|
+
constructor(component: ComponentApi, options?: ElettromedicaliOptions | undefined);
|
|
27
|
+
sendEmail(ctx: ActionCtx, args: {
|
|
28
|
+
to: string | string[];
|
|
29
|
+
from?: string;
|
|
30
|
+
subject: string;
|
|
31
|
+
html: string;
|
|
32
|
+
ticketId?: string;
|
|
33
|
+
}): Promise<{
|
|
34
|
+
id: string;
|
|
35
|
+
}>;
|
|
36
|
+
loginToPrimoUP(ctx: ActionCtx): Promise<{
|
|
37
|
+
token: any;
|
|
38
|
+
expiresAt: any;
|
|
39
|
+
refreshToken: any;
|
|
40
|
+
}>;
|
|
41
|
+
getUserClinicsFromPrimoUP(ctx: ActionCtx, args: {
|
|
42
|
+
email: string;
|
|
43
|
+
token: string;
|
|
44
|
+
auth0Id: string;
|
|
45
|
+
}): Promise<any>;
|
|
46
|
+
}
|
|
47
|
+
export declare function exposeApi(component: ComponentApi, options: {
|
|
48
|
+
auth: (ctx: {
|
|
49
|
+
auth: Auth;
|
|
50
|
+
}) => Promise<UserIdentity | null>;
|
|
51
|
+
}): {
|
|
52
|
+
listClinics: import("convex/server").RegisteredQuery<"public", {}, Promise<any>>;
|
|
53
|
+
listDevices: import("convex/server").RegisteredQuery<"public", {
|
|
54
|
+
clinicId?: string | undefined;
|
|
55
|
+
_triggerReload?: number | undefined;
|
|
56
|
+
}, Promise<any>>;
|
|
57
|
+
getCurrentUserProfile: import("convex/server").RegisteredQuery<"public", {}, Promise<any>>;
|
|
58
|
+
upsertUserProfile: import("convex/server").RegisteredMutation<"public", {
|
|
59
|
+
name?: string | undefined;
|
|
60
|
+
roleName?: string | undefined;
|
|
61
|
+
auth0Id: string;
|
|
62
|
+
email: string;
|
|
63
|
+
}, Promise<any>>;
|
|
64
|
+
listMaintenanceTasks: import("convex/server").RegisteredQuery<"public", {}, Promise<any>>;
|
|
65
|
+
listSuppliers: import("convex/server").RegisteredQuery<"public", {}, Promise<any>>;
|
|
66
|
+
getAdminDashboardStats: import("convex/server").RegisteredQuery<"public", {}, Promise<any>>;
|
|
67
|
+
};
|
|
68
|
+
export declare function registerRoutes(http: HttpRouter, component: ComponentApi, { pathPrefix }?: {
|
|
69
|
+
pathPrefix?: string;
|
|
70
|
+
}): void;
|
|
71
|
+
export type { ComponentApi, UserIdentity, ElettromedicaliOptions };
|
|
72
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,IAAI,EACJ,gBAAgB,EAChB,gBAAgB,EAGhB,UAAU,EACX,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAOzE,KAAK,SAAS,GAAG,IAAI,CACnB,gBAAgB,CAAC,gBAAgB,CAAC,EAClC,UAAU,GAAG,aAAa,GAAG,WAAW,CACzC,CAAC;AAEF,UAAU,YAAY;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,UAAU,sBAAsB;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,qBAAa,qBAAqB;IAEvB,SAAS,EAAE,YAAY;IAC9B,OAAO,CAAC,OAAO,CAAC;gBADT,SAAS,EAAE,YAAY,EACtB,OAAO,CAAC,EAAE,sBAAsB,YAAA;IAgBpC,SAAS,CACb,GAAG,EAAE,SAAS,EACd,IAAI,EAAE;QACJ,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QACtB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB;YAsC+C,MAAM;;IAelD,cAAc,CAAC,GAAG,EAAE,SAAS;;;;;IAqC7B,yBAAyB,CAC7B,GAAG,EAAE,SAAS,EACd,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;CAuC1D;AAED,wBAAgB,SAAS,CACvB,SAAS,EAAE,YAAY,EACvB,OAAO,EAAE;IACP,IAAI,EAAE,CACJ,GAAG,EAAE;QAAE,IAAI,EAAE,IAAI,CAAA;KAAE,KAChB,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;CACnC;;;;;;;;;;;;;;;;EAsGF;AAED,wBAAgB,cAAc,CAC5B,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,YAAY,EACvB,EAAE,UAA+B,EAAE,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,QAoBlE;AAED,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,sBAAsB,EAAE,CAAC"}
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
import { httpActionGeneric, mutationGeneric, queryGeneric, } from "convex/server";
|
|
2
|
+
import { v } from "convex/values";
|
|
3
|
+
export class ElettromedicaliClient {
|
|
4
|
+
component;
|
|
5
|
+
options;
|
|
6
|
+
constructor(component, options) {
|
|
7
|
+
this.component = component;
|
|
8
|
+
this.options = options;
|
|
9
|
+
if (!options) {
|
|
10
|
+
this.options = {
|
|
11
|
+
RESEND_API: process.env.RESEND_API,
|
|
12
|
+
MAIL_SENDER: process.env.MAIL_SENDER,
|
|
13
|
+
PRIMOUP_BASE_URL: process.env.PRIMOUP_BASE_URL,
|
|
14
|
+
PRIMOUP_USER: process.env.PRIMOUP_USER,
|
|
15
|
+
PRIMOUP_PASSWORD: process.env.PRIMOUP_PASSWORD,
|
|
16
|
+
EXTERNAL_API_URL: process.env.EXTERNAL_API_URL,
|
|
17
|
+
EXTERNAL_API_KEY: process.env.EXTERNAL_API_KEY,
|
|
18
|
+
EXTERNAL_CATEGORY_ID: process.env.EXTERNAL_CATEGORY_ID,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
async sendEmail(ctx, args) {
|
|
23
|
+
const resendApiKey = this.options?.RESEND_API;
|
|
24
|
+
if (!resendApiKey) {
|
|
25
|
+
throw new Error("RESEND_API not configured");
|
|
26
|
+
}
|
|
27
|
+
const fromEmail = args.from || this.options?.MAIL_SENDER || "no-reply@primogroup.it";
|
|
28
|
+
const response = await fetch("https://api.resend.com/emails", {
|
|
29
|
+
method: "POST",
|
|
30
|
+
headers: {
|
|
31
|
+
Authorization: `Bearer ${resendApiKey}`,
|
|
32
|
+
"Content-Type": "application/json",
|
|
33
|
+
},
|
|
34
|
+
body: JSON.stringify({
|
|
35
|
+
to: args.to,
|
|
36
|
+
from: fromEmail,
|
|
37
|
+
subject: args.subject,
|
|
38
|
+
html: args.html,
|
|
39
|
+
}),
|
|
40
|
+
});
|
|
41
|
+
if (!response.ok) {
|
|
42
|
+
const errorData = await response.text();
|
|
43
|
+
await ctx.runMutation(this.component.emails.logEmail, {
|
|
44
|
+
from: fromEmail,
|
|
45
|
+
to: args.to,
|
|
46
|
+
subject: args.subject,
|
|
47
|
+
html: args.html,
|
|
48
|
+
ticketId: args.ticketId,
|
|
49
|
+
status: "failed",
|
|
50
|
+
errorMessage: `Resend API error: ${response.status} - ${errorData}`,
|
|
51
|
+
});
|
|
52
|
+
throw new Error(`Resend API error: ${response.status} - ${errorData}`);
|
|
53
|
+
}
|
|
54
|
+
const result = (await response.json());
|
|
55
|
+
await ctx.runMutation(this.component.emails.logEmail, {
|
|
56
|
+
from: fromEmail,
|
|
57
|
+
to: args.to,
|
|
58
|
+
subject: args.subject,
|
|
59
|
+
html: args.html,
|
|
60
|
+
ticketId: args.ticketId,
|
|
61
|
+
status: "sent",
|
|
62
|
+
resendId: result.id,
|
|
63
|
+
});
|
|
64
|
+
return result;
|
|
65
|
+
}
|
|
66
|
+
async loginToPrimoUP(ctx) {
|
|
67
|
+
const baseUrl = this.options?.PRIMOUP_BASE_URL;
|
|
68
|
+
const username = this.options?.PRIMOUP_USER;
|
|
69
|
+
const password = this.options?.PRIMOUP_PASSWORD;
|
|
70
|
+
if (!baseUrl || !username || !password) {
|
|
71
|
+
throw new Error("PrimoUP credentials not configured");
|
|
72
|
+
}
|
|
73
|
+
const response = await fetch(`${baseUrl}/api/v2/auth/login`, {
|
|
74
|
+
method: "POST",
|
|
75
|
+
headers: { "Content-Type": "application/json" },
|
|
76
|
+
body: JSON.stringify({ email: username, password }),
|
|
77
|
+
});
|
|
78
|
+
if (!response.ok) {
|
|
79
|
+
const errorText = await response.text();
|
|
80
|
+
throw new Error(`PrimoUP login failed: ${response.status} - ${errorText}`);
|
|
81
|
+
}
|
|
82
|
+
const data = (await response.json());
|
|
83
|
+
const token = data.meta?.token || data.token || data.access_token || data.accessToken;
|
|
84
|
+
if (!token) {
|
|
85
|
+
throw new Error("No token found in PrimoUP response");
|
|
86
|
+
}
|
|
87
|
+
return {
|
|
88
|
+
token,
|
|
89
|
+
expiresAt: data.expiresAt || data.expires_at,
|
|
90
|
+
refreshToken: data.refreshToken || data.refresh_token,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
async getUserClinicsFromPrimoUP(ctx, args) {
|
|
94
|
+
const baseUrl = this.options?.PRIMOUP_BASE_URL;
|
|
95
|
+
if (!baseUrl)
|
|
96
|
+
throw new Error("PrimoUP base URL not configured");
|
|
97
|
+
const response = await fetch(`${baseUrl}/api/v2/users/by-email/?email=${encodeURIComponent(args.email)}&include=clinics,clinics.roles,clinics.area_managers`, {
|
|
98
|
+
method: "GET",
|
|
99
|
+
headers: {
|
|
100
|
+
"Content-Type": "application/json",
|
|
101
|
+
Authorization: `Bearer ${args.token}`,
|
|
102
|
+
},
|
|
103
|
+
});
|
|
104
|
+
if (!response.ok) {
|
|
105
|
+
const errorText = await response.text();
|
|
106
|
+
await ctx.runMutation(this.component.userProfiles.logPrimoUPAccess, {
|
|
107
|
+
auth0Id: args.auth0Id,
|
|
108
|
+
action: "get_user_clinics",
|
|
109
|
+
endpoint: "/api/v2/users/by-email",
|
|
110
|
+
success: false,
|
|
111
|
+
errorMessage: `Failed: ${response.status} - ${errorText}`,
|
|
112
|
+
});
|
|
113
|
+
throw new Error(`Failed to fetch user clinics: ${response.status}`);
|
|
114
|
+
}
|
|
115
|
+
const data = (await response.json());
|
|
116
|
+
await ctx.runMutation(this.component.userProfiles.logPrimoUPAccess, {
|
|
117
|
+
auth0Id: args.auth0Id,
|
|
118
|
+
action: "get_user_clinics",
|
|
119
|
+
endpoint: "/api/v2/users/by-email",
|
|
120
|
+
success: true,
|
|
121
|
+
});
|
|
122
|
+
return data.data;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
export function exposeApi(component, options) {
|
|
126
|
+
return {
|
|
127
|
+
// Clinics
|
|
128
|
+
listClinics: queryGeneric({
|
|
129
|
+
args: {},
|
|
130
|
+
handler: async (ctx) => {
|
|
131
|
+
const user = await options.auth(ctx);
|
|
132
|
+
if (!user || user.role !== "admin")
|
|
133
|
+
throw new Error("Not authorized");
|
|
134
|
+
return await ctx.runQuery(component.clinics.listClinics);
|
|
135
|
+
},
|
|
136
|
+
}),
|
|
137
|
+
// Devices
|
|
138
|
+
listDevices: queryGeneric({
|
|
139
|
+
args: {
|
|
140
|
+
clinicId: v.optional(v.string()),
|
|
141
|
+
_triggerReload: v.optional(v.number()),
|
|
142
|
+
},
|
|
143
|
+
handler: async (ctx, args) => {
|
|
144
|
+
const user = await options.auth(ctx);
|
|
145
|
+
if (!user)
|
|
146
|
+
throw new Error("Not authenticated");
|
|
147
|
+
return await ctx.runQuery(component.devices.listDevices, {
|
|
148
|
+
userRole: user.role,
|
|
149
|
+
userClinicId: user.clinicId,
|
|
150
|
+
userSelectedClinicId: user.selectedClinicId,
|
|
151
|
+
clinicId: args.clinicId,
|
|
152
|
+
_triggerReload: args._triggerReload,
|
|
153
|
+
});
|
|
154
|
+
},
|
|
155
|
+
}),
|
|
156
|
+
// Current user profile
|
|
157
|
+
getCurrentUserProfile: queryGeneric({
|
|
158
|
+
args: {},
|
|
159
|
+
handler: async (ctx) => {
|
|
160
|
+
const identity = await ctx.auth.getUserIdentity();
|
|
161
|
+
if (!identity)
|
|
162
|
+
return null;
|
|
163
|
+
return await ctx.runQuery(component.userProfiles.getCurrentUserProfile, { auth0Id: identity.subject });
|
|
164
|
+
},
|
|
165
|
+
}),
|
|
166
|
+
// Upsert user profile (for login sync)
|
|
167
|
+
upsertUserProfile: mutationGeneric({
|
|
168
|
+
args: {
|
|
169
|
+
auth0Id: v.string(),
|
|
170
|
+
email: v.string(),
|
|
171
|
+
name: v.optional(v.string()),
|
|
172
|
+
roleName: v.optional(v.string()),
|
|
173
|
+
},
|
|
174
|
+
handler: async (ctx, args) => {
|
|
175
|
+
return await ctx.runMutation(component.userProfiles.upsertUserProfile, args);
|
|
176
|
+
},
|
|
177
|
+
}),
|
|
178
|
+
// Tickets
|
|
179
|
+
listMaintenanceTasks: queryGeneric({
|
|
180
|
+
args: {},
|
|
181
|
+
handler: async (ctx) => {
|
|
182
|
+
const user = await options.auth(ctx);
|
|
183
|
+
if (!user)
|
|
184
|
+
throw new Error("Not authenticated");
|
|
185
|
+
return await ctx.runQuery(component.maintenanceTasks.listMaintenanceTasks, {
|
|
186
|
+
userRole: user.role,
|
|
187
|
+
userAuth0Id: user.auth0Id,
|
|
188
|
+
userSupplierId: user.supplierId,
|
|
189
|
+
userClinicId: user.clinicId,
|
|
190
|
+
userSelectedClinicId: user.selectedClinicId,
|
|
191
|
+
});
|
|
192
|
+
},
|
|
193
|
+
}),
|
|
194
|
+
// Suppliers
|
|
195
|
+
listSuppliers: queryGeneric({
|
|
196
|
+
args: {},
|
|
197
|
+
handler: async (ctx) => {
|
|
198
|
+
const user = await options.auth(ctx);
|
|
199
|
+
if (!user || user.role !== "admin")
|
|
200
|
+
throw new Error("Not authorized");
|
|
201
|
+
return await ctx.runQuery(component.suppliers.listSuppliers);
|
|
202
|
+
},
|
|
203
|
+
}),
|
|
204
|
+
// Dashboard stats
|
|
205
|
+
getAdminDashboardStats: queryGeneric({
|
|
206
|
+
args: {},
|
|
207
|
+
handler: async (ctx) => {
|
|
208
|
+
const user = await options.auth(ctx);
|
|
209
|
+
if (!user || user.role !== "admin")
|
|
210
|
+
throw new Error("Not authorized");
|
|
211
|
+
return await ctx.runQuery(component.dashboardStats.getAdminDashboardStats);
|
|
212
|
+
},
|
|
213
|
+
}),
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
export function registerRoutes(http, component, { pathPrefix = "/elettromedicali" } = {}) {
|
|
217
|
+
http.route({
|
|
218
|
+
path: `${pathPrefix}/health`,
|
|
219
|
+
method: "GET",
|
|
220
|
+
handler: httpActionGeneric(async (ctx) => {
|
|
221
|
+
return new Response(JSON.stringify({
|
|
222
|
+
success: true,
|
|
223
|
+
status: "healthy",
|
|
224
|
+
timestamp: new Date().toISOString(),
|
|
225
|
+
component: "elettromedicali",
|
|
226
|
+
}), {
|
|
227
|
+
status: 200,
|
|
228
|
+
headers: { "Content-Type": "application/json" },
|
|
229
|
+
});
|
|
230
|
+
}),
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated `api` utility.
|
|
3
|
+
*
|
|
4
|
+
* THIS CODE IS AUTOMATICALLY GENERATED.
|
|
5
|
+
*
|
|
6
|
+
* To regenerate, run `npx convex dev`.
|
|
7
|
+
* @module
|
|
8
|
+
*/
|
|
9
|
+
import type * as apiKeys from "../apiKeys.js";
|
|
10
|
+
import type * as clinics from "../clinics.js";
|
|
11
|
+
import type * as contracts from "../contracts.js";
|
|
12
|
+
import type * as crons from "../crons.js";
|
|
13
|
+
import type * as dashboardStats from "../dashboardStats.js";
|
|
14
|
+
import type * as dashboardStatsCache from "../dashboardStatsCache.js";
|
|
15
|
+
import type * as deviceCategories from "../deviceCategories.js";
|
|
16
|
+
import type * as deviceQuestions from "../deviceQuestions.js";
|
|
17
|
+
import type * as deviceRepairHistory from "../deviceRepairHistory.js";
|
|
18
|
+
import type * as deviceStatus from "../deviceStatus.js";
|
|
19
|
+
import type * as devices from "../devices.js";
|
|
20
|
+
import type * as emailHelpers from "../emailHelpers.js";
|
|
21
|
+
import type * as emails from "../emails.js";
|
|
22
|
+
import type * as http from "../http.js";
|
|
23
|
+
import type * as maintenanceTasks from "../maintenanceTasks.js";
|
|
24
|
+
import type * as roles from "../roles.js";
|
|
25
|
+
import type * as slaMonitoring from "../slaMonitoring.js";
|
|
26
|
+
import type * as slaRules from "../slaRules.js";
|
|
27
|
+
import type * as sparePartOrders from "../sparePartOrders.js";
|
|
28
|
+
import type * as spareParts from "../spareParts.js";
|
|
29
|
+
import type * as supplierCategories from "../supplierCategories.js";
|
|
30
|
+
import type * as suppliers from "../suppliers.js";
|
|
31
|
+
import type * as ticketComments from "../ticketComments.js";
|
|
32
|
+
import type * as ticketCustomFields from "../ticketCustomFields.js";
|
|
33
|
+
import type * as ticketExport from "../ticketExport.js";
|
|
34
|
+
import type * as ticketHistory from "../ticketHistory.js";
|
|
35
|
+
import type * as ticketMacros from "../ticketMacros.js";
|
|
36
|
+
import type * as ticketStatuses from "../ticketStatuses.js";
|
|
37
|
+
import type * as ticketTriggers from "../ticketTriggers.js";
|
|
38
|
+
import type * as userProfiles from "../userProfiles.js";
|
|
39
|
+
import type * as vendorArticles from "../vendorArticles.js";
|
|
40
|
+
import type { ApiFromModules, FilterApi, FunctionReference } from "convex/server";
|
|
41
|
+
declare const fullApi: ApiFromModules<{
|
|
42
|
+
apiKeys: typeof apiKeys;
|
|
43
|
+
clinics: typeof clinics;
|
|
44
|
+
contracts: typeof contracts;
|
|
45
|
+
crons: typeof crons;
|
|
46
|
+
dashboardStats: typeof dashboardStats;
|
|
47
|
+
dashboardStatsCache: typeof dashboardStatsCache;
|
|
48
|
+
deviceCategories: typeof deviceCategories;
|
|
49
|
+
deviceQuestions: typeof deviceQuestions;
|
|
50
|
+
deviceRepairHistory: typeof deviceRepairHistory;
|
|
51
|
+
deviceStatus: typeof deviceStatus;
|
|
52
|
+
devices: typeof devices;
|
|
53
|
+
emailHelpers: typeof emailHelpers;
|
|
54
|
+
emails: typeof emails;
|
|
55
|
+
http: typeof http;
|
|
56
|
+
maintenanceTasks: typeof maintenanceTasks;
|
|
57
|
+
roles: typeof roles;
|
|
58
|
+
slaMonitoring: typeof slaMonitoring;
|
|
59
|
+
slaRules: typeof slaRules;
|
|
60
|
+
sparePartOrders: typeof sparePartOrders;
|
|
61
|
+
spareParts: typeof spareParts;
|
|
62
|
+
supplierCategories: typeof supplierCategories;
|
|
63
|
+
suppliers: typeof suppliers;
|
|
64
|
+
ticketComments: typeof ticketComments;
|
|
65
|
+
ticketCustomFields: typeof ticketCustomFields;
|
|
66
|
+
ticketExport: typeof ticketExport;
|
|
67
|
+
ticketHistory: typeof ticketHistory;
|
|
68
|
+
ticketMacros: typeof ticketMacros;
|
|
69
|
+
ticketStatuses: typeof ticketStatuses;
|
|
70
|
+
ticketTriggers: typeof ticketTriggers;
|
|
71
|
+
userProfiles: typeof userProfiles;
|
|
72
|
+
vendorArticles: typeof vendorArticles;
|
|
73
|
+
}>;
|
|
74
|
+
/**
|
|
75
|
+
* A utility for referencing Convex functions in your app's public API.
|
|
76
|
+
*
|
|
77
|
+
* Usage:
|
|
78
|
+
* ```js
|
|
79
|
+
* const myFunctionReference = api.myModule.myFunction;
|
|
80
|
+
* ```
|
|
81
|
+
*/
|
|
82
|
+
export declare const api: FilterApi<typeof fullApi, FunctionReference<any, "public">>;
|
|
83
|
+
/**
|
|
84
|
+
* A utility for referencing Convex functions in your app's internal API.
|
|
85
|
+
*
|
|
86
|
+
* Usage:
|
|
87
|
+
* ```js
|
|
88
|
+
* const myFunctionReference = internal.myModule.myFunction;
|
|
89
|
+
* ```
|
|
90
|
+
*/
|
|
91
|
+
export declare const internal: FilterApi<typeof fullApi, FunctionReference<any, "internal">>;
|
|
92
|
+
export declare const components: {};
|
|
93
|
+
export {};
|
|
94
|
+
//# sourceMappingURL=api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/component/_generated/api.ts"],"names":[],"mappings":"AACA;;;;;;;GAOG;AAEH,OAAO,KAAK,KAAK,OAAO,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,KAAK,OAAO,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,KAAK,SAAS,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,KAAK,KAAK,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,KAAK,cAAc,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,KAAK,mBAAmB,MAAM,2BAA2B,CAAC;AACtE,OAAO,KAAK,KAAK,gBAAgB,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,KAAK,eAAe,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,KAAK,mBAAmB,MAAM,2BAA2B,CAAC;AACtE,OAAO,KAAK,KAAK,YAAY,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,KAAK,OAAO,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,KAAK,YAAY,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,KAAK,MAAM,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,KAAK,IAAI,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,KAAK,gBAAgB,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,KAAK,KAAK,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,KAAK,aAAa,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,KAAK,eAAe,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,KAAK,UAAU,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,KAAK,kBAAkB,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,KAAK,SAAS,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,KAAK,cAAc,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,KAAK,kBAAkB,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,KAAK,YAAY,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,KAAK,aAAa,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,KAAK,YAAY,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,KAAK,cAAc,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,KAAK,cAAc,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,KAAK,YAAY,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,KAAK,cAAc,MAAM,sBAAsB,CAAC;AAE5D,OAAO,KAAK,EACV,cAAc,EACd,SAAS,EACT,iBAAiB,EAClB,MAAM,eAAe,CAAC;AAGvB,QAAA,MAAM,OAAO,EAAE,cAAc,CAAC;IAC5B,OAAO,EAAE,OAAO,OAAO,CAAC;IACxB,OAAO,EAAE,OAAO,OAAO,CAAC;IACxB,SAAS,EAAE,OAAO,SAAS,CAAC;IAC5B,KAAK,EAAE,OAAO,KAAK,CAAC;IACpB,cAAc,EAAE,OAAO,cAAc,CAAC;IACtC,mBAAmB,EAAE,OAAO,mBAAmB,CAAC;IAChD,gBAAgB,EAAE,OAAO,gBAAgB,CAAC;IAC1C,eAAe,EAAE,OAAO,eAAe,CAAC;IACxC,mBAAmB,EAAE,OAAO,mBAAmB,CAAC;IAChD,YAAY,EAAE,OAAO,YAAY,CAAC;IAClC,OAAO,EAAE,OAAO,OAAO,CAAC;IACxB,YAAY,EAAE,OAAO,YAAY,CAAC;IAClC,MAAM,EAAE,OAAO,MAAM,CAAC;IACtB,IAAI,EAAE,OAAO,IAAI,CAAC;IAClB,gBAAgB,EAAE,OAAO,gBAAgB,CAAC;IAC1C,KAAK,EAAE,OAAO,KAAK,CAAC;IACpB,aAAa,EAAE,OAAO,aAAa,CAAC;IACpC,QAAQ,EAAE,OAAO,QAAQ,CAAC;IAC1B,eAAe,EAAE,OAAO,eAAe,CAAC;IACxC,UAAU,EAAE,OAAO,UAAU,CAAC;IAC9B,kBAAkB,EAAE,OAAO,kBAAkB,CAAC;IAC9C,SAAS,EAAE,OAAO,SAAS,CAAC;IAC5B,cAAc,EAAE,OAAO,cAAc,CAAC;IACtC,kBAAkB,EAAE,OAAO,kBAAkB,CAAC;IAC9C,YAAY,EAAE,OAAO,YAAY,CAAC;IAClC,aAAa,EAAE,OAAO,aAAa,CAAC;IACpC,YAAY,EAAE,OAAO,YAAY,CAAC;IAClC,cAAc,EAAE,OAAO,cAAc,CAAC;IACtC,cAAc,EAAE,OAAO,cAAc,CAAC;IACtC,YAAY,EAAE,OAAO,YAAY,CAAC;IAClC,cAAc,EAAE,OAAO,cAAc,CAAC;CACvC,CAAiB,CAAC;AAEnB;;;;;;;GAOG;AACH,eAAO,MAAM,GAAG,EAAE,SAAS,CACzB,OAAO,OAAO,EACd,iBAAiB,CAAC,GAAG,EAAE,QAAQ,CAAC,CACjB,CAAC;AAElB;;;;;;;GAOG;AACH,eAAO,MAAM,QAAQ,EAAE,SAAS,CAC9B,OAAO,OAAO,EACd,iBAAiB,CAAC,GAAG,EAAE,UAAU,CAAC,CACnB,CAAC;AAElB,eAAO,MAAM,UAAU,EAAqC,EAAE,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
/**
|
|
3
|
+
* Generated `api` utility.
|
|
4
|
+
*
|
|
5
|
+
* THIS CODE IS AUTOMATICALLY GENERATED.
|
|
6
|
+
*
|
|
7
|
+
* To regenerate, run `npx convex dev`.
|
|
8
|
+
* @module
|
|
9
|
+
*/
|
|
10
|
+
import { anyApi, componentsGeneric } from "convex/server";
|
|
11
|
+
const fullApi = anyApi;
|
|
12
|
+
/**
|
|
13
|
+
* A utility for referencing Convex functions in your app's public API.
|
|
14
|
+
*
|
|
15
|
+
* Usage:
|
|
16
|
+
* ```js
|
|
17
|
+
* const myFunctionReference = api.myModule.myFunction;
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export const api = anyApi;
|
|
21
|
+
/**
|
|
22
|
+
* A utility for referencing Convex functions in your app's internal API.
|
|
23
|
+
*
|
|
24
|
+
* Usage:
|
|
25
|
+
* ```js
|
|
26
|
+
* const myFunctionReference = internal.myModule.myFunction;
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export const internal = anyApi;
|
|
30
|
+
export const components = componentsGeneric();
|
|
31
|
+
//# sourceMappingURL=api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/component/_generated/api.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB;;;;;;;GAOG;AAuCH,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAE1D,MAAM,OAAO,GAgCR,MAAa,CAAC;AAEnB;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,GAAG,GAGZ,MAAa,CAAC;AAElB;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,QAAQ,GAGjB,MAAa,CAAC;AAElB,MAAM,CAAC,MAAM,UAAU,GAAG,iBAAiB,EAAmB,CAAC"}
|