hulawho
Version:
hulawho api
93 lines (74 loc) • 2.02 kB
JavaScript
var async = require('async')
var mongoose = require('mongoose')
var Game = require('./Game')
var ResultModel = require('./models/schema').Result
var crypto = require('./modules/crypto_primitives')
function Result(profile) {
var self = this
if(profile) {
self.game = profile.game
self.home_score = profile.home_score
self.away_score = profile.away_score
}
}
Result.prototype.addResult = function(callback) {
var self = this
var entry = {
game: self.game,
home_score: self.home_score,
away_score: self.away_score
}
// check whether result for the same match already exists
ResultModel.findOne({game: self.game}, function(err, res) {
if(err) {
callback(err)
return
}
if(res) {
// update result
ResultModel.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: 200, message: 'UPDATE RESULT OK'})
})
return
}
var result = new ResultModel(entry)
result.save(function(err, res) {
if(err) {
callback(err)
return
}
// push result to game collection
var game = new Game()
game.pushResult(self.game, res.id, function(err, res) {
if(err) {
callback(err)
return
}
callback(null, {status: 200, message: 'ADD RESULT OK'})
})
})
})
}
Result.prototype.getResult = function(result, callback) {
var self = this
self.id = result
ResultModel.findOne({_id: self.id}, function(err, res) {
if(err) {
callback(err)
return
}
if(!res) {
callback({status: 400, message: 'RESULT DOES NOT EXIST'})
return
}
self.game = res.game
self.home_score = res.home_score
self.away_score = res.away_score
callback(null, {status: 200, message: 'GET RESULT OK', data: res})
})
}
module.exports = Result