From 88cddcdbfa014f224fb1a8f83577faae96e3f0e4 Mon Sep 17 00:00:00 2001 From: shilpi Date: Mar 19 2018 21:50:00 +0000 Subject: [GSoC][Outreachy] Add function to fetch media_url for magazine posts --- diff --git a/src/providers/fedora-mag/fedora-mag.ts b/src/providers/fedora-mag/fedora-mag.ts index 196fc80..43b826c 100644 --- a/src/providers/fedora-mag/fedora-mag.ts +++ b/src/providers/fedora-mag/fedora-mag.ts @@ -9,7 +9,7 @@ const API_ENDPOINT = 'https://fedoramagazine.org/wp-json/wp/v2'; const API = { base: [API_ENDPOINT], posts: [API_ENDPOINT, 'posts'], -// media_url: [API_ENDPOINT, 'media'], + media_url: [API_ENDPOINT, 'media'], }; /* @@ -17,23 +17,24 @@ const API = { See https://angular.io/docs/ts/latest/guide/dependency-injection.html for more info on providers and Angular 2 DI. -*/ -@Injectable() -export class FedoraMag { - private posts:any; - private media_url:any; - constructor(private request:Request) { - this.posts = []; - this.media_url = []; - } + */ - getPosts() { - if (!_.isEmpty(this.posts)) { - return Promise.resolve(this.posts); + @Injectable() + export class FedoraMag { + private posts:any; + //private media_url:any; + constructor(private request:Request) { + this.posts = []; + //this.media_url = []; } - return new Promise((resolve, reject) => { - this.request.get(API.posts) + getPosts() { + if (!_.isEmpty(this.posts)) { + return Promise.resolve(this.posts); + } + + return new Promise((resolve, reject) => { + this.request.get(API.posts) .then(data => { this.posts = _.map(data, p => { var excerpt = p.excerpt.rendered; @@ -47,38 +48,35 @@ export class FedoraMag { length: excerpt.length, separator: '{ + return resolve(posts); + }) + .catch(reject); + }).catch(reject); - }); - } -/* getMedia_url(posts) { - if (!_.isEmpty(this.media_url[posts])) { - return Promise.resolve(this.media_url[posts]); + }); } - - return new Promise((resolve, reject) => { - this.request.get(this.API.media_url,{ posts : posts }) + getMedia_url(posts) { + /* + * This function returns posts by adding another key,i.e, "media_url" + */ + return new Promise ((resolve, reject) => { + this.request.get(API.media_url,{ posts : posts }) .then(data => { - this.media_url[posts] = _.map(data, i => { - // var excerpt = p.excerpt.rendered; - var img_url = { - img_id: i.id, - img_link: i.guid.rendered, - }; - //image_url = func_url(post.image); - return post; - }); - - return resolve(this.posts); + for (let i in data){ + posts[i]["media_url"] = data[i].guid.rendered; + } + return resolve(posts); }).catch(reject); - }); - }*/ -} + }); + } + }