Skip to content

Commit 0591668

Browse files
committed
fix bug. can not show user's micropost when not signed in.
1 parent 2890453 commit 0591668

File tree

4 files changed

+38
-7
lines changed

4 files changed

+38
-7
lines changed

src/app/components/home/Feed.ts

+1-3
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import {ROUTER_DIRECTIVES} from 'angular2/router';
44
import {
55
MicropostService,
66
FeedService,
7-
LoginService,
87
ErrorHandler
98
} from 'app/services';
109
import {Micropost} from 'app/interfaces'
@@ -28,7 +27,6 @@ export class Feed {
2827

2928
constructor(private micropostService:MicropostService,
3029
private feedService:FeedService,
31-
private loginService:LoginService,
3230
private errorHandler:ErrorHandler) {
3331
this.list();
3432

@@ -52,7 +50,7 @@ export class Feed {
5250
}
5351

5452
isMyPost(post:Micropost):boolean {
55-
return post.user.id == this.loginService.currentUser().id
53+
return this.micropostService.isMyPost(post);
5654
}
5755

5856
}

src/app/components/micropost/MicropostList.ts

+1-3
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import {pagination} from 'ng2-bootstrap/components/pagination/pagination';
1010
import {
1111
UserMicropostService,
1212
MicropostService,
13-
LoginService,
1413
ErrorHandler
1514
} from 'app/services';
1615
import {Micropost} from 'app/interfaces';
@@ -38,7 +37,6 @@ export class MicropostList {
3837

3938
constructor(private userMicropostService:UserMicropostService,
4039
private micropostService:MicropostService,
41-
private loginService:LoginService,
4240
private errorHandler:ErrorHandler) {
4341
}
4442

@@ -70,7 +68,7 @@ export class MicropostList {
7068
}
7169

7270
isMyPost(post:Micropost):boolean {
73-
return post.user.id == this.loginService.currentUser().id
71+
return this.micropostService.isMyPost(post);
7472
}
7573

7674
}

src/app/services/MicropostService.spec.ts

+28
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ import {
2121

2222
import {APP_TEST_PROVIDERS} from "app/bindings";
2323
import {MicropostService} from "app/services";
24+
import {Micropost} from "../interfaces";
25+
import {LoginService} from "./LoginService";
2426

2527
export function main() {
2628
describe('MicropostService', () => {
@@ -62,5 +64,31 @@ export function main() {
6264
});
6365
}); // .delete
6466

67+
describe('.isMyPost', () => {
68+
let post:Micropost = {
69+
id: 1,
70+
content: 'some content',
71+
user: {
72+
id: 1,
73+
email: 'test1@test.com',
74+
},
75+
createdAt: 0,
76+
};
77+
let loginService:LoginService;
78+
beforeEach(inject([LoginService], _ => loginService = _));
79+
80+
it('returns false when not signed in', () => {
81+
expect(micropostService.isMyPost(post)).toBeFalsy();
82+
});
83+
it('returns false when not my post', () => {
84+
spyOn(loginService, 'currentUser').and.returnValue({id: 2});
85+
expect(micropostService.isMyPost(post)).toBeFalsy();
86+
});
87+
it('returns true when my post', () => {
88+
spyOn(loginService, 'currentUser').and.returnValue({id: 1});
89+
expect(micropostService.isMyPost(post)).toBeTruthy();
90+
});
91+
}); // .isMyPost
92+
6593
});
6694
}

src/app/services/MicropostService.ts

+8-1
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,16 @@ import {Injectable} from 'angular2/core';
22
import {Response} from 'angular2/http';
33

44
import {Http} from 'app/http';
5+
import {Micropost} from 'app/interfaces';
6+
import {LoginService} from 'app/services';
57

68
const url = '/api/microposts';
79

810
@Injectable()
911
export class MicropostService {
1012

11-
constructor(private http:Http) {
13+
constructor(private http:Http,
14+
private loginService:LoginService) {
1215
}
1316

1417
create(content:string):Rx.Observable<Response> {
@@ -20,4 +23,8 @@ export class MicropostService {
2023
return this.http.delete(`${url}/${id}`);
2124
}
2225

26+
isMyPost(post:Micropost) {
27+
if (!this.loginService.currentUser()) return false;
28+
return post.user.id == this.loginService.currentUser().id
29+
}
2330
}

0 commit comments

Comments
 (0)