diff --git a/actions/srmRoundManagement.js b/actions/srmRoundManagement.js index c03d09198..f2c512659 100644 --- a/actions/srmRoundManagement.js +++ b/actions/srmRoundManagement.js @@ -1,10 +1,14 @@ /* * Copyright (C) 2014 TopCoder Inc., All Rights Reserved. + */ +/** + * Create, modify, list and delete SRM round. * - * @version 1.0 - * @author TCSASSEMBLER + * Changes in version 1.1 (Module Assembly - Web Arena - Match Configurations): + * - Updated ListSRMContestRounds to send UTC time in milliseconds for registration and coding start time * - * Create, modify, list and delete SRM round. + * @version 1.1 + * @author TCSASSEMBLER */ /*jslint node: true, nomen: true */ "use strict"; @@ -201,11 +205,13 @@ exports.listSRMContestRounds = { switch (segment.segment_id) { case 1: rr.registrationStart = helper.formatDateWithTimezone(formatDateTimeFromDB(segment.start_time)); + rr.registrationStartTime = start_time; rr.registrationLength = segment.duration; rr.registrationStatus = segment.status; break; case 2: rr.codingStart = helper.formatDateWithTimezone(formatDateTimeFromDB(segment.start_time)); + rr.codingStartTime = start_time; rr.codingLength = segment.duration; rr.codingStatus = segment.status; break; diff --git a/actions/srmRoundQuestions.js b/actions/srmRoundQuestions.js index 27ef3a561..4535affe6 100644 --- a/actions/srmRoundQuestions.js +++ b/actions/srmRoundQuestions.js @@ -1,10 +1,13 @@ /* * Copyright (C) 2014 TopCoder Inc., All Rights Reserved. + */ + /** + * - Implement the srm round questions / answers / survey api. + * Changes in version 1.1 (Module Assembly - Web Arena - Match Configurations): + * - Updated getRoundQuestions to send roundId with response * - * @version 1.0 + * @version 1.1 * @author TCSASSEMBLER - * - * - Implement the srm round questions / answers / survey api. */ /*jslint node: true, nomen: true, plusplus: true, stupid: true, unparam: true */ @@ -94,7 +97,7 @@ var getRoundQuestions = function (api, connection, dbConnectionMap, next) { if (err) { helper.handleError(api, connection, err); } else { - connection.response = {questions: result}; + connection.response = {questions: result, roundId: roundId}; } next(connection, true); }); @@ -544,7 +547,7 @@ var addRoundQuestion = function (api, connection, dbConnectionMap, next) { if (err) { helper.handleError(api, connection, err); } else { - connection.response = {"success": true}; + connection.response = {"success": true, questionId: questionId}; } next(connection, true); }); @@ -744,4 +747,4 @@ exports.modifyRoundQuestion = { api.helper.handleNoConnection(api, connection, next); } } -}; \ No newline at end of file +}; diff --git a/actions/srmRoundSegments.js b/actions/srmRoundSegments.js index aafce1629..706788496 100644 --- a/actions/srmRoundSegments.js +++ b/actions/srmRoundSegments.js @@ -1,10 +1,14 @@ /* * Copyright (C) 2014 TopCoder Inc., All Rights Reserved. + */ +/** + * Implement the srm round segments api. + * + * Changes in version 1.1 (Module Assembly - Web Arena - Match Configurations): + * - Modified date format and make it norm to include timezone so that moment.js can parse time correctly * - * @version 1.0 + * @version 1.1 * @author TCSASSEMBLER - * - * - Implement the srm round segments api. */ /*jslint node: true, nomen: true, plusplus: true, stupid: true, unparam: true */ @@ -14,8 +18,8 @@ var _ = require('underscore'); var moment = require('moment'); var IllegalArgumentError = require('../errors/IllegalArgumentError'); -var DATE_FORMAT = "YYYY-MM-DD HH:mm:ss"; - +var DATE_FORMAT = "YYYY-MM-DD HH:mm:ssZZ"; +var DB_DATE_FORMAT = "YYYY-MM-DD HH:mm:ss"; /** * Check round id. * @@ -169,34 +173,35 @@ var setRoundSegments = function (api, connection, dbConnectionMap, next) { cb(error); } }, function (results, cb) { - sqlParams.startTime = helper.formatDate(registrationStart, DATE_FORMAT); - sqlParams.endTime = moment(registrationStart, DATE_FORMAT).add('minutes', registrationLength).format(DATE_FORMAT); + sqlParams.startTime = helper.formatDate(registrationStart, DB_DATE_FORMAT); + sqlParams.endTime = moment(registrationStart, DATE_FORMAT).add('minutes', registrationLength).format(DB_DATE_FORMAT); + sqlParams.segmentId = helper.SEGMENTS_ID_MAP.REGISTRATION_PHASE; sqlParams.status = registrationStatus; sqlParams.roundId = roundId; api.dataAccess.executeQuery("insert_round_segments", sqlParams, dbConnectionMap, cb); }, function (results, cb) { //the registration end time plus 1 minute - sqlParams.startTime = moment(sqlParams.endTime, DATE_FORMAT).add('minutes', 1).format(DATE_FORMAT); - sqlParams.endTime = helper.formatDate(codingStart, DATE_FORMAT); + sqlParams.startTime = moment(sqlParams.endTime, DB_DATE_FORMAT).add('minutes', 1).format(DB_DATE_FORMAT); + sqlParams.endTime = helper.formatDate(codingStart, DB_DATE_FORMAT); sqlParams.segmentId = helper.SEGMENTS_ID_MAP.ROOM_ASSIGNMENT_PHASE; sqlParams.status = registrationStatus; api.dataAccess.executeQuery("insert_round_segments", sqlParams, dbConnectionMap, cb); }, function (results, cb) { sqlParams.startTime = sqlParams.endTime; - sqlParams.endTime = moment(sqlParams.startTime, DATE_FORMAT).add('minutes', codingLength).format(DATE_FORMAT); + sqlParams.endTime = moment(sqlParams.startTime, DB_DATE_FORMAT).add('minutes', codingLength).format(DB_DATE_FORMAT); sqlParams.segmentId = helper.SEGMENTS_ID_MAP.CODING_PHASE; sqlParams.status = codingStatus; api.dataAccess.executeQuery("insert_round_segments", sqlParams, dbConnectionMap, cb); }, function (results, cb) { sqlParams.startTime = sqlParams.endTime; - sqlParams.endTime = moment(sqlParams.startTime, DATE_FORMAT).add('minutes', intermissionLength).format(DATE_FORMAT); + sqlParams.endTime = moment(sqlParams.startTime, DB_DATE_FORMAT).add('minutes', intermissionLength).format(DB_DATE_FORMAT); sqlParams.segmentId = helper.SEGMENTS_ID_MAP.INTERMISSION_PHASE; sqlParams.status = intermissionStatus; api.dataAccess.executeQuery("insert_round_segments", sqlParams, dbConnectionMap, cb); }, function (results, cb) { sqlParams.startTime = sqlParams.endTime; - sqlParams.endTime = moment(sqlParams.startTime, DATE_FORMAT).add('minutes', challengeLength).format(DATE_FORMAT); + sqlParams.endTime = moment(sqlParams.startTime, DB_DATE_FORMAT).add('minutes', challengeLength).format(DB_DATE_FORMAT); sqlParams.segmentId = helper.SEGMENTS_ID_MAP.CHALLENGE_PHASE; sqlParams.status = challengeStatus; api.dataAccess.executeQuery("insert_round_segments", sqlParams, dbConnectionMap, cb); @@ -241,4 +246,4 @@ exports.setRoundSegments = { api.helper.handleNoConnection(api, connection, next); } } -}; \ No newline at end of file +}; diff --git a/routes.js b/routes.js index e857d3f40..89ffd8881 100755 --- a/routes.js +++ b/routes.js @@ -374,7 +374,7 @@ exports.routes = { { path: "/:apiVersion/data/srm/rounds/:roundId/segments", action: "setRoundSegments"}, { path: "/:apiVersion/data/srm/rounds/:roundId/survey", action: "setRoundSurvey"}, { path: "/:apiVersion/data/srm/questions/:questionId/answers", action: "addRoundQuestionAnswer"}, - + { path: "/:apiVersion/data/srm/rounds/:questionId/question", action: "modifyRoundQuestion"}, { path: "/:apiVersion/data/srm/rounds/:roundId/components", action: "setRoundComponents"}, { path: "/:apiVersion/data/srm/rounds/:roundId/terms", action: "setRoundTerms"}, { path: "/:apiVersion/data/srm/rounds", action: "createSRMContestRound" } @@ -382,8 +382,7 @@ exports.routes = { put: [ { path: "/:apiVersion/data/srm/contests/:id", action: "updateSRMContest"}, - { path: "/:apiVersion/data/srm/rounds/:oldRoundId", action: "modifySRMContestRound" }, - { path: "/:apiVersion/data/srm/rounds/:questionId/question", action: "modifyRoundQuestion"} + { path: "/:apiVersion/data/srm/rounds/:oldRoundId", action: "modifySRMContestRound" } ], delete: [ { path: "/:apiVersion/data/srm/rounds/:roundId", action: "deleteSRMContestRound" }