File tree Expand file tree Collapse file tree 3 files changed +27
-6
lines changed Expand file tree Collapse file tree 3 files changed +27
-6
lines changed Original file line number Diff line number Diff line change @@ -5,6 +5,7 @@ var _postsCount = 0;
5
5
var Post = function ( user , content ) {
6
6
this . id = ++ _postsCount ;
7
7
this . user_id = user . id ;
8
+ this . username = user . username ;
8
9
this . user = user ;
9
10
this . content = content ;
10
11
} ;
Original file line number Diff line number Diff line change 1
1
var User = require ( './models' ) . User ;
2
2
3
+ var renderPost = function ( post ) {
4
+ return {
5
+ id : post . id ,
6
+ content : post . content ,
7
+ username : post . username
8
+ } ;
9
+ } ;
10
+
3
11
var renderPosts = function ( user ) {
4
12
var out = {
5
13
posts : [ ] ,
@@ -8,10 +16,7 @@ var renderPosts = function(user) {
8
16
var posts = user . getPosts ( ) ;
9
17
for ( var i in posts ) {
10
18
var post = posts [ i ] ;
11
- out . posts . push ( {
12
- id : post . id ,
13
- content : post . content
14
- } ) ;
19
+ out . posts . push ( renderPost ( post ) ) ;
15
20
}
16
21
17
22
return out ;
@@ -25,4 +30,17 @@ exports.userPosts = function *() {
25
30
}
26
31
this . status = 200 ;
27
32
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
+ } ;
Original file line number Diff line number Diff line change 1
1
"use strict" ;
2
2
3
3
const koa = require ( "koa" ) ;
4
+ const passport = require ( "koa-passport" ) ;
4
5
const errorHandler = require ( "koa-error" ) ;
5
6
const bodyParser = require ( "koa-bodyparser" ) ;
6
7
const logger = require ( "koa-logger" ) ;
@@ -10,7 +11,7 @@ const app = module.exports = koa();
10
11
app . use ( logger ( ) ) ;
11
12
app . use ( errorHandler ( ) ) ;
12
13
app . use ( bodyParser ( ) ) ;
13
-
14
+ app . use ( passport . initialize ( ) ) ;
14
15
15
16
var router = new Router ( ) ;
16
17
@@ -29,6 +30,7 @@ var posts = require("./posts");
29
30
router . post ( "/api/signup" , auth . createUser ) ;
30
31
router . post ( "/api/login" , auth . loginUser ) ;
31
32
router . get ( "/api/account" , secured , auth . getCurrentUser ) ;
33
+ router . post ( "/api/posts" , secured , posts . createPost ) ;
32
34
router . get ( "/api/posts/:username" , posts . userPosts ) ;
33
35
app . use ( router . routes ( ) ) ;
34
36
You can’t perform that action at this time.
0 commit comments