matteomanzo/Playlister

View on GitHub
models/mobileAppGetBeaconModel.js

Summary

Maintainability
A
0 mins
Test Coverage
var helpersDatabase = require('./helpersDatabase');
var todaysDate = (new Date()).toISOString().split('T')[0];
var outputRes;

exports.startSearchFromEmail = function(pgEmail, res) {
  outputRes = res;
  var collectionName = 'pgSongChoice';
  var matcher = { pgEmail: pgEmail, ppPartyDate: todaysDate };
  var fields = { ppPartyName: 1, _id: 0};
  var callback = retrieveSpotifyID;
  helpersDatabase.readFromDatabase(collectionName, matcher, fields, callback);
};

var retrieveSpotifyID = function(err, doc) {
  helpersDatabase.errorHandling(err);
  if (doc.length === 0) {
    outputRes.jsonp({beaconMajor: '-1000', beaconMinor: '-1000'});
  }
  else {
    var ppPartyName = doc[0].ppPartyName;
    var collectionName = 'ppEvent';
    var matcher = { partyName: ppPartyName, partyDate: todaysDate };
    var fields = { spotifyID: 1, _id:0};
    var callback = retrieveBeacon;
    helpersDatabase.readFromDatabase(collectionName, matcher, fields, callback);
  }
};

var retrieveBeacon = function(err, doc) {
  helpersDatabase.errorHandling(err);
  if (doc.length === 0) {
    outputRes.jsonp({beaconMajor: '-1000', beaconMinor: '-1000'});
  }
  else {
    var ppSpotifyID = doc[0].spotifyID;
    var collectionName = 'ppBeacon';
    var matcher = { spotifyID: ppSpotifyID };
    var fields = {beaconMajor: 1, beaconMinor: 1, _id: 0};
    var callback = returnBeacon;
    helpersDatabase.readFromDatabase(collectionName, matcher, fields, callback);
  }
};

var returnBeacon = function(err, doc) {
  helpersDatabase.errorHandling(err);
  if (doc.length === 0) {
    outputRes.jsonp({beaconMajor: '-1000', beaconMinor: '-1000'});
  }
  else {
    beaconMajor = doc[0].beaconMajor;
    beaconMinor = doc[0].beaconMinor;
    //Send the beacon data back to the mobile app
    outputRes.jsonp({beaconMajor: beaconMajor, beaconMinor: beaconMinor});
  }
};