package Ġpt . ise learning . services . controller . question naire Ċ Ċ import Ġorg . springframework . http . MediaType Ċ import Ġorg . springframework . http . Response Entity Ċ import Ġorg . springframework . web . bind . annotation .* Ċ import Ġorg . springframework . web . util . Uri Components Builder Ċ import Ġpt . ise learning . services . domain . question na ires . Questionnaire Answer Ċ import Ġpt . ise learning . services . domain . question na ires . Questionnaire Challenge Ċ import Ġpt . ise learning . services . models . question naire . Questionnaire Challenge Model Ċ import Ġpt . ise learning . services . service . question na ires . Questionnaire Challenge Services Ċ import Ġpt . ise learning . services . util . QUEST ION NA I RE _ CH ALL EN GE _ PATTERN Ċ Ċ /** Ċ Ġ* ĠHandler Ġresponsible Ġto Ġrespond Ġto Ġrequests Ġregard ĠQuestion naire Answer Ġentity Ċ Ġ*/ Ċ @ RestController Ċ @ RequestMapping ( QUEST ION NA I RE _ CH ALL EN GE _ PATTERN , Ġproduces Ġ= Ġ[" application / json "]) Ċ class ĠQuestion naire Challenge Controller ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġquestion naire Challenge Services : ĠQuestion naire Challenge Services Ċ ) Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠMethod Ġto Ġadd Ġone Ġor Ġmultiple Ġchallenges Ġto Ġa Ġsingle Ġquestion naire . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġuc b Ġhelps Ġbuild ĠURLs ĊĠĠĠĠ Ġ* Ġ@ param ĠlistOf Questionnaire Challenge Ġjson Ġobject Ġthat Ġrepresents Ġa Ġcollection Ġof ĠQuestion naire Challenge Model ĊĠĠĠĠ Ġ* Ġ@ return ĠResponseEntity < List < Questionnaire Challenge >> Ġrepresents Ġa Ġdata Ġstream Ġthat Ġcan Ġhold Ġzero Ġor Ġone Ġelements Ġof Ġthe Ġtype ĠServer Response ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ PostMapping ( name Ġ= Ġ" add Ch allenges To Questionnaire ") ĊĠĠĠ Ġfun Ġadd Ch allenges To Questionnaire ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ RequestBody ĠlistOf Questionnaire Challenge : ĠQuestion naire Challenge Model , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuc b : ĠUri Components Builder ĊĠĠĠ Ġ): ĠResponseEntity < List < Questionnaire Challenge >> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġadded Questionnaire Challenge Ġ= Ġquestion naire Challenge Services . add Ch allenges To Questionnaire ( listOf Questionnaire Challenge ) ĊĠĠĠĠĠĠĠ Ġval Ġlocation Ġ= Ġuc b . path ( QUEST ION NA I RE _ CH ALL EN GE _ PATTERN ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. path (( added Questionnaire Challenge !!. first (). qc Id ). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. to Uri () ĊĠĠĠĠĠĠĠ Ġreturn ĠResponseEntity . created ( location ). body ( added Questionnaire Challenge ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠMethod Ġto Ġget Ġa Ġsingle Ġquestion naire - challenge . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġquestion naire Id Ġrepresents ĠQuestion naire Ġunique Ġidentifier ĊĠĠĠĠ Ġ* Ġ@ param Ġchallenge Id Ġrepresents ĠChallenge Ġunique Ġidentifier ĊĠĠĠĠ Ġ* Ġ@ return ĠResponseEntity < Questionnaire Challenge > Ġrepresents Ġa Ġdata Ġstream Ġthat Ġcan Ġhold Ġzero Ġor Ġone Ġelements Ġof Ġthe Ġtype ĠServer Response ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ GetMapping ("/ { question naire Id }/{ challenge Id }", Ġname Ġ= Ġ" get Questionnaire Challenge By Questionnaire Id And Challenge Id ") ĊĠĠĠ Ġfun Ġget Questionnaire Challenge By Challenge Id And Questionnaire Id ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ PathVariable Ġquestion naire Id : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ PathVariable Ġchallenge Id : ĠInt ĊĠĠĠ Ġ): ĠResponseEntity < Questionnaire Challenge > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠResponseEntity . ok (). contentType ( MediaType . APPLICATION _ JSON ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. body ( question naire Challenge Services . get Questionnaire Challenge By Questionnaire Id And Challenge Id ( question naire Id , challenge Id )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠMethod Ġto Ġupdate Ġthe Ġlist Ġof Ġchallenges Ġon Ġa Ġsingle Ġquestion naire . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param ĠlistOf Questionnaire Challenge Ġjson Ġobject Ġthat Ġrepresents Ġa Ġcollection Ġof ĠQuestion naire Challenge ĊĠĠĠĠ Ġ* Ġ@ return ĠResponseEntity < List < Questionnaire Challenge >> Ġrepresents Ġa Ġdata Ġstream Ġthat Ġcan Ġhold Ġzero Ġor Ġone Ġelements Ġof Ġthe Ġtype ĠServer Response ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Put Mapping ( name Ġ= Ġ" update Ch allenges On Questionnaire ") ĊĠĠĠ Ġfun Ġupdate Ch allenges ById On Questionnaire ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ RequestBody ĠlistOf Questionnaire Challenge : ĠQuestion naire Challenge Model ĊĠĠĠ Ġ): ĠResponseEntity < List < Questionnaire Challenge >> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġadded Questionnaire Challenge Ġ= Ġquestion naire Challenge Services . update Ch allenges On Questionnaire ( listOf Questionnaire Challenge ) ĊĠĠĠĠĠĠĠ Ġreturn ĠResponseEntity . ok (). body ( added Questionnaire Challenge ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠMethod Ġto Ġdelete Ġall Ġchallenges Ġfrom Ġa Ġsingle Ġquestion naire . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġquestion naire Id Ġrepresents ĠQuestion naire Ġunique Ġidentifier ĊĠĠĠĠ Ġ* Ġ@ return ĠNo ĠContent ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Delete Mapping ("/ { question naire Id }", Ġname Ġ= Ġ" removeAll Ch allenges From Questionnaire ") ĊĠĠĠ Ġfun Ġremove Ch allenges From Questionnaire ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ PathVariable Ġquestion naire Id : ĠInt ĊĠĠĠ Ġ): ĠResponseEntity < Questionnaire Answer > Ġ{ ĊĠĠĠĠĠĠĠ Ġquestion naire Challenge Services . removeAll Ch allenges From Questionnaire ( question naire Id ) ĊĠĠĠĠĠĠĠ Ġreturn ĠResponseEntity . no Content (). build () ĊĠĠĠ Ġ} Ċ Ċ }