-
Notifications
You must be signed in to change notification settings - Fork 0
/
handlers.js
98 lines (85 loc) · 2.78 KB
/
handlers.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
/*
This file is part of Goygoycumuyuz.biz.
Goygoycumuyuz.biz is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Goygoycumuyuz.biz is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Goygoycumuyuz.biz. If not, see <http://www.gnu.org/licenses/>.
*/
require('./models/company.js');
require('./models/goygoy.js');
var mongoose = require('mongoose');
var Company = mongoose.model('Company');
var Goygoy = mongoose.model('Goygoy');
module.exports = {
companies: function(req, res, next) {
Company.find()
.select('name')
.select('jobs.name')
.select('-_id')
.exec(function(err, companies) {
if(err) {
res.send({success: false});
return;
}
res.send({
success: true,
data: companies
});
return;
});
},
calculateGoygoy: function(req, res, next) {
console.log(JSON.stringify(req.body));
if(req.body){
var goygoy = req.body;
var company = goygoy['company'];
var job = goygoy['job'];
var year = goygoy['year'];
Company.findOne({name: company}, function(err, comp){
if(err || comp==null) {
res.send({success: false, message: "Çalıştığınız şirket goygoy listesinde değil :("});
return;
}
var jobs = comp['jobs'];
var point = 1;
for (i in jobs) {
if (jobs[i]['name'] == job) {
point = jobs[i]['point'];
break;
}
}
//Actual goygoy calculation based on Shadduck-Hernández's work
var goygoyFactor = 1 + (Math.log(point) / Math.LN10 + Math.log(year) / Math.LN10) / 2;
var countrySpecificFixationConstant = Math.pow( 0.45 , Math.E);//0.45 for Turkey
var goygoyPoint = parseFloat(Math.pow(10, goygoyFactor)) + parseFloat(countrySpecificFixationConstant);
goygoyPoint = goygoyPoint.toFixed(2);
Goygoy.findOne({minPoint: {$lte: goygoyPoint}}, 'message', {sort: {minPoint: -1}}, function(err, result){
if(err || result==null) {
res.send({success: false, message: "Goygoy mesajı bulunamadı."});
return;
}
res.send({
success: true,
data: {
message: result['message'],
point: goygoyPoint
}
});
return;
})
})
}
else {
res.send({
success: false,
});
return;
}
}
};