@@ -18,6 +18,7 @@ const Middleware = {
1818} ;
1919const Services = {
2020 Hacker : require ( "../../services/hacker.service" ) ,
21+ Account : require ( "../../services/account.service" ) ,
2122}
2223const CONSTANTS = require ( "../../constants/general.constant" ) ;
2324
@@ -369,7 +370,7 @@ module.exports = {
369370 * @apiParam (param) {String} id a hacker's unique mongoID
370371 *
371372 * @apiSuccess {String} message Success message
372- * @apiSuccess {Object} data Sponsor object
373+ * @apiSuccess {Object} data Hacker object
373374 * @apiSuccessExample {object} Success-Response:
374375 * {
375376 "message": "Successfully retrieved hacker information",
@@ -417,6 +418,63 @@ module.exports = {
417418 Controllers . Hacker . showHacker
418419 ) ;
419420
421+ /**
422+ * @api {get } /hacker/email/:email get a hacker's information
423+ * @apiName getHacker
424+ * @apiGroup Hacker
425+ * @apiVersion 0.0.8
426+ *
427+ * @apiParam (param) {String} email a hacker's unique email
428+ *
429+ * @apiSuccess {String} message Success message
430+ * @apiSuccess {Object} data Hacker object
431+ * @apiSuccessExample {object} Success-Response:
432+ * {
433+ "message": "Successfully retrieved hacker information",
434+ "data": {
435+ "id":"5bff4d736f86be0a41badb91",
436+ "application":{
437+ "portfolioURL":{
438+ "resume":"resumes/1543458163426-5bff4d736f86be0a41badb91",
439+ "github":"https://github.com/abcd",
440+ "dropler":"https://dribbble.com/abcd",
441+ "personal":"https://www.hi.com/",
442+ "linkedIn":"https://linkedin.com/in/abcd",
443+ "other":"https://github.com/hackmcgill/hackerAPI/issues/168"
444+ },
445+ "jobInterest":"Internship",
446+ "skills":["Javascript","Typescript"],
447+ "comments":"hi!",
448+ "essay":"Pls accept me"
449+ },
450+ "status":"Applied",
451+ "ethnicity":["White or Caucasian"," Asian or Pacific Islander"],
452+ "accountId":"5bff2a35e533b0f6562b4998",
453+ "school":"McPherson College",
454+ "gender":"Female",
455+ "needsBus":false,
456+ "major":"Accounting",
457+ "graduationYear":2019,
458+ "codeOfConduct":true,
459+ }
460+ }
461+
462+ * @apiError {String} message Error message
463+ * @apiError {Object} data empty
464+ * @apiErrorExample {object} Error-Response:
465+ * {"message": "Hacker not found", "data": {}}
466+ */
467+ hackerRouter . route ( "/email/:email" ) . get (
468+ Middleware . Auth . ensureAuthenticated ( ) ,
469+ Middleware . Auth . ensureAuthorized ( [ Services . Account . findByEmail ] ) ,
470+
471+ Middleware . Validator . RouteParam . emailValidator ,
472+ Middleware . parseBody . middleware ,
473+
474+ Middleware . Hacker . findByEmail ,
475+ Controllers . Hacker . showHacker
476+ ) ;
477+
420478 hackerRouter . route ( "/resume/:id" )
421479 /**
422480 * @api {post } /hacker/resume/:id upload or update resume for a hacker.
0 commit comments