Paste input now support images. New static time stamp control. Some more utility functions for converting data types. New control for showing raw HTML data. New control to show tags, to be expanded latter.
146 lines
3.8 KiB
JavaScript
146 lines
3.8 KiB
JavaScript
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;
|
|
}); |