Skip to content

Commit 4aee4f0

Browse files
committed
create posts in server
1 parent e5a5c2d commit 4aee4f0

File tree

3 files changed

+27
-6
lines changed

3 files changed

+27
-6
lines changed

server/models.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ var _postsCount = 0;
55
var Post = function(user, content) {
66
this.id = ++_postsCount;
77
this.user_id = user.id;
8+
this.username = user.username;
89
this.user = user;
910
this.content = content;
1011
};

server/posts.js

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
var User = require('./models').User;
22

3+
var renderPost = function(post) {
4+
return {
5+
id: post.id,
6+
content: post.content,
7+
username: post.username
8+
};
9+
};
10+
311
var renderPosts = function(user) {
412
var out = {
513
posts: [],
@@ -8,10 +16,7 @@ var renderPosts = function(user) {
816
var posts = user.getPosts();
917
for(var i in posts) {
1018
var post = posts[i];
11-
out.posts.push({
12-
id: post.id,
13-
content: post.content
14-
});
19+
out.posts.push(renderPost(post));
1520
}
1621

1722
return out;
@@ -25,4 +30,17 @@ exports.userPosts = function *() {
2530
}
2631
this.status = 200;
2732
this.body = renderPosts(user);
28-
};
33+
};
34+
35+
exports.createPost = function *() {
36+
var user = this.passport.user;
37+
var params = this.request.body || {};
38+
var content = (params.content || "").trim();
39+
40+
if(!content) this.throw("No content provided", 422);
41+
42+
var post = user.addPost(content);
43+
44+
this.status = 201;
45+
this.body = renderPost(post);
46+
};

server/server.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
"use strict";
22

33
const koa = require("koa");
4+
const passport = require("koa-passport");
45
const errorHandler = require("koa-error");
56
const bodyParser = require("koa-bodyparser");
67
const logger = require("koa-logger");
@@ -10,7 +11,7 @@ const app = module.exports = koa();
1011
app.use(logger());
1112
app.use(errorHandler());
1213
app.use(bodyParser());
13-
14+
app.use(passport.initialize());
1415

1516
var router = new Router();
1617

@@ -29,6 +30,7 @@ var posts = require("./posts");
2930
router.post("/api/signup", auth.createUser);
3031
router.post("/api/login", auth.loginUser);
3132
router.get ("/api/account", secured, auth.getCurrentUser);
33+
router.post("/api/posts", secured, posts.createPost);
3234
router.get ("/api/posts/:username", posts.userPosts);
3335
app.use(router.routes());
3436

0 commit comments

Comments
 (0)