diff --git a/src/app/services/feed/feed.service.ts b/src/app/services/feed/feed.service.ts index 0535ed7..1333f15 100644 --- a/src/app/services/feed/feed.service.ts +++ b/src/app/services/feed/feed.service.ts @@ -289,7 +289,7 @@ export class FeedService extends BaseService { {headers: this.headers}) .pipe(this.retryRated()) .subscribe(response => { - this.posts.next(this.constructAllPosts(response)); + this.posts.next(this.constructAllPosts(response.data.getPosts)); this.activePostList = sort; }); } @@ -303,7 +303,7 @@ export class FeedService extends BaseService { this.http.post(environment.graphQLUrl, body, {headers: this.headers}) .pipe(this.retryRated()) .subscribe(response => { - const posts = this.constructAllPosts(response); + const posts = this.constructAllPosts(response.data.getPosts); const previousPosts = this.posts.getValue(); for (const post of previousPosts.reverse()) { if (!posts.find(p => p.id === post.id)) { @@ -360,7 +360,7 @@ export class FeedService extends BaseService { public constructAllPosts(response: any): Post[] { const posts = new Array(); - for (const post of response.data.getPosts) { + for (const post of response) { let profilePicture: string; if (post.author.profilePicture) { profilePicture = environment.greenvironmentUrl + post.author.profilePicture; diff --git a/src/app/services/profile/profile.service.ts b/src/app/services/profile/profile.service.ts index 809cb71..a808a16 100644 --- a/src/app/services/profile/profile.service.ts +++ b/src/app/services/profile/profile.service.ts @@ -7,6 +7,7 @@ import {User} from 'src/app/models/user'; import {Subject} from 'rxjs'; import {Activity} from 'src/app/models/activity'; import {BaseService} from '../base.service'; +import {FeedService} from 'src/app/services/feed/feed.service'; const graphqlGetProfileQuery = `query($userId: ID) { getUser(userId:$userId){ @@ -30,6 +31,7 @@ const graphqlGetProfileQuery = `query($userId: ID) { downvotes, userVote, deletable, + media {url, type}, activity{ id name @@ -39,7 +41,7 @@ const graphqlGetProfileQuery = `query($userId: ID) { author{ name, handle, - profilePicture + profilePicture, id}, createdAt } @@ -51,7 +53,7 @@ const graphqlGetProfileQuery = `query($userId: ID) { }) export class ProfileService extends BaseService { - constructor(http: HttpClient) { + constructor(http: HttpClient, private feedService: FeedService) { super(http); } @@ -96,38 +98,7 @@ export class ProfileService extends BaseService { const temp = new Date(Number(response.data.getUser.joinedAt)); const date = temp.toLocaleString('en-GB'); profile.joinedAt = date; - for (const post of response.data.getUser.posts) { - const id: number = post.id; - const content: string = post.content; - const htmlContent: string = post.htmlContent; - const upvotes: number = post.upvotes; - const downvotes: number = post.downvotes; - const userVote: string = post.userVote; - const deletable: boolean = post.deletable; - let profilePicture: string; - if (post.author.profilePicture) { - profilePicture = environment.greenvironmentUrl + post.author.profilePicture; - } else { - profilePicture = 'assets/images/default-profilepic.svg'; - } - const author = new Author(post.author.id, post.author.name, post.author.handle, profilePicture); - const ptemp = new Date(Number(post.createdAt)); - const pdate = ptemp.toLocaleString('en-GB'); - let activity: Activity; - if (post.activity) { - activity = new Activity( - post.activity.id, - post.activity.name, - post.activity.description, - post.activity.points); - } else { - activity = null; - } - - // tslint:disable-next-line: max-line-length - posts.push(new Post(id, content, htmlContent, upvotes, downvotes, userVote, deletable, pdate, author, activity)); - } - profile.posts = posts; + profile.posts = this.feedService.constructAllPosts(response.data.getUser.posts); return profile; } return null;