Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- bookingDetails: function(params, callback) {
- async.waterfall([
- function(cb) {
- var criteria = {
- user_id: params.user_id,
- };
- if (params.filter == 1) {
- criteria.status = "Upcoming"
- }
- if (params.filter == 2) {
- criteria.status = "Ongoing"
- }
- if (params.filter == 3) {
- criteria.status = "Completed"
- }
- if (params.filter == 4) {
- criteria.status = "Cancelled"
- }
- var projection = {
- package_id: 1,
- start_date: 1,
- end_date: 1,
- guests: 1,
- packageDetail:1
- }
- var populate = [
- {
- path: "package_id",
- model: "package",
- select: "average_rating user_id",
- populate:{
- path: 'user_id',
- model: 'user',
- select: 'first_name last_name image',
- options: { lean: true }
- }
- }
- ];
- Models.Booking.find(criteria, projection).populate(populate).lean().exec(function(err, res) {
- if (err) {
- Utils.logger.errorLogger('+++++++++++++++ Error in get all package ++++++++++++++', err);
- cb(Utils.responses.systemError);
- } else {
- cb(null,res);
- }
- });
- }, function(data, cb) {
- var finalData = []
- async.eachSeries(data, function(item, Incb) { //Get all package reviews count
- item.reviewCount = 0
- reviewModel.Review.count({ package_id: item.package_id._id }, function(err, res) {
- if (err) {
- Utils.logger.errorLogger('+++++++++++++++ Error in get all package ++++++++++++++', err);
- Incb(Utils.responses.systemError);
- } else {
- item.reviewCount = res
- }
- })
- finalData.push(item);
- Incb()
- });
- cb(null, { count: data.length, data: finalData })
- }
- ],
- function(err, result) {
- if (err) {
- callback(err)
- } else {
- callback(null, result)
- }
- });
- },
Add Comment
Please, Sign In to add comment