import * as antares from 'common/interfaces/antares'; import { ipcMain } from 'electron'; import { validateSender } from '../libs/misc/validateSender'; export default (connections: Record) => { ipcMain.handle('get-scheduler-informations', async (event, params) => { if (!validateSender(event.senderFrame)) return { status: 'error', response: 'Unauthorized process' }; try { const result = await connections[params.uid].getEventInformations(params); return { status: 'success', response: result }; } catch (err) { return { status: 'error', response: err.toString() }; } }); ipcMain.handle('drop-scheduler', async (event, params) => { if (!validateSender(event.senderFrame)) return { status: 'error', response: 'Unauthorized process' }; try { await connections[params.uid].dropEvent(params); return { status: 'success' }; } catch (err) { return { status: 'error', response: err.toString() }; } }); ipcMain.handle('alter-scheduler', async (event, params) => { if (!validateSender(event.senderFrame)) return { status: 'error', response: 'Unauthorized process' }; try { await connections[params.uid].alterEvent(params); return { status: 'success' }; } catch (err) { return { status: 'error', response: err.toString() }; } }); ipcMain.handle('create-scheduler', async (event, params) => { if (!validateSender(event.senderFrame)) return { status: 'error', response: 'Unauthorized process' }; try { await connections[params.uid].createEvent(params); return { status: 'success' }; } catch (err) { return { status: 'error', response: err.toString() }; } }); ipcMain.handle('toggle-scheduler', async (event, params) => { if (!validateSender(event.senderFrame)) return { status: 'error', response: 'Unauthorized process' }; try { if (!params.enabled) await connections[params.uid].enableEvent({ ...params }); else await connections[params.uid].disableEvent({ ...params }); return { status: 'success' }; } catch (err) { return { status: 'error', response: err.toString() }; } }); };