Skip to content

Commit

Permalink
SWIK-996 Using request promise
Browse files Browse the repository at this point in the history
  • Loading branch information
dpaun committed Feb 12, 2017
1 parent 98be779 commit ba87583
Showing 1 changed file with 179 additions and 81 deletions.
260 changes: 179 additions & 81 deletions application/controllers/handler.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,15 @@ const boom = require('boom'), //Boom gives us some predefined http codes and pro
co = require('../common');

const Microservices = require('../configs/microservices');
let http = require('http');
// let http = require('http');
let rp = require('request-promise-native');

//Send request to insert new notification
function createNotification(activity) {
//TODO find list of subscribed users
// if (activity.content_id.split('-')[0] === '8') {//current dummy user is subscribed to this content_id


let notification = {
activity_type: activity.activity_type,
user_id: activity.user_id,
Expand All @@ -34,31 +36,44 @@ function createNotification(activity) {
notification.activity_id = activity.id;

let data = JSON.stringify(notification);
let options = {
host: Microservices.notification.uri,
port: 80,
path: '/notification/new',
method: 'POST',
headers : {
'Content-Type': 'application/json',
'Cache-Control': 'no-cache',
'Content-Length': data.length
}
};

let req = http.request(options, (res) => {
// console.log('STATUS: ' + res.statusCode);
// console.log('HEADERS: ' + JSON.stringify(res.headers));
res.setEncoding('utf8');
res.on('data', (chunk) => {
// console.log('Response: ', chunk);
});
});
req.on('error', (e) => {
console.log('problem with request: ' + e.message);
rp.post({uri: Microservices.notification.uri + '/notification/new', body:data}).then((res) => {
console.log('Res', res);


// callback(null, {activities: activities, selector: selector, hasMore: (activities.length === 30)});
}).catch((err) => {
console.log('Error', err);

// callback(null, {activities: [], selector: selector, hasMore: false});
});
req.write(data);
req.end();


// let options = {
// host: Microservices.notification.uri,
// port: 80,
// path: '/notification/new',
// method: 'POST',
// headers : {
// 'Content-Type': 'application/json',
// 'Cache-Control': 'no-cache',
// 'Content-Length': data.length
// }
// };

// let req = http.request(options, (res) => {
// // console.log('STATUS: ' + res.statusCode);
// // console.log('HEADERS: ' + JSON.stringify(res.headers));
// res.setEncoding('utf8');
// res.on('data', (chunk) => {
// // console.log('Response: ', chunk);
// });
// });
// req.on('error', (e) => {
// console.log('problem with request: ' + e.message);
// });
// req.write(data);
// req.end();
}

module.exports = {
Expand Down Expand Up @@ -340,36 +355,73 @@ function getSubdecksAndSlides(content_kind, id) {
}]);
} else {//if deck => get activities of all its decks and slides
let arrayOfSubdecksAndSlides = [];
let options = {
host: Microservices.deck.uri,
port: 80,
path: '/decktree/' + id
};
rp.get({uri: Microservices.deck.uri + '/decktree/' + id}).then((res) => {
console.log('Res', res);

try {
let parsed = JSON.parse(res);
arrayOfSubdecksAndSlides = getArrayOfChildren(parsed);
} catch(e) {
console.log(e); // error in the above string (in this case, yes)!
}
// if (res.statusCode === 200) {//user is found
// let parsed = JSON.parse(res);
// username = parsed.username;
// avatar = parsed.picture;
// }

let req = http.get(options, (res) => {

// console.log('HEADERS: ' + JSON.stringify(res.headers));
res.setEncoding('utf8');
let body = '';
res.on('data', (chunk) => {
// console.log('Response: ', chunk);
body += chunk;
});
res.on('end', () => {
if (res.statusCode === 200) {//deck found
let parsed = JSON.parse(body);
arrayOfSubdecksAndSlides = getArrayOfChildren(parsed);
}
resolve(arrayOfSubdecksAndSlides);
});
resolve(arrayOfSubdecksAndSlides);

});
req.on('error', (e) => {
console.log('problem with request: ' + e.message);
reject(e);

// callback(null, {activities: activities, selector: selector, hasMore: (activities.length === 30)});
}).catch((err) => {
console.log('Error', err);

resolve(arrayOfSubdecksAndSlides);
// callback(null, {activities: [], selector: selector, hasMore: false});
});
}
});

// let myPromise = new Promise((resolve, reject) => {
// if (content_kind === 'slide') {
// resolve([{
// type: content_kind,
// id: id
// }]);
// } else {//if deck => get activities of all its decks and slides
// let arrayOfSubdecksAndSlides = [];
// let options = {
// host: Microservices.deck.uri,
// port: 80,
// path: '/decktree/' + id
// };
//
// let req = http.get(options, (res) => {
//
// // console.log('HEADERS: ' + JSON.stringify(res.headers));
// res.setEncoding('utf8');
// let body = '';
// res.on('data', (chunk) => {
// // console.log('Response: ', chunk);
// body += chunk;
// });
// res.on('end', () => {
// if (res.statusCode === 200) {//deck found
// let parsed = JSON.parse(body);
// arrayOfSubdecksAndSlides = getArrayOfChildren(parsed);
// }
// resolve(arrayOfSubdecksAndSlides);
// });
//
// });
// req.on('error', (e) => {
// console.log('problem with request: ' + e.message);
// reject(e);
// });
// }
// });
return myPromise;
}

Expand All @@ -390,42 +442,88 @@ function getArrayOfChildren(node) {//recursive
function insertAuthor(activity) {
let myPromise = new Promise((resolve, reject) => {

let options = {
host: Microservices.user.uri,
port: 80,
path: '/user/' + activity.user_id
};

let req = http.get(options, (res) => {
// console.log('HEADERS: ' + JSON.stringify(res.headers));
res.setEncoding('utf8');
let body = '';
res.on('data', (chunk) => {
// console.log('Response: ', chunk);
body += chunk;
});
res.on('end', () => {
let username = 'unknown';
let avatar = '';
if (res.statusCode === 200) {//user is found
let parsed = JSON.parse(body);
username = parsed.username;
avatar = parsed.picture;
}
activity.author = {
id: activity.user_id,
username: username,
avatar: avatar
};
resolve(activity);
});
});
req.on('error', (e) => {
console.log('problem with request: ' + e.message);
reject(e);

let username = 'unknown';
let avatar = '';
rp.get({uri: Microservices.user.uri + '/user/' + activity.user_id}).then((res) => {
console.log('Res', res);

try {
let parsed = JSON.parse(res);
username = parsed.username;
avatar = parsed.picture;
} catch(e) {
console.log(e); // error in the above string (in this case, yes)!
}
// if (res.statusCode === 200) {//user is found
// let parsed = JSON.parse(res);
// username = parsed.username;
// avatar = parsed.picture;
// }

activity.author = {
id: activity.user_id,
username: username,
avatar: avatar
};
resolve(activity);






// callback(null, {activities: activities, selector: selector, hasMore: (activities.length === 30)});
}).catch((err) => {
console.log('Error', err);
activity.author = {
id: activity.user_id,
username: username,
avatar: avatar
};
resolve(activity);
// callback(null, {activities: [], selector: selector, hasMore: false});
});
});

// let myPromise = new Promise((resolve, reject) => {
//
// let options = {
// host: Microservices.user.uri,
// port: 80,
// path: '/user/' + activity.user_id
// };
//
// let req = http.get(options, (res) => {
// // console.log('HEADERS: ' + JSON.stringify(res.headers));
// res.setEncoding('utf8');
// let body = '';
// res.on('data', (chunk) => {
// // console.log('Response: ', chunk);
// body += chunk;
// });
// res.on('end', () => {
// let username = 'unknown';
// let avatar = '';
// if (res.statusCode === 200) {//user is found
// let parsed = JSON.parse(body);
// username = parsed.username;
// avatar = parsed.picture;
// }
// activity.author = {
// id: activity.user_id,
// username: username,
// avatar: avatar
// };
// resolve(activity);
// });
// });
// req.on('error', (e) => {
// console.log('problem with request: ' + e.message);
// reject(e);
// });
// });

return myPromise;
}

Expand Down

0 comments on commit ba87583

Please sign in to comment.