1
1
/*
2
2
* Copyright (C) 2014 TopCoder Inc., All Rights Reserved.
3
- *
4
- * @version 1.2
5
- * @author isv
6
- *
7
- * - Implement the srm round questions / answers / survey api.
3
+ */
4
+ /**
5
+ * - Implement the srm round questions / answers / survey api.
8
6
* Changes in version 1.1 (Module Assembly - Web Arena - Match Configurations):
9
7
* - Updated getRoundQuestions to send roundId with response
10
- * Changes in 1.2:
11
- * - Added actions for modifying/deleting round question answers.
8
+ *
9
+ * @version 1.1
10
+ * @author TCSASSEMBLER
12
11
*/
13
12
14
13
/*jslint node: true, nomen: true, plusplus: true, stupid: true, unparam: true */
@@ -17,7 +16,6 @@ var async = require('async');
17
16
var _ = require ( 'underscore' ) ;
18
17
var moment = require ( 'moment' ) ;
19
18
var IllegalArgumentError = require ( '../errors/IllegalArgumentError' ) ;
20
- var NotFoundError = require ( '../errors/NotFoundError' ) ;
21
19
22
20
var DATE_FORMAT = "YYYY-MM-DD HH:mm" ;
23
21
@@ -329,8 +327,7 @@ function checkAnswerValues(api, text, sortOrder, correct, callback) {
329
327
error = helper . checkStringParameter ( text , "text" , 250 ) ;
330
328
331
329
if ( ! error && _ . isDefined ( sortOrder ) ) {
332
- error = helper . checkPositiveInteger ( sortOrder , "sortOrder" )
333
- || helper . checkMaxInt ( sortOrder , "sortOrder" ) ;
330
+ error = helper . checkPositiveInteger ( sortOrder , "sortOrder" ) ;
334
331
}
335
332
336
333
if ( ! error && _ . isDefined ( correct ) ) {
@@ -612,8 +609,8 @@ var modifyRoundQuestion = function (api, connection, dbConnectionMap, next) {
612
609
*/
613
610
var deleteRoundQuestion = function ( api , connection , dbConnectionMap , next ) {
614
611
var helper = api . helper ,
615
- sqlParams = { } ,
616
- questionId = Number ( connection . params . questionId ) ;
612
+ sqlParams = { } ,
613
+ questionId = Number ( connection . params . questionId ) ;
617
614
618
615
async . waterfall ( [
619
616
function ( cb ) {
@@ -634,115 +631,6 @@ var deleteRoundQuestion = function (api, connection, dbConnectionMap, next) {
634
631
} ) ;
635
632
} ;
636
633
637
- /**
638
- * Checks if answer with specified ID exists in database.
639
- *
640
- * @param api the api instance.
641
- * @param dbConnectionMap the database connection map.
642
- * @param answerId - the answerId parameter.
643
- * @param callback the callback method.
644
- */
645
- function checkAnswerId ( api , dbConnectionMap , answerId , callback ) {
646
- var helper = api . helper ,
647
- error = helper . checkIdParameter ( answerId , "answerId" ) ;
648
-
649
- async . waterfall ( [
650
- function ( cb ) {
651
- if ( ! error ) {
652
- api . dataAccess . executeQuery ( "get_answer_id" , { answerId : answerId } , dbConnectionMap , cb ) ;
653
- } else {
654
- cb ( null , null ) ;
655
- }
656
- } , function ( results , cb ) {
657
- if ( ! error ) {
658
- if ( results . length === 0 ) {
659
- error = new NotFoundError ( "The answerId does not exist in database." ) ;
660
- }
661
- }
662
- cb ( error ) ;
663
- }
664
- ] , function ( err ) {
665
- if ( err ) {
666
- callback ( err ) ;
667
- return ;
668
- }
669
-
670
- callback ( null , error ) ;
671
- } ) ;
672
- }
673
-
674
- /**
675
- * Modify Round Question Answer.
676
- *
677
- * @param api the api instance.
678
- * @param connection the connection instance.
679
- * @param dbConnectionMap the database connection map.
680
- * @param next the callback method.
681
- */
682
- var modifyRoundQuestionAnswer = function ( api , connection , dbConnectionMap , next ) {
683
- var helper = api . helper ,
684
- sqlParams = { } ,
685
- answerId = Number ( connection . params . answerId ) ,
686
- text = connection . params . text ,
687
- sortOrder = connection . params . sortOrder ,
688
- correct = connection . params . correct ;
689
-
690
- async . waterfall ( [
691
- function ( cb ) {
692
- cb ( helper . checkAdmin ( connection , 'Authorized information needed.' , 'Admin access only.' ) ) ;
693
- } , function ( cb ) {
694
- checkAnswerValues ( api , text , sortOrder , correct , cb ) ;
695
- } , function ( error , cb ) {
696
- checkAnswerId ( api , dbConnectionMap , answerId , cb ) ;
697
- } , function ( error , cb ) {
698
- sqlParams . answerId = answerId ;
699
- sqlParams . answerText = text ;
700
- sqlParams . sortOrder = sortOrder ;
701
- sqlParams . correct = ( correct === true || correct . toLowerCase ( ) === "true" ) ? 1 : 0 ;
702
- api . dataAccess . executeQuery ( "update_answer" , sqlParams , dbConnectionMap , cb ) ;
703
- }
704
- ] , function ( err ) {
705
- if ( err ) {
706
- helper . handleError ( api , connection , err ) ;
707
- } else {
708
- connection . response = { "success" : true } ;
709
- }
710
- next ( connection , true ) ;
711
- } ) ;
712
- } ;
713
-
714
- /**
715
- * Delete Round Question Answer.
716
- *
717
- * @param api the api instance.
718
- * @param connection the connection instance.
719
- * @param dbConnectionMap the database connection map.
720
- * @param next the callback method.
721
- */
722
- var deleteRoundQuestionAnswer = function ( api , connection , dbConnectionMap , next ) {
723
- var helper = api . helper ,
724
- sqlParams = { } ,
725
- answerId = Number ( connection . params . answerId ) ;
726
-
727
- async . waterfall ( [
728
- function ( cb ) {
729
- cb ( helper . checkAdmin ( connection , 'Authorized information needed.' , 'Admin access only.' ) ) ;
730
- } , function ( cb ) {
731
- cb ( helper . checkIdParameter ( answerId , 'answerId' ) ) ;
732
- } , function ( cb ) {
733
- sqlParams . answerId = answerId ;
734
- api . dataAccess . executeQuery ( "delete_answer" , sqlParams , dbConnectionMap , cb ) ;
735
- }
736
- ] , function ( err , result ) {
737
- if ( err ) {
738
- helper . handleError ( api , connection , err ) ;
739
- } else {
740
- connection . response = { "success" : result > 0 } ;
741
- }
742
- next ( connection , true ) ;
743
- } ) ;
744
- } ;
745
-
746
634
/**
747
635
* The API for get Round Questions API.
748
636
*/
@@ -914,53 +802,3 @@ exports.deleteRoundQuestion = {
914
802
}
915
803
}
916
804
} ;
917
-
918
- /**
919
- * The API for Modify Round Question Answer API.
920
- */
921
- exports . modifyRoundQuestionAnswer = {
922
- name : "modifyRoundQuestionAnswer" ,
923
- description : "Modify Round Question Answer" ,
924
- inputs : {
925
- required : [ 'answerId' , 'text' , 'sortOrder' , 'correct' ] ,
926
- optional : [ ]
927
- } ,
928
- blockedConnectionTypes : [ ] ,
929
- outputExample : { } ,
930
- version : 'v2' ,
931
- transaction : 'write' ,
932
- databases : [ "informixoltp" ] ,
933
- run : function ( api , connection , next ) {
934
- if ( connection . dbConnectionMap ) {
935
- api . log ( "Execute modifyRoundQuestionAnswer#run" , 'debug' ) ;
936
- modifyRoundQuestionAnswer ( api , connection , connection . dbConnectionMap , next ) ;
937
- } else {
938
- api . helper . handleNoConnection ( api , connection , next ) ;
939
- }
940
- }
941
- } ;
942
-
943
- /**
944
- * The API for Delete Round Question Answer API.
945
- */
946
- exports . deleteRoundQuestionAnswer = {
947
- name : "deleteRoundQuestionAnswer" ,
948
- description : "Delete Round Question Answer" ,
949
- inputs : {
950
- required : [ 'answerId' ] ,
951
- optional : [ ]
952
- } ,
953
- blockedConnectionTypes : [ ] ,
954
- outputExample : { } ,
955
- version : 'v2' ,
956
- transaction : 'write' ,
957
- databases : [ "informixoltp" ] ,
958
- run : function ( api , connection , next ) {
959
- if ( connection . dbConnectionMap ) {
960
- api . log ( "Execute deleteRoundQuestionAnswer#run" , 'debug' ) ;
961
- deleteRoundQuestionAnswer ( api , connection , connection . dbConnectionMap , next ) ;
962
- } else {
963
- api . helper . handleNoConnection ( api , connection , next ) ;
964
- }
965
- }
966
- } ;
0 commit comments