UNPKG

hulawho

Version:
93 lines (74 loc) 2.02 kB
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