chore(server): Move api-server in to it's own DIR
This commit is contained in:
committed by
mrugesh mohapatra
parent
9fba6bce4c
commit
46a217d0a5
47
api-server/server/rss/lybsyn.js
Normal file
47
api-server/server/rss/lybsyn.js
Normal file
@ -0,0 +1,47 @@
|
||||
import http from 'http';
|
||||
import _ from 'lodash';
|
||||
|
||||
const lybsynFeed = 'http://freecodecamp.libsyn.com/render-type/json';
|
||||
|
||||
export function getLybsynFeed() {
|
||||
return new Promise((resolve, reject) => {
|
||||
http.get(lybsynFeed, res => {
|
||||
let raw = '';
|
||||
|
||||
res.on('data', chunk => {
|
||||
raw += chunk;
|
||||
});
|
||||
|
||||
res.on('error', err => reject(err));
|
||||
|
||||
res.on('end', () => {
|
||||
let feed = [];
|
||||
|
||||
try {
|
||||
feed = JSON.parse(raw);
|
||||
} catch (err) {
|
||||
return reject(err);
|
||||
}
|
||||
const items = feed.map(
|
||||
item => _.pick(item, [
|
||||
'full_item_url',
|
||||
'item_title',
|
||||
'release_date',
|
||||
'item_body_short'
|
||||
])
|
||||
)
|
||||
/* eslint-disable camelcase */
|
||||
.map(({ full_item_url, item_title, release_date, item_body_short}) => ({
|
||||
title: item_title,
|
||||
extract: item_body_short,
|
||||
isoDate: new Date(release_date).toISOString(),
|
||||
link: full_item_url
|
||||
}));
|
||||
/* eslint-enable camelcase */
|
||||
return resolve(items);
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
}
|
Reference in New Issue
Block a user