81 lines
4.4 KiB
JavaScript
81 lines
4.4 KiB
JavaScript
"use strict";
|
|
|
|
const { contextBridge, ipcRenderer } = require("electron");
|
|
|
|
const invoke = (channel) => (...args) => ipcRenderer.invoke(channel, ...args);
|
|
|
|
contextBridge.exposeInMainWorld("api", {
|
|
listDirectory: invoke("directory:list"),
|
|
createOwner: (data) => ipcRenderer.invoke("owner:create", data),
|
|
createAnimal: (ownerId, data) => ipcRenderer.invoke("animal:create", { ownerId, data }),
|
|
getAnimalBundle: (animalId) => ipcRenderer.invoke("animal:bundle", animalId),
|
|
updateAnimalField: (animalId, field, value) => ipcRenderer.invoke("animal:updateField", { animalId, field, value }),
|
|
updateOwnerField: (ownerId, field, value) => ipcRenderer.invoke("owner:updateField", { ownerId, field, value }),
|
|
deleteAnimal: (animalId) => ipcRenderer.invoke("animal:delete", animalId),
|
|
deleteOwner: (ownerId) => ipcRenderer.invoke("owner:delete", ownerId),
|
|
|
|
addNote: (animalId, text) => ipcRenderer.invoke("note:add", { animalId, text }),
|
|
addHistoryEntry: (animalId, title, text) => ipcRenderer.invoke("history:add", { animalId, title, text }),
|
|
|
|
addLabResult: (animalId, name) => ipcRenderer.invoke("lab:addResult", { animalId, name }),
|
|
addLabValue: (labResultId, parameter, value, reference) =>
|
|
ipcRenderer.invoke("lab:addValue", { labResultId, parameter, value, reference }),
|
|
deleteLabResult: (labResultId) => ipcRenderer.invoke("lab:deleteResult", labResultId),
|
|
|
|
addFinding: (animalId, finding) => ipcRenderer.invoke("finding:add", { animalId, ...finding }),
|
|
updateFinding: (id, patch) => ipcRenderer.invoke("finding:update", { id, ...patch }),
|
|
deleteFinding: (id) => ipcRenderer.invoke("finding:delete", id),
|
|
|
|
addExam: (animalId, fields) => ipcRenderer.invoke("exam:add", { animalId, fields }),
|
|
|
|
setConsent: (animalId, patch) => ipcRenderer.invoke("consent:set", { animalId, ...patch }),
|
|
saveSignature: (animalId, dataUrl) => ipcRenderer.invoke("consent:saveSignature", { animalId, dataUrl }),
|
|
|
|
setContract: (animalId, patch) => ipcRenderer.invoke("contract:set", { animalId, ...patch }),
|
|
saveContractSignature: (animalId, dataUrl) => ipcRenderer.invoke("contract:saveSignature", { animalId, dataUrl }),
|
|
|
|
generatePdf: (animalId, kind, content) => ipcRenderer.invoke("document:generatePdf", { animalId, kind, ...content }),
|
|
generateTemplatePdf: (animalId, filenamePrefix, content) => ipcRenderer.invoke("document:generateTemplatePdf", { animalId, filenamePrefix, ...content }),
|
|
sendDocumentEmail: (animalId, kind, file) => ipcRenderer.invoke("email:send", { animalId, kind, ...file }),
|
|
|
|
listRemedies: (query) => ipcRenderer.invoke("remedy:list", query),
|
|
addRemedy: (data) => ipcRenderer.invoke("remedy:add", data),
|
|
updateRemedy: (id, data) => ipcRenderer.invoke("remedy:update", { id, data }),
|
|
deleteRemedy: (id) => ipcRenderer.invoke("remedy:delete", id),
|
|
|
|
listAppointments: (fromDate, toDate) => ipcRenderer.invoke("appointment:list", { fromDate, toDate }),
|
|
addAppointment: (data) => ipcRenderer.invoke("appointment:add", data),
|
|
updateAppointment: (id, data) => ipcRenderer.invoke("appointment:update", { id, data }),
|
|
deleteAppointment: (id) => ipcRenderer.invoke("appointment:delete", id),
|
|
|
|
getLexwarePath: invoke("lexware:getPath"),
|
|
setLexwarePath: (value) => ipcRenderer.invoke("lexware:setPath", value),
|
|
openLexware: invoke("lexware:open"),
|
|
|
|
getSmtpSettings: invoke("settings:getSmtp"),
|
|
setSmtpSettings: (smtp) => ipcRenderer.invoke("settings:setSmtp", smtp),
|
|
testSmtpSettings: (smtp) => ipcRenderer.invoke("settings:testSmtp", smtp),
|
|
|
|
getReminderLead: invoke("settings:getReminderLead"),
|
|
setReminderLead: (minutes) => ipcRenderer.invoke("settings:setReminderLead", minutes),
|
|
|
|
backupNow: invoke("backup:now"),
|
|
getBackupInfo: invoke("backup:info"),
|
|
listBackups: invoke("backup:list"),
|
|
openBackupFolder: invoke("backup:openFolder"),
|
|
restoreBackup: (name) => ipcRenderer.invoke("backup:restore", name),
|
|
|
|
searchNotes: (query) => ipcRenderer.invoke("search:notes", query),
|
|
|
|
startWebPairing: invoke("webaccess:startPairing"),
|
|
getWebPairingStatus: invoke("webaccess:pairingStatus"),
|
|
listWebDevices: invoke("webaccess:listDevices"),
|
|
revokeWebDevice: (id) => ipcRenderer.invoke("webaccess:revokeDevice", id),
|
|
|
|
addDocument: (animalId, kind) => ipcRenderer.invoke("document:add", { animalId, kind }),
|
|
openDocument: (documentId) => ipcRenderer.invoke("document:open", documentId),
|
|
documentAbsPath: (documentId) => ipcRenderer.invoke("document:absPath", documentId),
|
|
|
|
dataFolder: invoke("app:dataFolder"),
|
|
});
|