router.get('/api/v1/todos', (req, res, next) => {
const results = [];
// Get a Postgres client from the connection pool
const client = new pg.Client({
user: "",
password: "",
database: "",
port: 5432,
host: "",
ssl: true
});
client.connect(function(err, client, done) {
// Handle connection errors
// SQL Query > Select Data
const query = client.query('SELECT * FROM items ORDER BY id ASC;');
// Stream results back one row at a time
query.on('row', (row) => {
results.push(row);
});
// After all data is returned, close connection and return results
query.on('end', () => {
//done();
return res.json(results);
});
});
//pg.connect();
});
router.post('/api/v1/todos', (req, res, next) => {
const results = [];
// Grab data from http request
const data = {text: req.body.text, complete: false};
// Get a Postgres client from the connection pool
const client = new pg.Client({
user: "",
password: "",
database: "",
port: 5432,
host: "",
ssl: true
});
client.connect();
//pg.connect(function (err, client, done){
// Handle connection errors
// SQL Query > Insert Data
client.query('INSERT INTO items(text, complete) values($1, $2)',
[data.text, data.complete]);
// SQL Query > Select Data
const query = client.query('SELECT * FROM items ORDER BY id ASC');
// Stream results back one row at a time
query.on('row', (row) => {
results.push(row);
});
// After all data is returned, close connection and return results
query.on('end', () => {
// done();
return res.json(results);
});
//});
});
router.put('/api/v1/todos/:todo_id', (req, res, next) => {
const results = [];
// Grab data from the URL parameters
const id = req.params.todo_id;
// Grab data from http request
const data = {text: req.body.text, complete: req.body.complete};
// Get a Postgres client from the connection pool
pg.connect(function (err, client, done) {
// Handle connection errors
if(err) {
done();
console.log(err);
return res.status(500).json({success: false, data: err});
}
// SQL Query > Update Data
client.query('UPDATE items SET text=($1), complete=($2) WHERE id=($3)',
[data.text, data.complete, id]);
// SQL Query > Select Data
const query = client.query("SELECT * FROM items ORDER BY id ASC");
// Stream results back one row at a time
query.on('row', (row) => {
results.push(row);
});
// After all data is returned, close connection and return results
query.on('end', function() {
done();
return res.json(results);
});
});
});
router.delete('/api/v1/todos/:todo_id', (req, res, next) => {
const results = [];
// Grab data from the URL parameters
const id = req.params.todo_id;
// Get a Postgres client from the connection pool
pg.connect(function (err, client, done) {
// Handle connection errors
if(err) {
done();
console.log(err);
return res.status(500).json({success: false, data: err});
}
// SQL Query > Delete Data
client.query('DELETE FROM items WHERE id=($1)', [id]);
// SQL Query > Select Data
var query = client.query('SELECT * FROM items ORDER BY id ASC');
// Stream results back one row at a time
query.on('row', (row) => {
results.push(row);
});
// After all data is returned, close connection and return results
query.on('end', () => {
done();
return res.json(results);
});
});
});
const express = require('express'); const router = express.Router(); const pg = require('pg'); const path = require('path'); const connectionString = ''; const client = new pg.Client({ user: "", password: "", database: "", port: 5432, host: "", ssl: true }); client.connect();
router.get('/', (req, res, next) => { res.sendFile(path.join( __dirname, '..', '..', 'client', 'views', 'index.html')); });
router.get('/api/v1/todos', (req, res, next) => { const results = []; // Get a Postgres client from the connection pool const client = new pg.Client({ user: "", password: "", database: "", port: 5432, host: "", ssl: true }); client.connect(function(err, client, done) { // Handle connection errors
}); //pg.connect(); });
router.post('/api/v1/todos', (req, res, next) => { const results = []; // Grab data from http request const data = {text: req.body.text, complete: false}; // Get a Postgres client from the connection pool const client = new pg.Client({ user: "", password: "", database: "", port: 5432, host: "", ssl: true }); client.connect(); //pg.connect(function (err, client, done){ // Handle connection errors
//}); });
router.put('/api/v1/todos/:todo_id', (req, res, next) => { const results = []; // Grab data from the URL parameters const id = req.params.todo_id; // Grab data from http request const data = {text: req.body.text, complete: req.body.complete}; // Get a Postgres client from the connection pool pg.connect(function (err, client, done) { // Handle connection errors if(err) { done(); console.log(err); return res.status(500).json({success: false, data: err}); } // SQL Query > Update Data client.query('UPDATE items SET text=($1), complete=($2) WHERE id=($3)', [data.text, data.complete, id]); // SQL Query > Select Data const query = client.query("SELECT * FROM items ORDER BY id ASC"); // Stream results back one row at a time query.on('row', (row) => { results.push(row); }); // After all data is returned, close connection and return results query.on('end', function() { done(); return res.json(results); }); }); });
router.delete('/api/v1/todos/:todo_id', (req, res, next) => { const results = []; // Grab data from the URL parameters const id = req.params.todo_id; // Get a Postgres client from the connection pool pg.connect(function (err, client, done) { // Handle connection errors if(err) { done(); console.log(err); return res.status(500).json({success: false, data: err}); } // SQL Query > Delete Data client.query('DELETE FROM items WHERE id=($1)', [id]); // SQL Query > Select Data var query = client.query('SELECT * FROM items ORDER BY id ASC'); // Stream results back one row at a time query.on('row', (row) => { results.push(row); }); // After all data is returned, close connection and return results query.on('end', () => { done(); return res.json(results); }); }); });
module.exports = router;