var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/cs142project6');
// ....
var allPromises = Promise.all(userPromises).then(function () {
var photoModels = [];
var userIDs = Object.keys(mapFakeId2RealId);
for (var i = 0; i < userIDs.length; i++) {
photoModels = photoModels.concat(cs142models.photoOfUserModel(userIDs[i]));
}
var photoPromises = photoModels.map(function (photo) {
return Photo.create({
file_name: photo.file_name,
date_time: photo.date_time,
user_id: mapFakeId2RealId[photo.user_id]
}, function (err, photoObj) {
if (err) {
console.error('Error create user', err);
} else {
photo.objectID = photoObj._id;
if (photo.comments) {
photo.comments.forEach(function (comment) {
photoObj.comments.push({
comment: comment.comment,
date_time: comment.date_time,
user_id: comment.user.objectID
});
console.log("Adding comment of length %d by user %s to photo %s",
comment.comment.length,
comment.user.objectID,
photo.file_name);
});
}
photoObj.save();
console.log('Adding photo:', photo.file_name, ' of user ID ', photoObj.user_id);
}
});
});
var mongoose = require('mongoose');
var async = require('async');
mongoose.connect('mongodb://localhost/cs142project6');
// ....
app.get('/photosOfUser/:id', function (request, response) {
if (!request.session ||!request.session.login_name) {
response.status(401).send();
return;
}
var user_id = request.params.id;
Photo.find({user_id: user_id}, function (err, photos) {
if (photos === undefined) {
response.status(400).send('Bad param ' + user_id);
return;
}
if (err) {
console.error('Doing /photosOfUser/' + user_id + 'error:', err);
response.status(400).send(JSON.stringify(err));
return;
}
var Photo = JSON.parse(JSON.stringify(photos));
async.each(Photo, function (photo, doneCallback) {
delete photo.__v;
async.each(photo.comments, function (comment, comment_callback) {
var temp_user_id = comment.user_id;
console.log("user id "+temp_user_id);
delete comment.user_id;
User.findOne({user_id: temp_user_id}, function(err, user) {
if (err) {
comment_callback(err);
return;
}
if (user.length === 0) {
response.status(400).send('Missing user id');
return;
}
comment.user = JSON.parse(JSON.stringify(user));
console.log("user "+user);
delete comment.user.occupation;
delete comment.user.description;
delete comment.user.location;
delete comment.user.__v;
delete comment.user.password;
delete comment.user.login_name;
delete comment.user.salt;
delete comment.user.password_digest;
comment_callback();
});
}, function (err) {
doneCallback(err);
});
}, function (err) {
if (err) {
response.status(400).send(JSON.stringify(err));
}
response.end(JSON.stringify(Photo));
});
});
});