-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy pathhacker.controller.js
More file actions
133 lines (122 loc) Β· 3.52 KB
/
Copy pathhacker.controller.js
File metadata and controls
133 lines (122 loc) Β· 3.52 KB
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
"use strict";
const Constants = {
Success: require("../constants/success.constant"),
Error: require("../constants/error.constant")
};
/**
* @function showHacker
* @param {{body: {hacker: Object}}} req
* @param {*} res
* @return {JSON} Success status and hacker object
* @description Returns the JSON of hacker object located in req.body.hacker
*/
function showHacker(req, res) {
return res.status(200).json({
message: Constants.Success.HACKER_READ,
data: req.body.hacker.toJSON()
});
}
/**
* @function createdHacker
* @param {{body: {hacker: {_id: ObjectId, accountId: ObjectId, status: string, application: {Object}}}}} req
* @param {*} res
* @return {JSON} Success status
* @description returns success message
*/
function createdHacker(req, res) {
return res.status(200).json({
message: Constants.Success.HACKER_CREATE,
data: req.body.hacker.toJSON()
});
}
/**
* @function updateHacker
* @param {{params: {id: ObjectId}, body: {Object}}} req
* @param {*} res
* @return {JSON} Success or error status
* @description
* Change a hacker's information based on the hacker's mongoID specified in req.params.id.
* The id is moved to req.body.id from req.params.id by validation.
* Returns a 200 status for an updated hacker.
* The new information is located in req.body.
*/
function updatedHacker(req, res) {
return res.status(200).json({
message: Constants.Success.HACKER_UPDATE,
data: req.body
});
}
function uploadedResume(req, res) {
return res.status(200).json({
message: Constants.Success.RESUME_UPLOAD,
data: {
filename: req.body.gcfilename
}
});
}
function downloadedResume(req, res) {
return res.status(200).json({
message: Constants.Success.RESUME_DOWNLOAD,
data: {
id: req.body.id,
resume: req.body.resume
}
});
}
function gotStats(req, res) {
return res.status(200).json({
message: "Retrieved stats",
data: {
stats: req.body.stats
}
});
}
function sentWeekOfEmail(req, res) {
return res.status(200).json({
message: Constants.Success.HACKER_SENT_WEEK_OF,
data: {}
});
}
function sentDayOfEmail(req, res) {
return res.status(200).json({
message: Constants.Success.HACKER_SENT_DAY_OF,
data: {}
});
}
function updatedHackerBatch(req, res) {
return res.status(200).json({
message: Constants.Success.HACKER_UPDATE_BATCH,
data: {
success_ids: req.body.ids,
errors: req.errors || []
}
});
}
/**
* @function assignReviewers
* @param {{body: {names: string[]}}} req
* @param {*} res
* @return {JSON} Success or error status
* @description
* Assign reviewers to hackers who've not yet been assigned reviewers and submitted applications before the deadline.
* Returns a 200 status after bulk assignment reviewers.
* The assignments are located in req.body.
*/
function assignedReviewers(req, res) {
return res.status(200).json({
message: 'Successfully assigned reviewers to hackers',
data: req.body
});
}
module.exports = {
updatedHacker: updatedHacker,
updatedHackerBatch: updatedHackerBatch,
assignedReviewers: assignedReviewers,
createdHacker: createdHacker,
uploadedResume: uploadedResume,
downloadedResume: downloadedResume,
showHacker: showHacker,
gotStats: gotStats,
sentWeekOfEmail: sentWeekOfEmail,
sentDayOfEmail: sentDayOfEmail
};