Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions middlewares/hacker.middleware.js
Original file line number Diff line number Diff line change
Expand Up @@ -304,8 +304,7 @@ function ensureAccountLinkedToHacker(req, res, next) {
if (
hacker &&
req.user &&
String.toString(hacker.accountId) ===
String.toString(req.user.id)
String(hacker.accountId) === String(req.user.id)
) {
return next();
} else {
Expand Down
5 changes: 3 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
"start-windows": "set DEBUG=hackboard:* && set NODE_ENV=test && nodemon --ignore gcp_creds.json ./bin/www.js",
"deploy": "NODE_ENV=deployment node ./bin/www.js",
"debug": "DEBUG=hackboard:* NODE_ENV=development nodemon --ignore gcp_creds.json ./bin/www.js",
"test": "DEBUG=hackboard:* NODE_ENV=development mocha -r dotenv/config --reporter spec tests/**.js --exit",
"test-windows": "DEBUG=hackboard:* SET NODE_ENV=development & mocha -r dotenv/config --reporter spec tests/**.js --exit",
"test": "cross-env DEBUG=hackboard:* NODE_ENV=test mocha -r dotenv/config --reporter spec tests/**.js --exit",
"test-windows": "cross-env DEBUG=hackboard:* NODE_ENV=test mocha -r dotenv/config --reporter spec tests/**.js --exit",
"seed": "NODE_ENV=development node ./seed/index.js",
"docs": "apidoc -i ./routes -o ./docs/api/",
"format": "prettier --write '**/*.js'",
Expand Down Expand Up @@ -49,6 +49,7 @@
"apidoc": "^1.2.0",
"chai": "^4.4.1",
"chai-http": "^4.4.0",
"cross-env": "^7.0.3",
"eslint": "8.56.0",
"eslint-config-prettier": "9.1.0",
"eslint-plugin-prettier": "5.1.3",
Expand Down
57 changes: 48 additions & 9 deletions services/hacker.service.js
Original file line number Diff line number Diff line change
Expand Up @@ -129,8 +129,9 @@ async function getStatsAllHackersCached() {
.populate({
path: "accountId",
});
const stats = getStats(allHackers);
cache.put(Constants.CACHE_KEY_STATS, stats, Constants.CACHE_TIMEOUT_STATS); //set a time-out of 5 minutes
return getStats(allHackers);
return stats;
}

/**
Expand Down Expand Up @@ -160,6 +161,12 @@ function getStats(hackers) {
const stats = {
total: 0,
status: {},
reviewerStatus: {},
reviewerStatus2: {},
reviewerName: {},
reviewerName2: {},
reviewerComments: {},
reviewerComments2: {},
school: {},
degree: {},
gender: {},
Expand All @@ -184,6 +191,35 @@ function getStats(hackers) {
stats.status[hacker.status] = stats.status[hacker.status]
? stats.status[hacker.status] + 1
: 1;
stats.reviewerStatus[hacker.reviewerStatus] = stats.reviewerStatus[
hacker.reviewerStatus
]
? stats.reviewerStatus[hacker.reviewerStatus] + 1
: 1;
stats.reviewerStatus2[hacker.reviewerStatus2] = stats.reviewerStatus2[
hacker.reviewerStatus2
]
? stats.reviewerStatus2[hacker.reviewerStatus2] + 1
: 1;
stats.reviewerName[hacker.reviewerName] = stats.reviewerName[
hacker.reviewerName
]
? stats.reviewerName[hacker.reviewerName] + 1
: 1;
stats.reviewerName2[hacker.reviewerName2] = stats.reviewerName2[
hacker.reviewerName2
]
? stats.reviewerName2[hacker.reviewerName2] + 1
: 1;
stats.reviewerComments[hacker.reviewerComments] = stats.reviewerComments[
hacker.reviewerComments
]
? stats.reviewerComments[hacker.reviewerComments] + 1
: 1;
stats.reviewerComments2[hacker.reviewerComments2] = stats
.reviewerComments2[hacker.reviewerComments2]
? stats.reviewerComments2[hacker.reviewerComments2] + 1
: 1;
stats.school[hacker.application.general.school] = stats.school[
hacker.application.general.school
]
Expand Down Expand Up @@ -221,17 +257,19 @@ function getStats(hackers) {
.jobInterest[hacker.application.general.jobInterest]
? stats.jobInterest[hacker.application.general.jobInterest] + 1
: 1;
stats.fieldOfStudy[hacker.application.general.fieldOfStudy] = stats
.fieldOfStudy[hacker.application.general.fieldOfStudy]
? stats.fieldOfStudy[hacker.application.general.fieldOfStudy] + 1
: 1;
for (const field of hacker.application.general.fieldOfStudy) {
stats.fieldOfStudy[field] = stats.fieldOfStudy[field]
? stats.fieldOfStudy[field] + 1
: 1;
}
stats.graduationYear[hacker.application.general.graduationYear] = stats
.graduationYear[hacker.application.general.graduationYear]
? stats.graduationYear[hacker.application.general.graduationYear] +
1
: 1;
for (const dietaryRestrictions of hacker.accountId
.dietaryRestrictions) {
const dietaryRestrictionsList =
hacker.accountId.dietaryRestrictions || [];
for (const dietaryRestrictions of dietaryRestrictionsList) {
stats.dietaryRestrictions[dietaryRestrictions] = stats
.dietaryRestrictions[dietaryRestrictions]
? stats.dietaryRestrictions[dietaryRestrictions] + 1
Expand All @@ -246,8 +284,9 @@ function getStats(hackers) {
// const age = hacker.accountId.getAge();
// stats.age[age] = stats.age[age] ? stats.age[age] + 1 : 1;

stats.age[hacker.accountId.age] = stats.age[hacker.accountId.age]
? stats.age[age] + 1
const hackerAge = hacker.accountId.age;
stats.age[hackerAge] = stats.age[hackerAge]
? stats.age[hackerAge] + 1
: 1;

const applicationDate = hacker._id
Expand Down
2 changes: 1 addition & 1 deletion tests/hacker.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -1637,7 +1637,7 @@ describe("POST add a hacker resume", function() {
});
it("It should SUCCEED and upload a resume for a hacker", function(done) {
//this takes a lot of time for some reason
util.auth.login(agent, noTeamHacker0, (error) => {
util.auth.login(agent, noTeamHackerAccount0, (error) => {
if (error) {
return done(error);
}
Expand Down
Loading