diff --git a/index.js b/index.js index 3907d3b5..4dc917d8 100644 --- a/index.js +++ b/index.js @@ -1,36 +1,70 @@ -console.log("works!!", process.argv[2]); - +// Initialisation const pg = require('pg'); const configs = { - user: 'akira', - host: '127.0.0.1', - database: 'todo', - port: 5432, + user: 'qunda', + host: '127.0.0.1', + database: 'todo', + port: 5432, }; const client = new pg.Client(configs); -let queryDoneCallback = (err, result) => { - if (err) { - console.log("query error", err.message); - } else { - console.log("result", result.rows ); - } - client.end(); -}; -let clientConnectionCallback = (err) => { - if( err ){ - console.log( "error", err.message ); +// Code +const queryType = process.argv[2].toLowerCase(); + +client.connect((error) => { + if (error) { + console.log('connection error: ', error.message); } - let text = "INSERT INTO todo (name) VALUES ($1) RETURNING id"; + switch (queryType) { + case 'show': + { + let queryText = 'SELECT * FROM items ORDER BY id'; - const values = ["hello"]; + client.query(queryText, (error, result) => { + if (error) { + console.log("query error: ", error.message); + } else { + const todoList = result.rows; - client.query(text, values, queryDoneCallback); -}; + todoList.forEach(item => { + if (item.done === false) { + console.log(`${item.id}. [ ] - ${item.name}\nCreated: ${item.created_at}\n\n`); + } else { + console.log(`${item.id}. [X] - ${item.name}\nCreated: ${item.created_at}\nUpdated: ${item.updated_at}\n\n`); + } + }) + } + }); + break; + } + + case 'done': + { + const id = process.argv[3]; -client.connect(clientConnectionCallback); + client.query('SELECT * FROM items WHERE id = $1', [id], (error, result) => { + if (error) { + console.log('query error: ', error.message); + } else { + if (result.rows[0].done === false) { + client.query('UPDATE items SET done = true, updated_at = now() WHERE id = $1', [id], (error, result) => { + if (error) { + console.log('update error: ', error.message); + } else { + console.log(`Task #${id} has been updated!`); + } + }); + } else { + console.log(`Task #${id} has already been completed!`); + } + } + }); + break; + } + } +}); \ No newline at end of file