Exemple #1
0
  updateAuction: function(req, models, cb) {
    var auction = models.auction;
    var bids = models.bids;

    // validate bids regions (need in the api call)
    if (req.body.regions) {
      // get all region names from bids
      var bidRegions = [];
      bids.forEach(function(bid) {
        bidRegions.push(bid.region);
        return;
      });
      bidRegions = _.uniq(bidRegions);

      // get existing regions with bids
      var regionsWithBids = [];
      auction.regions.forEach(function(region) {
        if (_.contains(bidRegions, region.name)) {
          regionsWithBids.push(region);
        }
      });

      // make sure regions in regionsWithBids are in the req.body.regions
      var reqRegionNames = _.pluck(req.body.regions, 'name');
      regionsWithBids.forEach(function(region) {
        if (!_.contains(reqRegionNames, region.name)) {
          delete region.winningBids;
          delete region.primarySlots;
          delete region.secondarySlots;
          req.body.regions.push(region);
        }
      });
    }

    if (req.body.start) { auction.start = req.body.start; }
    if (req.body.end) { auction.end = req.body.end; }
    if (req.body.adsStart) { auction.adsStart = req.body.adsStart; }
    if (req.body.adsEnd) { auction.adsEnd = req.body.adsEnd; }
    if (req.body.enabled) { auction.enabled = req.body.enabled; }
    if (req.body.description) { auction.description = req.body.description; }
    if (req.body.regions) { auction.regions = req.body.regions; }

    db.updateAuction(auction, function(err, body) {
      if (err) { console.log(err); }
      if (body) {
        // update air object 
        var air = {
          auctionId: auction._id,
          adsStart: Number(auction.adsStart),
          adsEnd: Number(auction.adsEnd)
        };
        db.getAdsInRotation(auction._id + '-air', function(err, result) {
          if (result) {
            db.upsertAdsInRotation(air, function(err) {
              if (err) { console.log(err); cb(err); }
              var message = 'Updated AIR object for auction: ';
              message += auction._id;
              console.log(message);
            });
          }
        });
      }
      return cb(err, body);
    });
  },
Exemple #2
0
 setAuctionEnabled: function(enabled, models, cb) {
   // enable auction
   models.auction.enabled = enabled;
   // save auction
   db.updateAuction(models.auction, cb);
 },