UNPKG

hulawho

Version:
114 lines (92 loc) 2.67 kB
var async = require('async') var mongoose = require('mongoose') var Game = require('./Game') var PredictionModel = require('./models/schema').Prediction var crypto = require('./modules/crypto_primitives') function Prediction(profile) { var self = this if(profile) { self.user = profile.user self.game = profile.game self.home_score = profile.home_score self.away_score = profile.away_score } } Prediction.prototype.addPrediction = function(callback) { var self = this var entry = { user: self.user, game: self.game, home_score: self.home_score, away_score: self.away_score } // check whether prediction for the same match by the same user already exists PredictionModel.findOne({user: self.user, game: self.game}, function(err, res) { if(err) { callback(err) return } if(res) { // update prediction PredictionModel.update({_id: res.id}, {home_score: self.home_score, away_score: self.away_score, date_updated: new Date()}, function(err) { if(err) { callback(err) return } callback(null, {status: 250, message: 'UPDATE PREDICTION OK'}) }) return } var prediction = new PredictionModel(entry) prediction.save(function(err, res) { if(err) { callback(err) return } // push prediction to game collection var game = new Game() game.pushPrediction(self.game, res.id, function(err, res) { if(err) { callback(err) return } callback(null, {status: 200, message: 'ADD PREDICTION OK'}) }) }) }) } Prediction.prototype.pushAnalysis = function(prediction, analysis, callback) { var self = this self.id = prediction PredictionModel.findOneAndUpdate({_id: self.id}, {analysis: analysis}, function(err, res) { if(err) { callback(err) return } if(!res) { callback({status: 428, message: 'PREDICTION NOT FOUND'}) return } callback(null, {status: 200, message: 'PREDICTION ANALYSIS PUSH OK'}) }) } Prediction.prototype.getPrediction = function(prediction, callback) { var self = this self.id = prediction PredictionModel.findOne({_id: self.id}, function(err, res) { if(err) { callback(err) return } if(!res) { callback({status: 400, message: 'PREDICTION DOES NOT EXIST'}) return } self.user = res.user self.game = res.game self.home_score = res.home_score self.away_score = res.away_score callback(null, {status: 200, message: 'GET PREDICTION OK', data: res}) }) } module.exports = Prediction