From 71e3556eb010ee5d2e88dcf3b4b8ebcb065b9d41 Mon Sep 17 00:00:00 2001 From: Mahyar Jamalabadi Date: Sat, 16 Jan 2021 12:15:43 +0330 Subject: [PATCH 1/2] Try1: Add update db log flow --- .gitignore | 1 + cli/lib/commands.js | 8 +++++- cli/lib/db.js | 66 ++++++++++++++++++++++++++++++++++----------- 3 files changed, 58 insertions(+), 17 deletions(-) diff --git a/.gitignore b/.gitignore index d95d310f..97bcc8df 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ binary .DS_Store +xeno # Logs logs diff --git a/cli/lib/commands.js b/cli/lib/commands.js index e28a6774..25136b63 100644 --- a/cli/lib/commands.js +++ b/cli/lib/commands.js @@ -56,6 +56,7 @@ const setStart = (args, options, logger) => { return db .updateDatabase(payload, db.knex) .then(() => { + // Here we have to add a new edit log spinnerSucceed(spinner, `You clocked in at: ${start}\n\n`).start(); helpers.shouldWorkUntil(start, config); }) @@ -85,6 +86,7 @@ const setBreak = (args, options, logger) => { .updateDatabase(payload, db.knex) .catch(spinner.fail) .then(() => { + // Here we have to add a new edit log report(); }); }; @@ -180,6 +182,7 @@ const setEnd = (args, options, logger) => { action: 'setEnd', }; return db.updateDatabase(payload, db.knex).then(() => { + // Here we have to add a new edit log report(); }); }; @@ -209,7 +212,10 @@ const addNote = (args, options, logger) => { }; return db .updateDatabase(payload, db.knex) - .then(() => report()) + .then(() => { + // Here we have to add a new edit log + report() + }) .catch(spinner.fail) .finally(() => { spinnerSucceed(spinner, constants.TEXT.addNoteSuccess).start(); diff --git a/cli/lib/db.js b/cli/lib/db.js index cc4b194c..6787703b 100644 --- a/cli/lib/db.js +++ b/cli/lib/db.js @@ -82,10 +82,27 @@ const updateDatabase = (options, knex) => { } } else { // date doesn't exist, insert it + if (action === 'addNote') + throw 'Add the start time first' return knex.insert({ date, start, end, breakDuration }).into('records'); } }) - .catch(spinner.fail); + .then((result) => { + // Database has been affected + // Here we have to add a new log + console.log('Db affected...'); + setLogData(knex, { + action, + type: action === 'addNote' ? 'notes' : 'records', + realId: result[0], + }) + .then((result) => { + console.log('result', result); + }) + .catch((err) => { console.log(err); }) + }) + .catch((err) => { console.log(err); }) + // .catch(spinner.fail); }; // gets data for a single day @@ -184,18 +201,28 @@ const getRowsAfter = (knex, table, recordId) => .catch(spinner.fail); // Create a log table -const createLogTable = (knex) => - knex.schema.hasTable('logs').then((exists) => { +const createLogTable = (knex) => { + console.log('Check if log Table exists...'); + const exists = false; + // return knex.schema.hasTable('logs') + // .then((exists) => { + // return exists if (!exists) { - return knex.schema - .createTable('logs', (table) => { - table.increments('id'); - table.string('type'); - table.integer('lastLogId'); - }) - .catch((e) => spinner.fail(`Errors in createTable ${e}`)); - } - }); + console.log('exists >>', exists); + return knex.schema + .createTable('logs', (table) => { + table.increments('id'); + table.string('action'); + table.string('type'); + table.integer('realId'); + }) + .catch((err) => { console.log('exists err', err) }) + + // .catch((e) => spinner.fail(`Errors in createTable ${e}`)); + } + // }) + // .catch((err) => { console.log(err) }) +} const getLastLogData = (knex, type) => createLogTable(knex) @@ -208,14 +235,21 @@ const getLastLogData = (knex, type) => .limit(1) .catch((e) => spinner.fail(`Errors in fetch - ${e}`)), ) - .catch((e) => spinner.fail(`Errors in createLogTable - ${e}`)); + .catch((e) => spinner.fail(`Errors in createTable - ${e}`)); -const setLogData = (knex, data) => - createLogTable(knex).then(() => knex.insert(data).into('logs')); +const setLogData = (knex, data) => { + console.log('Set log data...'); + console.log(data); + return createLogTable(knex) + .then(() => { + console.log('Finalize Log...'); + // return knex.insert(data).into('logs') + }) + .catch((e) => { console.log(e);}) +} module.exports = { createTable, - createLogTable, getDateReport, updateDatabase, getLastLogData, From f08a5d459f27bee3babc79283d05314d2812b8b7 Mon Sep 17 00:00:00 2001 From: Mahyar Jamalabadi Date: Mon, 25 Jan 2021 16:46:20 +0330 Subject: [PATCH 2/2] Fix log saving on data update --- cli/lib/db.js | 33 +++++++++++++++------------------ 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/cli/lib/db.js b/cli/lib/db.js index 6787703b..02e438b5 100644 --- a/cli/lib/db.js +++ b/cli/lib/db.js @@ -91,17 +91,17 @@ const updateDatabase = (options, knex) => { // Database has been affected // Here we have to add a new log console.log('Db affected...'); - setLogData(knex, { - action, - type: action === 'addNote' ? 'notes' : 'records', - realId: result[0], - }) - .then((result) => { - console.log('result', result); + const type = action === 'addNote' ? 'notes' : 'records' + return knex.select('*').from('records').where({ date }).then((result) => { + console.log('records checked for id >>', result); + return setLogData(knex, { action, type, dataId: result[0].id }) + .then((result) => { + console.log('result', result); + }) }) - .catch((err) => { console.log(err); }) + // .catch((err) => { console.log(err); }) }) - .catch((err) => { console.log(err); }) + // .catch((err) => { console.log(err); }) // .catch(spinner.fail); }; @@ -203,24 +203,21 @@ const getRowsAfter = (knex, table, recordId) => // Create a log table const createLogTable = (knex) => { console.log('Check if log Table exists...'); - const exists = false; - // return knex.schema.hasTable('logs') - // .then((exists) => { - // return exists - if (!exists) { - console.log('exists >>', exists); + return knex.schema.hasTable('logs') + .then((exists) => { + if (!exists) { return knex.schema .createTable('logs', (table) => { table.increments('id'); table.string('action'); table.string('type'); - table.integer('realId'); + table.integer('dataId'); }) .catch((err) => { console.log('exists err', err) }) // .catch((e) => spinner.fail(`Errors in createTable ${e}`)); } - // }) + }) // .catch((err) => { console.log(err) }) } @@ -243,7 +240,7 @@ const setLogData = (knex, data) => { return createLogTable(knex) .then(() => { console.log('Finalize Log...'); - // return knex.insert(data).into('logs') + return knex.insert(data).into('logs') }) .catch((e) => { console.log(e);}) }