diff --git a/.gitignore b/.gitignore index 40b878d..713d500 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -node_modules/ \ No newline at end of file +node_modules/ +.env diff --git a/app.js b/app.js index 7b5225c..2545a39 100644 --- a/app.js +++ b/app.js @@ -2,13 +2,18 @@ var pg = require('pg'); var express = require('express'); var app = express(); var bodyParser = require('body-parser'); +var ejs = require('ejs'); + +app.set('view engine', 'ejs'); +app.use(express.static(__dirname + '/views')); // allows us to parse the incoming request body app.use(bodyParser.urlencoded({ extended: true })); app.use(bodyParser.json()); // Connects to postgres once, on server start -var conString = process.env.DATABASE_URL || "postgres://localhost/action"; + +var conString = process.env.DATABASE_URL || 3000; var db; pg.connect(conString, function(err, client) { if (err) { @@ -20,7 +25,18 @@ pg.connect(conString, function(err, client) { // homepage app.get('/', function (req, res) { - res.send('Tradecraft messagehub API.') + res.send('Tradecraft Messagehub API') +}); + +//get all channels by type +app.get('/:type_token', function (req, res) { + db.query("SELECT type_token, channel_token FROM messages WHERE type_token = $1 GROUP BY type_token, channel_token", [req.params.type_token], function(err, result) { + if (err) { + res.status(500).send(err); + } else { + res.send(result.rows); + } + }) }); //get all messages in a type's channel @@ -35,13 +51,17 @@ app.get('/:type_token/:channel_token', function (req, res) { }) }); -//get all channels by type -app.get('/:type_token', function (req, res) { - db.query("SELECT type_token, channel_token FROM messages WHERE type_token = $1 GROUP BY type_token, channel_token", [req.params.type_token], function(err, result) { +//return messages in html +app.get('/:type_token/:channel_token/message', function (req, res) { + console.log(db); + db.query("SELECT user_name, message_text FROM messages WHERE type_token = $1 AND channel_token = $2", [req.params.type_token, req.params.channel_token], function(err, result) { if (err) { res.status(500).send(err); } else { - res.send(result.rows); + var messages = result.rows; + console.log(result.rows); + //res.send(messages); + res.render("messageList", {"messages" : messages}); } }) }); @@ -69,3 +89,6 @@ var server = app.listen(process.env.PORT, function () { console.log('Listening at http://%s:%s', host, port); }); + + + diff --git a/package.json b/package.json index 50ba3bc..88f0dbc 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,8 @@ "license": "ISC", "dependencies": { "express": "4.11.2", + "mongoose": "~3.6.13", + "morgan": "~1.0.0", "pg": "^4.2.0", "body-parser": "^1.11.0" } diff --git a/schema.sql b/schema.sql index f5492cd..23e2f65 100644 --- a/schema.sql +++ b/schema.sql @@ -3,5 +3,5 @@ CREATE TABLE messages ( channel_token varchar(100) NOT NULL, user_name varchar(100) NOT NULL, message_text text NOT NULL, - message_timestamp timestamptz DEFAULT localtimestamp NOT NULL + message_timestamp timestamp DEFAULT localtimestamp NOT NULL ); \ No newline at end of file diff --git a/views/messageList.ejs b/views/messageList.ejs new file mode 100644 index 0000000..e38fd36 --- /dev/null +++ b/views/messageList.ejs @@ -0,0 +1,9 @@ + +<% for (var i=0; i < messages.length; i++){ %> +
+ <%=messages[i].user_name%>: + <%=messages[i].message_text%> + <%=messages.user_name%><%=messages.message_text%> +
+<% } %> +