UNPKG

hulawho

Version:
95 lines (77 loc) 2.52 kB
var async = require('async') var mongoose = require('mongoose') var Prediction = require('./Prediction') var PredictionAnalysisModel = require('./models/schema').PredictionAnalysis var crypto = require('./modules/crypto_primitives') function PredictionAnalysis(profile) { var self = this if(profile) { self.prediction = profile.prediction self.user = profile.user self.correct_score = profile.correct_score self.correct_winner = profile.correct_winner self.score_distance = profile.score_distance self.points = profile.points } } PredictionAnalysis.prototype.addAnalysis = function(callback) { var self = this var entry = { prediction: self.prediction, user: self.user, correct_score: self.correct_score, correct_winner: self.correct_winner, score_distance: self.score_distance, points: self.points } // check whether analysis for the same prediction for the same user already exists PredictionAnalysisModel.findOne({prediction: self.prediction, user: self.user}, function(err, res) { if(err) { callback(err) return } if(res) { // update result PredictionAnalysisModel.update({_id: res.id}, {correct_score: self.correct_score, correct_result: self.correct_result, score_distance: self.score_distance, points: self.points, date_updated: new Date()}, function(err) { if(err) { callback(err) return } callback(null, {status: 200, message: 'UPDATE PREDICTION ANALYSIS OK'}) }) return } var analysis = new PredictionAnalysisModel(entry) analysis.save(function(err, res) { if(err) { callback(err) return } // push analysis to prediction collection var prediction = new Prediction() prediction.pushAnalysis(self.prediction, res.id, function(err, res) { if(err) { callback(err) return } callback(null, {status: 200, message: 'ADD PREDICTION ANALYSIS OK'}) }) }) }) } PredictionAnalysis.prototype.getAnalysis = function(analysis, callback) { var self = this self.id = analysis PredictionAnalysisModel.findOne({_id: self.id}, function(err, res) { if(err) { callback(err) return } if(!res) { callback({status: 400, message: 'PREDICTION ANALYSIS DOES NOT EXIST'}) return } callback(null, {status: 200, message: 'GET PREDICTION ANALYSIS OK', data: res}) }) } module.exports = PredictionAnalysis