<commit_before>/**
* This function configures the meeting routes of the application.
* @param  {express} app An instance of the express app to be configured.
*/
module.exports = function(app) {
    var MeetingController = require('../controllers/MeetingController');
    var auth              = require('../middlewares/AuthMiddleware');
    var high              = require('../middlewares/HighBoardMiddleware');

    /**
    * A GET route responsible for getting a specific meeting currently in the database
    * @var /api/meeting/{id} GET
    * @name /api/meeting/{id} GET
    * @example The meeting requesting the route has to be of type 'Member' at least.
    * @example The route expects the access token as 'Authorization' and the meeting agent as 'meeting_agent' in the request headers with one of the following values ['Web', 'IOS', 'Android']
    * @example The route expects the id of the desired meeting in the URL in replace of '{id}'
    * @example The route returns as a response an object in the following format
    * {
    * 	status: succeeded/failed,
    * 	message: String showing a descriptive text,
    *    result:
    *    {
    *       id: the meeting's id,
    *       type: the type of the account ['Admin', 'Upper Board', 'High Board', 'Member'],
    *       first_name: the meeting's first name,
    *       last_name: the meeting's last name,
    *       email: the meeting's email,
    *       gender: the meeting's gender,       [for detailed view only]
    *       phone_number: the meeting's phone number,       [for detailed view only]
    *       birthdate: the meeting's birthdate,        [for detailed view only]
    *       IEEE_membership_ID: the meeting's membership id in IEEE,
    *       settings: the meeting's profile settings        [public settings only for basic view]
    *     }
    * 	error:
    * 	[
    * 	  {
    * 	     param: the field that caused the error,
    * 	     value: the value that was provided for that field,
    * 	     type: the type of error that was caused ['required', 'validity', 'unique violation']
    * 	  }, {...}, ...
    * 	]
    * }
    */
    app.get('/api/meeting/:id', auth, MeetingController.show);

    /**
    * A POST route responsible for storing a given meeting in the database.
    * @var /api/meeting POST
    * @name /api/meeting POST
    * @example The meeting requesting the route has to be of type 'Upper Board' at least.
    * @example The route expects the access token as 'Authorization' and the meeting agent as 'meeting_agent' in the request headers with one of the following values ['Web', 'IOS', 'Android']
    * @example The route expects a body Object in the following format
    * {
    *    type: String ['Admin', 'Upper Board', 'High Board', 'Member'], [required]
    *    email: String, [required]
    *    password: <PASSWORD> (<PASSWORD>), [required]
    *    first_name: String, [required]
    *    last_name: String, [required]
    *    birthdate: String (YYYY-MM-DD), [required]
    *    phone_number: String, [required]
    *    gender: String ['Male', 'Female'], [required]
    *    IEEE_membership_ID: String [optional]
    * }
    * @example The route returns as a response an object in the following format
    * {
    * 	status: succeeded/failed,
    * 	message: String showing a descriptive text,
    * 	error:
    * 	[
    * 	  {
    * 	     param: the field that caused the error,
    * 	     value: the value that was provided for that field,
    * 	     type: the type of error that was caused ['required', 'validity', 'unique violation']
    * 	  }, {...}, ...
    * 	]
    * }
    */
    app.post('/api/meeting', auth, high, MeetingController.store);

    /**
    * A PUT route responsible for updating the information of authenticated meeting
    * @var /api/meeting PUT
    * @name /api/meeting PUT
    * @example The meeting requesting the route has to be of type 'Member' at least.
    * @example the route expects the access token as 'Authorization' and the meeting agent as 'meeting_agent' in the request headers with one of the following values ['Web', 'IOS', 'Android']
    * @example The route expects a body Object in the following format
    * {
    *    old_password: String, [required]
    *    new_password: String (6 to 20 charecters), [optional]
    *    phone_number: String, [optional]
    *    IEEE_membership_ID: String [optional]
    * }
    * @example The route responds with an object having the following format
    * {
    *   status: succeeded/failed,
    *   message: String showing a descriptive text,
    *   error:
    *   [
    *     {
    *        param: the field that caused the error,
    *        value: the value that was provided for that field,
    *        type: the type of error that was caused ['required', 'validity', 'unique violation']
    *     }, {...}, ...
    *   ]
    * }
    */
    app.put('/api/meeting/:id', auth, high, MeetingController.update);

    /**
    * A DELETE route responsible for updating the information of authenticated meeting
    * @var /api/meeting DELETE
    * @name /api/meeting DELETE
    * @example The meeting requesting the route has to be of type 'Member' at least.
    * @example the route expects the access token as 'Authorization' and the meeting agent as 'meeting_agent' in the request headers with one of the following values ['Web', 'IOS', 'Android']
    * @example The route expects a body Object in the following format
    * {
    *    old_password: String, [required]
    *    new_password: String (6 to <PASSWORD>), [optional]
    *    phone_number: String, [optional]
    *    IEEE_membership_ID: String [optional]
    * }
    * @example The route responds with an object having the following format
    * {
    *   status: succeeded/failed,
    *   message: String showing a descriptive text,
    *   error:
    *   [
    *     {
    *        param: the field that caused the error,
    *        value: the value that was provided for that field,
    *        type: the type of error that was caused ['required', 'validity', 'unique violation']
    *     }, {...}, ...
    *   ]
    * }
    */
    app.delete('/api/meeting/:id', auth, high, MeetingController.delete);

    /**
    * A POST route responsible for updating the information of authenticated meeting
    * @var /api/meeting POST
    * @name /api/meeting POST
    * @example The meeting requesting the route has to be of type 'Member' at least.
    * @example the route expects the access token as 'Authorization' and the meeting agent as 'meeting_agent' in the request headers with one of the following values ['Web', 'IOS', 'Android']
    * @example The route expects a body Object in the following format
    * {
    *    old_password: String, [required]
    *    new_password: String (6 to 20 charecters), [optional]
    *    phone_number: String, [optional]
    *    IEEE_membership_ID: String [optional]
    * }
    * @example The route responds with an object having the following format
    * {
    * 	status: succeeded/failed,
    * 	message: String showing a descriptive text,
    * 	error:
    * 	[
    * 	  {
    * 	     param: the field that caused the error,
    * 	     value: the value that was provided for that field,
    * 	     type: the type of error that was caused ['required', 'validity', 'unique violation']
    * 	  }, {...}, ...
    * 	]
    * }
    */
    app.post('/api/meeting/:id/rate', auth, high, MeetingController.rate);
};
<commit_msg>fixed the documentation of the Meeting resource<commit_after>/**
* This function configures the meeting routes of the application.
* @param  {express} app An instance of the express app to be configured.
*/
module.exports = function(app) {
    var MeetingController = require('../controllers/MeetingController');
    var auth              = require('../middlewares/AuthMiddleware');
    var high              = require('../middlewares/HighBoardMiddleware');

    /**
    * A GET route responsible for getting a specific meeting currently in the database
    * @var /api/meeting/{id} GET
    * @name /api/meeting/{id} GET
    * @example The user requesting the route has to be of type 'Member' at least.
    * @example The route expects the access token as 'Authorization' and the user agent as 'user_agent' in the request headers with one of the following values ['Web', 'IOS', 'Android']
    * @example The route expects the id of the desired meeting in the URL in replace of '{id}'
    * @example The route returns as a response an object in the following format
    * {
    * 	status: succeeded/failed,
    * 	message: String showing a descriptive text,
    *   meeting:
    *       {
    *           id: the meeting's id,
    *           description: The meeting description,
    *           start_date: the meeting's start date and time,
    *           end_date: the meeting's end date and time,
    *           duration: the meeting's duration in minutes,
    *           location: the meeting's location,
    *           evaluation: the meeting's evaluation,
    *           goals: [
    *               {
    *                   goal: The goal itself,
    *                   isDone: Boolean flag indicating the goal's status
    *               }, {}, ...
    *           ],
    *           attendees: [
    *               {
    *                   id: attendee's id,
    *                   first_name: attendee's first name,
    *                   last_name: attendee's last name,
    *                   profile_picture: {
    *                       type: "Image",
    *                       url: the image url
    *                   },
    *                   rating: The attendee's rating in this meeting,
    *                   review: The attendee's review in this meeting
    *               }, {}, ...
    *           ],
    *           supervisor: {
    *               id: attendee's id,
    *               first_name: attendee's first name,
    *               last_name: attendee's last name,
    *               profile_picture: {
    *                   type: "Image",
    *                   url: the image url
    *               }
    *           },
    *           created_at: the meeting's creation date and time,
    *           updaetd_at: the meeting's update date and time
    *       }
    * 	errors: [
    * 	    {
    * 	        param: the field that caused the error,
    * 	        value: the value that was provided for that field,
    * 	        type: the type of error that was caused ['required', 'validity', 'unique violation']
    * 	    }, {...}, ...
    * 	]
    * }
    */
    app.get('/api/meeting/:id', auth, MeetingController.show);

    /**
    * A POST route responsible for storing a given meeting in the database.
    * @var /api/meeting POST
    * @name /api/meeting POST
    * @example The user requesting the route has to be of type 'High Board' at least.
    * @example The route expects the access token as 'Authorization' and the user agent as 'user_agent' in the request headers with one of the following values ['Web', 'IOS', 'Android']
    * @example The route expects a body Object in the following format
    * {
    *     start_date: the meeting's start date and time "YYYY-MM-DD HH:MM:SS" [required],
    *     end_date: the meeting's end date and time "YYYY-MM-DD HH:MM:SS" [required],
    *     location: the meeting's location String [optional|null],
    *     goals: The meeting goals Array of Strings [optional|[]],
    *     description: the meeting's description String [optional|null],
    *     attendees: The meeting's attendees Array of integers user ids [optional|[]]
    * }
    * @example The route returns as a response an object in the following format
    * {
    * 	status: succeeded/failed,
    * 	message: String showing a descriptive text,
    * 	error:
    * 	[
    * 	    {
    * 	        param: the field that caused the error,
    * 	        value: the value that was provided for that field,
    * 	        type: the type of error that was caused ['required', 'validity', 'unique violation']
    * 	    }, {...}, ...
    * 	]
    * }
    */
    app.post('/api/meeting', auth, high, MeetingController.store);

    /**
    * A PUT route responsible for updating the given meeting.
    * @var /api/meeting/{id} PUT
    * @name /api/meeting/{id} PUT
    * @example The user requesting the route has to be of type 'High Board' at least.
    * @example the route expects the access token as 'Authorization' and the user agent as 'user_agent' in the request headers with one of the following values ['Web', 'IOS', 'Android']
    * @example The route expects a body Object in the following format
    * {
    *     start_date: the meeting's start date and time "YYYY-MM-DD HH:MM:SS" [optional],
    *     end_date: the meeting's end date and time "YYYY-MM-DD HH:MM:SS" [optional],
    *     location: the meeting's location String [optional],
    *     goals: The meeting goals Array of Strings [optional],
    *     description: the meeting's description String [optional],
    *     attendees: The meeting's attendees Array of integers user ids [optional]
    * }
    * @example The route returns as a response an object in the following format
    * {
    *   status: succeeded/failed,
    *   message: String showing a descriptive text,
    *   error:
    *   [
    *       {
    *           param: the field that caused the error,
    *           value: the value that was provided for that field,
    *           type: the type of error that was caused ['required', 'validity', 'unique violation']
    *       }, {...}, ...
    *   ]
    * }
    */
    app.put('/api/meeting/:id', auth, high, MeetingController.update);

    /**
    * A DELETE route responsible for deleting the given meeting.
    * @var /api/meeting/{id} DELETE
    * @name /api/meeting/{id} DELETE
    * @example The user requesting the route has to be of type 'High Board' at least.
    * @example the route expects the access token as 'Authorization' and the user agent as 'user_agent' in the request headers with one of the following values ['Web', 'IOS', 'Android']
    * @example The route returns as a response an object in the following format
    * {
    *   status: succeeded/failed,
    *   message: String showing a descriptive text,
    *   error:
    *   [
    *       {
    *           param: the field that caused the error,
    *           value: the value that was provided for that field,
    *           type: the type of error that was caused ['required', 'validity', 'unique violation']
    *       }, {...}, ...
    *   ]
    * }
    */
    app.delete('/api/meeting/:id', auth, high, MeetingController.delete);

    /**
    * A POST route responsible for rating a given meeting.
    * @var /api/meeting/{id}/rate POST
    * @name /api/meeting/{id}/rate POST
    * @example The user requesting the route has to be of type 'High Board' at least.
    * @example the route expects the access token as 'Authorization' and the user agent as 'user_agent' in the request headers with one of the following values ['Web', 'IOS', 'Android']
    * @example The route expects a body Object in the following format
    * {
    *     meeting_evaluation: Integer the meeting evaluation [1...5] [required],
    *     goals: Array of Booleans to indicate the status of the goals [required],
    *     ratings: [
    *         {
    *             rating: Integer the attendee's rating [1...5] [required],
    *             review: String the attendee's rating [required if rating less than 4]
    *         }, {}, ...
    *     ]
    * }
    * @example The route returns as a response an object in the following format
    * {
    *   status: succeeded/failed,
    *   message: String showing a descriptive text,
    *   error:
    *   [
    *       {
    *           param: the field that caused the error,
    *           value: the value that was provided for that field,
    *           type: the type of error that was caused ['required', 'validity', 'unique violation']
    *       }, {...}, ...
    *   ]
    * }
    */
    app.post('/api/meeting/:id/rate', auth, high, MeetingController.rate);
};

{'fraction_non_alphanumeric': 0.10434620869241738, 'fraction_numerical': 0.000744001488002976, 'mean_word_length': 2.2035749751737836, 'pattern_counts': {'":': 0, '<': 6, '<?xml version=': 0, '>': 6, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5911173', 'n_tokens_mistral': 4551, 'n_tokens_neox': 4418, 'n_words': 1721}