hulawho
Version:
hulawho api
95 lines (77 loc) • 2.52 kB
JavaScript
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