@@ -29,6 +29,15 @@ def show
29
29
end
30
30
end
31
31
32
+ # GET /api/v1/questions/show_all/questionnaire/:id
33
+ def show_all
34
+ questionnaire = Questionnaire . find ( params [ :id ] )
35
+ items = questionnaire . items . order ( :id )
36
+ render json : items , status : :ok
37
+ rescue ActiveRecord ::RecordNotFound
38
+ render json : { error : "Couldn't find Questionnaire" } , status : :not_found
39
+ end
40
+
32
41
# POST /questions
33
42
def create
34
43
questionnaire_id = params [ :questionnaire_id ]
@@ -72,7 +81,33 @@ def update
72
81
render json : { error : @item . errors . full_messages . to_sentence } , status : :unprocessable_entity
73
82
end
74
83
end
75
-
84
+
85
+ def destroy
86
+ @item = Item . find ( params [ :id ] )
87
+ @item . destroy
88
+ head :no_content
89
+ rescue ActiveRecord ::RecordNotFound
90
+ render json : { error : "Couldn't find Item" } , status : :not_found
91
+ end
92
+
93
+ # DELETE /api/v1/questions/delete_all/questionnaire/:id
94
+ def delete_all
95
+ questionnaire = Questionnaire . find ( params [ :id ] )
96
+ if questionnaire . items . delete_all
97
+ render json : { message : "All questions deleted" } , status : :ok
98
+ else
99
+ render json : { error : "Deletion failed" } , status : :unprocessable_entity
100
+ end
101
+ rescue ActiveRecord ::RecordNotFound
102
+ render json : { error : "Couldn't find Questionnaire" } , status : :not_found
103
+ end
104
+
105
+ def types
106
+ types = Item . pluck ( :question_type ) . uniq
107
+ render json : types , status : :ok
108
+ end
109
+
110
+
76
111
private
77
112
78
113
def set_question
0 commit comments