From fdf872a05f9b5d93a3ec19a97ec3f5e25701528b Mon Sep 17 00:00:00 2001 From: Abhishek Date: Jul 10 2018 08:16:43 +0000 Subject: fix providers to fetch images --- diff --git a/src/providers/community-blog/community-blog.ts b/src/providers/community-blog/community-blog.ts index 08f20a9..4108cd5 100644 --- a/src/providers/community-blog/community-blog.ts +++ b/src/providers/community-blog/community-blog.ts @@ -29,7 +29,9 @@ export class CommunityBlogService { title: blogpost.title.rendered, excerpt: blogpost.excerpt.rendered, content: blogpost.content.rendered, - publishedAt: beautifyDate(blogpost.date_gmt, 'blog') + publishedAt: beautifyDate(blogpost.date_gmt, 'blog'), + comments: null, + featuredImage:'' }))); } } diff --git a/src/providers/fedo-cal/fedo-cal.ts b/src/providers/fedo-cal/fedo-cal.ts index e724f19..f07fa55 100644 --- a/src/providers/fedo-cal/fedo-cal.ts +++ b/src/providers/fedo-cal/fedo-cal.ts @@ -20,7 +20,6 @@ const ENDPOINT = chooseEndpoint('/fedocal', 'https://apps.fedoraproject.org/cale */ const CALENDAR_STORAGE_KEY = 'fedocal__calendars'; - /** * Convert calendar name from API to a value suitable for display * @@ -194,9 +193,12 @@ export class FedoCalService { } /** - * Fetch the list of meetings for a given FedoCal calendar name from FedoCal API + * Fetch the list of meetings for a given FedoCal calendar name * * @param calendar FedoCal calendar name + * @param type Type of Meetings to fetch: + * - start(starting after today i.e upcoming meetings) + * - end(ended today i.e past meetings) * @returns Observable which emits an array of meetings */ fetchMeetings(calendar: Calendar, type: string): Observable { diff --git a/src/providers/fedora-magazine/fedora-magazine.ts b/src/providers/fedora-magazine/fedora-magazine.ts index 1cace85..3ee6c58 100644 --- a/src/providers/fedora-magazine/fedora-magazine.ts +++ b/src/providers/fedora-magazine/fedora-magazine.ts @@ -5,7 +5,7 @@ import { Observable } from 'rxjs/Observable'; import { map, tap } from 'rxjs/operators'; import { fromPromise } from 'rxjs/observable/fromPromise'; import { merge } from 'rxjs/observable/merge'; -import { chooseEndpoint, defaultValue, beautifyDate } from '../../utils'; +import { chooseEndpoint, defaultValue, beautifyDate} from '../../utils'; /** * Endpoint for this service. @@ -57,16 +57,28 @@ export interface Post { /** * Time of publication */ - publishedAt: string + publishedAt: string, + + /** + * Number of comments on the article + */ + + comments: number, + + /** + * Featured Image of article + */ + + featuredImage: string } /** * Represents a image on App Carousel fetched from fedora magazine */ export interface Image { - /** - * Unique ID of the post, supplied by the CMS - */ + /** + * Unique ID of the post, supplied by the CMS + */ id: number, /** @@ -104,8 +116,8 @@ export class FedoraMagazineService { * * @returns Observable which emits an array of posts */ - fetchPosts(): Observable { - return this.http.get(`${ENDPOINT}/posts`) + fetchPosts(postCount): Observable { + return this.http.get(`${ENDPOINT}/posts`, { params: { '_embed': '', 'per_page': postCount } }) .pipe( map((data: any[]) => data.map((post: any) => ({ id: post.id, @@ -115,7 +127,9 @@ export class FedoraMagazineService { image: post.featured_media, excerpt: post.excerpt.rendered, content: post.content.rendered, - publishedAt: beautifyDate(post.date_gmt,'blog'), + publishedAt: beautifyDate(post.date_gmt, 'blog'), + featuredImage: post._embedded['wp:featuredmedia']['0'].media_details.sizes.medium.source_url, + comments: post._embedded['replies'] !== undefined ? post._embedded['replies']['0'].length : 0, }))) ); } @@ -128,8 +142,8 @@ export class FedoraMagazineService { * * @returns Observable which emits an array of posts */ - getPosts() { - return merge(this.loadCachedPosts(), this.fetchPosts().pipe( + getPosts(postCount) { + return merge(this.loadCachedPosts(), this.fetchPosts(postCount).pipe( tap(x => this.storage.set(STORAGE_KEY, x))) ); } @@ -144,7 +158,7 @@ export class FedoraMagazineService { let pageResults = '5'; // get top 5 posts only let imageCategory = '609'; //get posts from New in Fedora category - return this.http.get(`${ENDPOINT}/posts`, { params: { 'per_page': pageResults, 'categories':imageCategory, '_embed': '' } }) + return this.http.get(`${ENDPOINT}/posts`, { params: { 'per_page': pageResults, 'categories': imageCategory, '_embed': '' } }) .map((data: any[]) => data.map((image: any) => ({ id: image.id, link: image.link,