Files
fellakte/main/preload.js
T
2026-09-14 18:57:05 +00:00

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"),
});