const { ipcMain } = require('electron'); const {app} = require('electron'); //const config = app.getPath('userData'); const {TimeChainDataSqliteRecord,ConnectToDatabase, TimeChainDataSqliteFile, TimeChainDataSqliteTag, TimeChainDataSqliteTagLink} = require('./sqlite'); const appPath = app.getPath('userData'); const DBPath = appPath+"/timechain.db"; console.log(DBPath); const DB = ConnectToDatabase(DBPath); const DbRecord = new TimeChainDataSqliteRecord(); const DbFile = new TimeChainDataSqliteFile(); const DbTag = new TimeChainDataSqliteTag(); const DbTagLink = new TimeChainDataSqliteTagLink(); //const configDir = app.getPath('userData'); //const appPath = app.getPath('exe'); // ** Extra Data ipcMain.handle('timechain-config-dir', (event,arg) => { return false; }); // ** RECORD ** console.log("Register timechain-record"); ipcMain.handle('timechain-record', async (event,arg) => { let res = null; switch(arg.func){ case 'add': res = await DbRecord.add(arg.uuid, arg.timestamp, arg.content, arg.mime, arg.hash); break; case 'delete': res = await DbRecord.delete(arg.uuid); break; case 'update': res = await DbRecord.update(arg.uuid,arg.content,arg.mime,arg.hash); break; case 'find': res = await DbRecord.find(arg.search,arg.sort,arg.limit,arg.offset); break; case 'get': res = await DbRecord.get(arg.uuid); break; default: res = new Error('unknown command'); } return res; }) // ** FILE ** ipcMain.handle('timechain-file', async (event, arg) => { let res = null; switch(arg.func){ case 'add': res = await DbFile.add(arg.uuid_record,arg.uuid,arg.timestamp,arg.content,arg.mime,arg.hash); break; case 'update': res = await DbFile.update(arg.uuid,arg.timestamp,arg.content,arg.mime,arg.hash); break; case 'get-record': res = await DbFile.getByRecord(arg.uuid_record); break; case 'delete-record': res = await DbFile.deleteRecord(arg.uuid_record); break; case 'get': res = await DbFile.get(arg.uuid); break; case 'delete': res = await DbFile.delete(arg.uuid); break; default: res = new Error('Unknow a command'); } return res; }); // ** TAG ** ipcMain.handle('timechain-tag', async (event, arg) => { let res = null; switch(arg.func){ case 'add': res = await DbTag.add(arg.tag); break; case 'delete': res = await DbTag.delete(arg.tag); break; case 'has': res = await DbTag.delete(arg.tag); break; default: res = new Error('Command Unknown'); } return res; }); // TAG LINK ipcMain.handle('timechain-taglink', async (event, arg) => { let res = null; switch(arg.func){ case 'add': res = await DbTagLink.add(arg.uuid,arg.tag) break; case 'delete': res = await DbTagLink.delete(arg.uuid,arg.tag); break; case 'delete-tag': res = await DbTagLink.deleteTag(arg.tag); break; case 'delete-record': res = await DbTagLink.deleteRecord(arg.uuid); break; case 'get-records': res = await DbTagLink.getRecords(atg.tag); break; case 'get-tags': res = await DbTagLink.getTags(atg.uuid); break; default: res = Error("Commande not known"); } return res; });