Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
node_modules/
node_modules/
.env
35 changes: 29 additions & 6 deletions app.js
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand All @@ -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
Expand All @@ -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});
}
})
});
Expand Down Expand Up @@ -69,3 +89,6 @@ var server = app.listen(process.env.PORT, function () {
console.log('Listening at http://%s:%s', host, port);

});



2 changes: 2 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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"
}
Expand Down
2 changes: 1 addition & 1 deletion schema.sql
Original file line number Diff line number Diff line change
Expand Up @@ -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
);
9 changes: 9 additions & 0 deletions views/messageList.ejs
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@

<% for (var i=0; i < messages.length; i++){ %>
<div class="user_name">
<%=messages[i].user_name%>:
<%=messages[i].message_text%>
<%=messages.user_name%><%=messages.message_text%>
</div>
<% } %>