Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var passport = require('passport');
- var mongoose = require('mongoose');
- var mongo = require('mongodb');
- var User = mongoose.model('User');
- var Dish = mongoose.model('Dish');
- var Invite = mongoose.model('Invite');
- var Event = mongoose.model('Event');
- var Post = mongoose.model('Post');
- var emailer = require('../util/emailer');
- var crypto = require('crypto');
- //var grid = require('gridfs-stream');
- var fs = require('fs');
- var _ = require('underscore');
- var formidable = require('formidable');
- var GridStore = require('mongodb').GridStore;
- var ObjectId = require('mongodb').ObjectID;
- var imageHelper = require('../util/imageHelper');
- var blogImageHelper = require('../util/blog_imageHelper');
- ///
- //
- //var ejs = require( 'ejs') ;
- //var async = require( 'async' );
- //var _ = require( 'underscore' );
- //var grid = require( '../util/mongoose-grid-help' );
- var multer = require('multer');
- //var upload = multer({ dest: 'uploads' });
- //var upload = multer({dest: __dirname + '/uploads/'});
- var storage = multer.diskStorage({
- destination: function (req, file, callback) {
- callback(null, './uploads');
- },
- filename: function (req, file, callback) {
- callback(null, file.fieldname + '-' + Date.now());
- }
- });
- var upload = multer({storage: storage}).single('userPhoto');
- var sendJSONresponse = function (res, status, content) {
- res.status(status);
- res.json(content);
- };
- module.exports.findUsername = function (request, response) {
- // use `findOne` rather than `find`
- User.findOne({
- 'username': request.body.username}, function (err, user) {
- // hanlde err..
- if (user) {
- // user exists
- response.json({success: false, msg: 'Username exist'});
- } else {
- // user does not exist
- response.json({success: true, msg: 'Username is available'});
- }
- });
- };
- module.exports.findEmail = function (request, response) {
- // use `findOne` rather than `find`
- User.findOne({
- 'email': request.body.email}, function (err, user) {
- // hanlde err..
- if (user) {
- // user exists
- response.json({success: false, msg: 'Username exist'});
- } else {
- // user does not exist
- response.json({success: true, msg: 'Username is available'});
- }
- });
- };
- module.exports.validateNewAccount = function (req, res, next) {
- User
- .findOne({'validation.token': req.params.token})
- .exec(function (err, user) {
- if (err)
- res.status(500).send('Unexpected error when validating. Contact Administrator.');
- else if (!user)
- res.status(404).send('Sorry, not validation found.');
- else {
- user.set('validation.isValid', true);
- user.set('validation.verifiedAt', new Date());
- var costumer = new User();
- var token;
- token = costumer.generateJwt();
- user.set('validation.token', token);
- user.save(function (err, user) {
- // req.ecSession.me = user.getSession();
- //res.header( 'Homepage', '/' );
- // res.redirect('/');
- console.log("VALIDATE NEW ACCOUNT");
- console.log(token);
- res.redirect(302, '/?emailconfirm=' + token);
- //res.status(302).send(err || {success: true, msg: 'Successfully validation', "token": token, "user": user});
- //res.send( 302 );
- });
- }
- });
- },
- module.exports.validateNewChef = function (req, res, next) {
- User
- .findOne({'validation.token': req.params.token})
- .exec(function (err, user) {
- if (err)
- res.status(500).send('Unexpected error when validating. Contact Administrator.');
- else if (!user)
- res.status(404).send('Sorry, not validation found.');
- else {
- user.set('validation.isValid', true);
- user.set('validation.verifiedAt', new Date());
- user.save(function (err, user) {
- var costumer = new User();
- var token;
- token = costumer.generateJwt();
- // req.ecSession.me = user.getSession();
- //res.header( 'Homepage', '/' );
- // res.redirect('/');
- res.statusCode = 302;
- res.setHeader("Location", '/form#/form');
- res.end();
- // res.redirect(302, '/form/' + '?chefregister=' + token);
- //
- //
- //
- //res.status(302).send(err || {success: true, msg: 'Successfully validation', "token": token, "user": user});
- //res.send( 302 );
- });
- }
- });
- },
- module.exports.editinfo = function (req, res, next) {
- User
- .findOne({'email': req.body.email})
- .exec(function (err, user) {
- if (err)
- res.status(500).send('Unexpected error when validating. Contact Administrator.');
- else if (!user)
- res.status(404).send('Sorry, no username found.');
- else {
- res.json({success: true, name: user.name, age: user.age, email: user.email, type: user.type});
- }
- });
- },
- module.exports.updateinfo = function (req, res, next) {
- User
- .findOneAndUpdate({'email': req.body.email})
- .exec(function (err, user) {
- if (err)
- res.status(500).send('Unexpected error when validating. Contact Administrator.');
- else if (!user)
- res.status(404).send('Sorry, no username found.');
- else {
- var oldpass = req.body.oldpassword;
- console.log(req.body.name);
- console.log(oldpass);
- user.set('name', req.body.name);
- user.set('age', req.body.age);
- if (typeof oldpass !== 'undefined')
- {
- if (user.comparepassword(oldpass))
- {
- user.setPassword(req.body.newPassword);
- user.set('validation.changePassToken', "change");
- }
- } else
- {
- console.log(oldpass);
- }
- user.save(function (err, user) {
- res.json({success: true});
- });
- }
- });
- },
- module.exports.editpayout = function (req, res, next) {
- User
- .findOne({'email': req.body.email})
- .exec(function (err, user) {
- if (err)
- res.status(500).send('Unexpected error when validating. Contact Administrator.');
- else if (!user)
- res.status(404).send('Sorry, no username found.');
- else {
- res.json({success: true, payout: user.payout});
- }
- });
- },
- module.exports.updatepayout = function (req, res, next) {
- User
- .findOne({'email': req.body.email})
- .exec(function (err, user) {
- if (err)
- res.status(500).send('Unexpected error when validating. Contact Administrator.');
- else if (!user)
- res.status(404).send('Sorry, no username found.');
- else {
- user.set('payout.username', req.body.username);
- user.set('payout.password', req.body.password);
- user.set('payout.key', req.body.key);
- user.save(function (err, user) {
- res.json({success: true});
- });
- }
- });
- },
- module.exports.getAddress = function (req, res, next) {
- User
- .findOne({'email': req.body.email})
- .exec(function (err, user) {
- if (err)
- res.status(500).send('Unexpected error when validating. Contact Administrator.');
- else if (!user)
- res.status(404).send('Sorry, no username found.');
- else {
- res.json({success: true, address: user.addresses});
- }
- });
- },
- module.exports.addAddress = function (req, res, next) {
- User.findByIdAndUpdate("580feb019c4bb730045a7629", {$push: {'addresses': req.body.address}}, {upsert: true}, function (err, doc) {
- if (err) {
- console.log(err);
- } else {
- console.log("Successfully added");
- res.json({success: true, id: doc._id});
- }
- });
- },
- module.exports.updateAddress = function (req, res)
- {
- User.findById(req.params.id, function (err, event) {
- if (err)
- res.send(err);
- console.log(event)
- if (req.body.event.subject)
- event.subject = req.body.event.subject;
- if (req.body.event.description)
- event.description = req.body.event.description;
- if (req.body.event.startTime)
- event.startTime = req.body.event.startTime;
- if (req.body.event.endTime)
- event.endTime = req.body.event.endTime;
- if (req.body.event.status)
- event.status = req.body.event.status;
- if (req.body.event.howOften)
- event.howOften = req.body.event.howOften;
- if (req.body.event.reminder)
- event.reminder = req.body.event.reminder;
- if (req.body.event.sms)
- event.sms = req.body.event.sms;
- if (req.body.event.email)
- event.email = req.body.event.email;
- event.save(function (err) {
- if (err)
- send(err);
- res.json({success: true});
- });
- });
- };
- module.exports.deleteAddress = function (req, res)
- {
- Event.findByIdAndRemove(req.params.id)
- .exec(function (err, removed) {
- if (err) {
- res.send(err);
- } else {
- res.send(removed);
- }
- });
- },
- module.exports.register = function (req, res) {
- // if(!req.body.name || !req.body.email || !req.body.password) {
- // sendJSONresponse(res, 400, {
- // "message": "All fields required"
- // });
- // return;
- // }
- if (!req.body.email || !req.body.password || !req.body.username)
- {
- res.json({success: false, msg: 'All fields required'});
- } else
- {
- var user = new User();
- var token;
- token = user.generateJwt();
- user.name = req.body.name;
- user.email = req.body.email;
- user.username = req.body.username;
- user.age = req.body.age;
- user.city = req.body.city;
- user.zipCode = req.body.zipCode;
- user.sex = req.body.sex;
- user.type = "costumer";
- user.foodtypes = req.body.foodtypes;
- user.favorite = req.body.favorite;
- user.allergies = req.body.allergies;
- user.setPassword(req.body.password);
- user.validation.token = token;
- // user.validation.changePassToken = "";
- // user.validation.changeEmailToken = "";
- console.log("REGISTER TOKEN");
- console.log(token);
- if (req.body.reference)
- {
- User
- .findOne({'validation.referalToken': req.body.reference})
- .exec(function (err, inviter) {
- if (err)
- res.status(500).send('Unexpected error when validating. Contact Administrator.');
- else if (!inviter)
- res.status(404).send('Sorry, no token found.');
- else {
- inviter.set('score', (inviter.score) + 2000);
- inviter.save(function (err) {
- });
- Invite
- .findOne({'_id': {$in: inviter.invites}}).
- exec(function (err, theInvite) {
- if (err)
- res.status(500).send('Unexpected error when validating. Contact Administrator.');
- else if (!theInvite)
- res.status(404).send('Sorry, no Invite found.');
- else {
- user.set("invite", theInvite.id);
- user.save(function (err) {
- });
- theInvite.set('status', "completed");
- theInvite.save(function (err) {
- });
- }
- });
- }
- });
- }
- user.save(function (err) {
- if (err)
- {
- res.json({success: false, msg: 'Data already exist', redirectEmail: user.email});
- console.log(err);
- } else
- {
- //res.status(200);
- emailer.sendNewAccountEmail(user, function () {
- res.json({success: true, msg: 'Successfully created user!', "token": token});
- });
- }
- });
- }
- };
- module.exports.chefregister = function (req, res) {
- if (!req.body.email || !req.body.password)
- {
- res.json({success: false, msg: 'All fields required'});
- } else
- {
- var user = new User();
- var token;
- token = user.generateJwt();
- user.name = req.body.name;
- user.age = req.body.age;
- user.sex = req.body.sex;
- // user.phone = req.body.phone;
- user.email = req.body.email;
- // user.username = req.body.username;
- user.setPassword(req.body.password);
- user.validation.token = token;
- user.type = "chef";
- user.save(function (err) {
- if (err)
- {
- res.json({success: false, msg: 'Data already exist', redirectEmail: user.email});
- console.log(err);
- } else
- {
- //res.status(200);
- emailer.sendNewChefAccount(user, function () {
- res.json({success: true, msg: 'Successfully created chef!'});
- });
- }
- });
- }
- };
- module.exports.appform = function (req, res) {
- User
- .findOne({'email': "haxhiuargjend@gmail.com"})
- .exec(function (err, user) {
- if (err)
- res.status(500).send('Unexpected error when validating. Contact Administrator.');
- else if (!user)
- res.status(404).send('Sorry, not validation found.');
- else {
- var user = user;
- // var pic = req.body.profile.takenImg; //Array
- var desc = req.body.profile.description;
- var video = req.body.profile.videolink;
- var chef_foodType = req.body.typeOfFood; //Array
- // var dishes = req.body.dishes; //Array
- var accomplishments = req.body.accomplishments; //Array
- var experience = req.body.experience; //Array
- //
- // var dishes = req.body.dishes;
- // if (dishes && dishes.constructor.name !== 'Array') {
- // req.body.dishes = [dishes];
- // }
- var dishes = req.body.dishes;
- var dishArray = [];
- dishes.forEach(function (value) {
- // imageHelper.uploadBase64Image('uploads/' + user._id + '_dish.jpg', value.image, function (err, result) {
- // if (err)
- // res.send(400, err);
- // else {
- var dish = new Dish();
- dish.title = value.title;
- dish.foodtype = value.foodtype;
- dish.description = value.description;
- dish.tags = value.tags;
- // dish.image = value.image;
- dish.chef = user._id;
- dish.cost = value.cost;
- dish.status = "Pending";
- dish.save(function (err, dish) {
- if (err) {
- // res.status(500);
- res.json({
- type: false,
- data: 'Error occurred: ' + err
- });
- } else {
- // dishArray.push(dish._id);
- user.dishes.push(dish.id);
- // console.log(dishArray);
- }
- });
- });
- user.validation.appliccompleted = "submitted";
- user.description = desc;
- user.video_link = video;
- user.chef_foodtypes = chef_foodType;
- user.experiences = experience;
- user.accomplishments = accomplishments;
- imageHelper.uploadBase64Image('uploads/' + user._id + '_profile.jpg', req.body.profile.takenImg, function (err, result) {
- if (err)
- res.send(400, err);
- else {
- console.log("result.url");
- console.log(result);
- user.avatar = String(result);
- user.save(function (err) {
- if (err)
- {
- res.json({success: false, msg: 'Data error'});
- console.log(err);
- } else
- {
- // user.dishes = dishArray;
- res.json({success: true});
- }
- });
- }
- });
- }
- });
- };
- module.exports.avatar = function (req, res) {
- res.json({success: true});
- };
- module.exports.login = function (req, res) {
- passport.authenticate('local', function (err, user, info) {
- var token;
- // If Passport throws/catches an error
- if (err) {
- res.status(404).json(err);
- return;
- }
- // If a user is found
- if (user) {
- token = user.generateJwt();
- res.status(200);
- res.json({
- "token": token
- });
- } else {
- // If user is not found
- res.status(401).json(info);
- }
- })(req, res);
- };
- module.exports.tokenLogin = function (req, res) {
- console.log("LOGIN TOKEN");
- console.log(req.body.token);
- User
- .findOne({'validation.token': req.body.token})
- .exec(function (err, user) {
- if (err)
- res.status(500).send('Unexpected error when validating. Contact Administrator.');
- else if (!user)
- res.status(404).send('Sorry, not validation found.');
- else {
- res.json({success: true, msg: 'Successfully logged in'});
- }
- });
- };
- module.exports.validateNewPassword = function (req, res) {
- User
- .findOne({'validation.changePassToken': req.params.token})
- .exec(function (err, user) {
- if (err)
- res.send(500, 'Unexpected error when validating. Contact Administrator.');
- else if (!user)
- res.send(404, 'Sorry, no validation found.');
- else {
- //
- // user.set('validation.changePassToken', undefined);
- // user.set('password', user.get('newPassword'));
- // user.setPassword(user.get('newPassword'));
- // user.set('newPassword', undefined);
- user.set('lastChangePass', new Date());
- var costumer = new User();
- var token;
- token = costumer.shortJwt();
- // req.ecSession.me = user.getSession();
- //res.header( 'Homepage', '/' );
- // res.redirect('/');
- user.set('validation.changePassToken', token);
- user.save(function (err, user) {
- res.statusCode = 302;
- res.setHeader("Location", '/#/forgot-password' + '?fgp=' + user.get('validation.changePassToken'));
- res.end();
- // res.redirect(302, '/?forgotpassword=' + token);
- });
- }
- });
- };
- module.exports.forgotpassword = function (req, res) {
- //var email = req.body.email;
- User
- .findOne({'email': req.body.email})
- .exec(function (err, user) {
- if (err)
- res.status(500).send('Unexpected error. Contact Administrator.');
- else if (!user)
- res.status(404).send('Sorry, not email found.');
- else {
- var costumer = new User();
- var token;
- token = costumer.shortJwt();
- user.set('validation.changePassToken', token);
- console.log(token);
- //user.set('newPassword', crypto.randomBytes(8).toString('hex'));
- // console.log("FORGOT PASSWORD")
- // console.log(user.get('validation.changePassToken'));
- user.save(function (err, useri) {
- if (err)
- {
- console.log(err);
- } else
- {
- console.log(useri);
- emailer.sendForgotPassword(useri, function () {
- res.json({success: true, msg: 'Forgot password email sent'});
- });
- }
- // req.ecSession.me = user.getSession();
- //res.header( 'Homepage', '/' );
- // res.redirect('/');
- // res.redirect(302, '/?emailconfirm=' + token);
- //res.status(302).send(err || {success: true, msg: 'Successfully validation', "token": token, "user": user});
- //res.send( 302 );
- });
- }
- });
- };
- module.exports.sendInvite = function (req, res) {
- var emails = req.body.value;
- console.log();
- emails.forEach(function (email, emailIndex) {
- User
- .findOne({'email': req.body.email})
- .exec(function (err, user) {
- if (err)
- res.status(500).send('Unexpected error. Contact Administrator.');
- else if (!user)
- res.status(404).send('Sorry, not email found.');
- else {
- var invite = new Invite();
- var costumer = new User();
- token = costumer.shortJwt();
- invite.email = email;
- invite.status = "invited";
- invite.by = user._id;
- invite.save(function (err, invite) {
- if (err)
- {
- //res.json({success: false, msg: 'Data error'});
- console.log(err);
- } else
- {
- user.invites.push(invite.id);
- user.set('validation.referalToken', token);
- user.save(function (err, user) {
- });
- if (emails.length - 1 === emailIndex)
- {
- emailer.sendInviteEmails(user, emails, function () {
- res.json({success: true, msg: 'Invites sent'});
- });
- }
- //
- }
- });
- }
- });
- });
- };
- module.exports.getInvites = function (req, res) {
- var response = [];
- User
- .findOne({'email': req.body.email})
- .exec(function (err, user) {
- if (err)
- res.status(500).send('Unexpected error. Contact Administrator.');
- else if (!user)
- res.status(404).send('Sorry, not email found.');
- else {
- Invite.find({'_id': {$in: user.invites}})
- .exec(function (err, invites) {
- if (err)
- res.status(500).send('Unexpected error. Contact Administrator.');
- else if (!user)
- res.status(404).send('Sorry, no inite found.');
- else {
- invites.forEach(function (invite, invitesIndex)
- {
- var inviteRsp = {}
- if (invite.status === "completed")
- {
- User
- .findOne({'email': invite.email})
- .exec(function (err, user) {
- if (err)
- res.status(500).send('Unexpected error. Contact Administrator.');
- else if (!user)
- res.status(404).send('Sorry, not email found.');
- else {
- inviteRsp = {
- name: user.name,
- username: user.username,
- date: user.created_at
- }
- response.push(inviteRsp)
- res.json({success: true, invites: response});
- }
- });
- } else
- {
- inviteRsp = invite.email
- response.push(inviteRsp)
- }
- console.log(invite)
- });
- }
- });
- }
- });
- }
- module.exports.setnewpassword = function (req, res) {
- var token = req.body.token;
- console.log("SET NEW PASSWORD");
- console.log(token);
- User
- .findOne({'validation.changePassToken': req.body.token})
- .exec(function (err, user) {
- if (err)
- res.status(500).send('Unexpected error. Contact Administrator.');
- else if (!user)
- res.status(404).send('Sorry, not email found.');
- else {
- //
- user.setPassword(req.body.newPassword);
- user.set('validation.changePassToken', "change");
- //user.set('newPassword', crypto.randomBytes(8).toString('hex'));
- user.save(function (err, user) {
- // req.ecSession.me = user.getSession();
- //res.header( 'Homepage', '/' );
- // res.redirect('/');
- emailer.sendPasswordChanged(user, function () {
- res.statusCode = 302;
- res.setHeader("Location", '/');
- res.end();
- });
- // res.redirect(302, '/?emailconfirm=' + token);
- //res.status(302).send(err || {success: true, msg: 'Successfully validation', "token": token, "user": user});
- //res.send( 302 );
- });
- }
- });
- };
- // ------------------------- AVAILABILITY
- module.exports.setSchedule = function (req, res) {
- User
- .findOne({'email': req.body.email})
- .exec(function (err, user) {
- if (err)
- res.status(500).send('Unexpected error when validating. Contact Administrator.');
- else if (!user)
- res.status(404).send('Sorry, no email found.');
- else {
- user.schedule = req.body.schedule;
- user.save(function (err, user) {
- res.json({success: true});
- });
- }
- });
- };
- module.exports.updateSchedule = function (req, res) {
- User
- .findOne({'email': req.body.email})
- .exec(function (err, user) {
- if (err)
- res.status(500).send('Unexpected error when validating. Contact Administrator.');
- else if (!user)
- res.status(404).send('Sorry, no email found.');
- else {
- user.schedule = req.body.schedule;
- user.save(function (err, user) {
- res.json({success: true});
- });
- }
- });
- };
- module.exports.getSchedule = function (req, res) {
- User
- .findOne({'email': req.body.email})
- .exec(function (err, user) {
- if (err)
- res.status(500).send('Unexpected error when validating. Contact Administrator.');
- else if (!user)
- res.status(404).send('Sorry, no email found.');
- else {
- if (typeof user.schedule !== 'undefined' && user.schedule.length > 0)
- {
- res.json({success: true, schedule: user.schedule});
- } else
- {
- res.json({success: true, schedule: "none"});
- }
- }
- });
- };
- module.exports.addEvent = function (req, res)
- {
- User
- .findOne({'email': req.body.email})
- .exec(function (err, user) {
- if (err)
- res.status(500).send('Unexpected error. Contact Administrator.');
- else if (!user)
- res.status(404).send('Sorry, not email found.');
- else {
- var event = new Event();
- event.subject = req.body.event.subject;
- event.description = req.body.event.description;
- event.startTime = req.body.event.startTime;
- event.endTime = req.body.event.endTime;
- event.status = req.body.event.status;
- event.howOften = req.body.event.howOften;
- event.reminder = req.body.event.reminder;
- event.sms = req.body.event.sms;
- event.email = req.body.event.email;
- event.save(function (err, eventi) {
- if (err)
- {
- console.log(err);
- } else
- {
- user.events.push(eventi.id);
- user.save(function (err, user) {
- res.json({success: true, msg: 'Event added'});
- });
- }
- });
- }
- });
- };
- module.exports.getAllEvents = function (req, res)
- {
- User
- .findOne({'email': req.body.email})
- .exec(function (err, user) {
- if (err)
- res.status(500).send('Unexpected error. Contact Administrator.');
- else if (!user)
- res.status(404).send('Sorry, not email found.');
- else {
- Event.find({
- '_id': {$in: user.events}
- }, function (err, docs) {
- console.log(docs);
- res.json({success: true, events: docs});
- });
- }
- });
- };
- module.exports.updateEvent = function (req, res)
- {
- Event.findById(req.params.id, function (err, event) {
- if (err)
- res.send(err);
- console.log(event)
- if (req.body.event.subject)
- event.subject = req.body.event.subject;
- if (req.body.event.description)
- event.description = req.body.event.description;
- if (req.body.event.startTime)
- event.startTime = req.body.event.startTime;
- if (req.body.event.endTime)
- event.endTime = req.body.event.endTime;
- if (req.body.event.status)
- event.status = req.body.event.status;
- if (req.body.event.howOften)
- event.howOften = req.body.event.howOften;
- if (req.body.event.reminder)
- event.reminder = req.body.event.reminder;
- if (req.body.event.sms)
- event.sms = req.body.event.sms;
- if (req.body.event.email)
- event.email = req.body.event.email;
- event.save(function (err) {
- if (err)
- send(err);
- res.json({success: true});
- });
- });
- };
- module.exports.deleteEvent = function (req, res)
- {
- // Event.findOneAndRemove( { "_id": req.params.id }, function ( err, result ) {
- // res.json( {
- // message: "Successfully deleted the event",
- // event: result
- // } );
- // } );
- Event.findByIdAndRemove(req.params.id)
- .exec(function (err, removed) {
- if (err) {
- res.send(err);
- } else {
- res.send(removed);
- }
- });
- // Event.remove({
- // _id: req.params
- // }, function (err, event) {
- // if (err) return res.send(err);
- // res.json({ message: 'Event Deleted'});
- // });
- };
- //////////////////////// BLOG /////////////////////////
- module.exports.askQuestion = function (req, res)
- {
- User
- .findOne({'email': req.body.email})
- .exec(function (err, user) {
- if (err)
- res.status(500).send('Unexpected error. Contact Administrator.');
- else if (!user)
- res.status(404).send('Sorry, not email found.');
- else {
- var post = new Post();
- post.title = req.body.post.title;
- post.body = req.body.post.body;
- post.author = user.id;
- post.tags = req.body.post.tags;
- post.anonymous = req.body.post.anonymous;
- post.type = "question";
- post.save(function (err, posti) {
- if (err)
- {
- console.log(err);
- } else
- {
- user.posts.push(posti.id);
- user.save(function (err, user) {
- emailer.sendAQuestion(user, posti, function () {
- res.json({success: true});
- });
- });
- }
- });
- }
- });
- };
- module.exports.writeStory = function (req, res)
- {
- User
- .findOne({'email': req.body.email})
- .exec(function (err, user) {
- if (err)
- res.status(500).send('Unexpected error. Contact Administrator.');
- else if (!user)
- res.status(404).send('Sorry, not email found.');
- else {
- var post = new Post();
- post.title = req.body.post.title;
- post.body = req.body.post.body;
- post.author = user.id;
- post.tags = req.body.post.tags;
- post.anonymous = req.body.post.anonymous;
- post.type = "story";
- console.log("in here")
- console.log(req.body.post.image)
- // res.json({success: true});
- blogImageHelper.uploadBase64Image('blogupload/' + user.id + '_post.jpg', req.body.post.image, function (err, result) {
- if (err)
- console.log(err)
- else {
- console.log("result.url");
- console.log(result);
- post.image = String(result);
- post.save(function (err, posti) {
- if (err)
- {
- res.json({success: false, msg: 'Data error'});
- console.log(err);
- } else
- {
- user.posts.push(posti.id);
- user.save(function (err, user) {
- });
- res.json({success: true});
- }
- });
- }
- });
- }
- });
- };
- module.exports.getAllPosts = function (req, res)
- {
- Post
- .find({})
- .populate('author', "username name")
- .exec(function (err, posts) {
- var postobj = [];
- User
- .findOne({'email': req.body.email})
- .exec(function (err, user) {
- if (err)
- res.status(500).send('Unexpected error. Contact Administrator.');
- else if (!user)
- res.status(404).send('Sorry, not email found.');
- else {
- var bookmarks = user.bookmarks;
- var postList = user.posts;
- _.each(posts, function (value) {
- // var objForm = value.toObject();
- // value.bookmarked = true;
- //console.log(value);
- var objForm = value.toObject();
- if (objForm.anonymous) {
- objForm.author = null;
- }
- objForm.bookmarked = !!_.findWhere(bookmarks, objForm._id);
- objForm.editable = !!_.findWhere(postList, objForm._id);
- if (!!_.findWhere(posts.votes, {'user_id': user.id}))
- {
- var posti = _.findWhere(posts.votes, {'user_id': user.id});
- objForm.myVote = posti.type;
- }
- postobj.push(objForm);
- });
- res.json({success: true, posts: postobj});
- }
- });
- });
- };
- module.exports.getPost = function (req, res)
- {
- Post.findById(req.params.id, function (error, post) {
- var relatedposts;
- res.json({success: true, post: post, relatedposts: relatedposts});
- });
- };
- module.exports.bookmarkPost = function (req, res)
- {
- User
- .findOne({'email': req.body.email})
- .exec(function (err, user) {
- if (err)
- res.status(500).send('Unexpected error. Contact Administrator.');
- else if (!user)
- res.status(404).send('Sorry, not email found.');
- else {
- user.bookmarks.push(req.body.postId);
- user.save(function (err, user) {
- res.json({success: true});
- });
- }
- });
- };
- module.exports.unBookmarkPost = function (req, res)
- {
- User
- .findOne({'email': req.body.email})
- .exec(function (err, user) {
- if (err)
- res.status(500).send('Unexpected error. Contact Administrator.');
- else if (!user)
- res.status(404).send('Sorry, not email found.');
- else {
- var value = req.body.postId;
- user.bookmarks.remove(value);
- //
- user.save(function (err, user) {
- res.json({success: true});
- });
- }
- });
- };
- module.exports.getMyBookmarks = function (req, res)
- {
- User
- .findOne({'email': req.body.email})
- .exec(function (err, user) {
- if (err)
- res.status(500).send('Unexpected error. Contact Administrator.');
- else if (!user)
- res.status(404).send('Sorry, not email found.');
- else {
- Post.find({'_id': {$in: user.bookmarks}}, function (err, posts) {
- res.json({success: true, posts: posts});
- }).populate('author', "username name");
- }
- });
- };
- module.exports.getMyPosts = function (req, res)
- {
- User
- .findOne({'email': req.body.email})
- .exec(function (err, user) {
- if (err)
- res.status(500).send('Unexpected error. Contact Administrator.');
- else if (!user)
- res.status(404).send('Sorry, not email found.');
- else {
- Post.find({'_id': {$in: user.posts}}, function (err, posts) {
- res.json({success: true, posts: posts});
- }).populate('author', "username name");
- }
- });
- };
- module.exports.upvotePost = function (req, res)
- {
- Post
- .findOne({'_id': req.body.postId})
- .exec(function (err, post) {
- if (err)
- res.status(500).send('Unexpected error. Contact Administrator.');
- else if (!post)
- res.status(404).send('Sorry, not post found.');
- else {
- var counter = post.votesCount;
- post.votesCount = counter + 1;
- var allVotes = post.votes;
- User.findOne({'email': req.body.email})
- .exec(function (err, user) {
- if (err)
- res.status(500).send('Unexpected error. Contact Administrator.');
- else if (!user)
- res.status(404).send('Sorry, not user found.');
- else {
- var voteId = user.id; //id e userit
- if (!!_.findWhere(allVotes, {'user_id': voteId}))
- {
- var posti = _.findWhere(allVotes, {'user_id': voteId});
- posti.type = 1;
- } else
- {
- var newvotes = {user_id: user.id, type: 1}
- post.votes.push(newvotes); // me kriju json te ri
- }
- post.save(function (err, user) {
- res.json({success: true});
- });
- }
- });
- }
- });
- // User.findByIdAndUpdate("580feb019c4bb730045a7629", {$push: {'addresses': req.body.address}}, {upsert: true}, function (err, doc) {
- // if (err) {
- // console.log(err);
- // } else {
- // console.log("Successfully added");
- // res.json({success: true, id: doc._id});
- // }
- // });
- };
- module.exports.downvotePost = function (req, res)
- {
- Post
- .findOne({'_id': req.body.postId})
- .exec(function (err, post) {
- if (err)
- res.status(500).send('Unexpected error. Contact Administrator.');
- else if (!post)
- res.status(404).send('Sorry, not post found.');
- else {
- var counter = post.votesCount;
- post.votesCount = counter - 1;
- var allVotes = post.votes;
- User.findOne({'email': req.body.email})
- .exec(function (err, user) {
- if (err)
- res.status(500).send('Unexpected error. Contact Administrator.');
- else if (!user)
- res.status(404).send('Sorry, not user found.');
- else {
- var voteId = user.id; //id e userit
- if (!!_.findWhere(allVotes, {'user_id': voteId}))
- {
- var posti = _.findWhere(allVotes, {'user_id': voteId});
- posti.type = -1;
- } else
- {
- var newvotes = {user_id: user.id, type: -1};
- post.votes.push(newvotes); // me kriju json te ri
- }
- post.save(function (err, user) {
- res.json({success: true});
- });
- }
- });
- }
- });
- // User.findByIdAndUpdate("580feb019c4bb730045a7629", {$push: {'addresses': req.body.address}}, {upsert: true}, function (err, doc) {
- // if (err) {
- // console.log(err);
- // } else {
- // console.log("Successfully added");
- // res.json({success: true, id: doc._id});
- // }
- // });
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement