package Ġde . de bu gle vel . pd ff orm fill er . form Ċ Ċ import Ġio . mic ronaut . http . HttpResponse Ċ import Ġio . mic ronaut . http . annotation .* Ċ import Ġio . mic ronaut . security . annotation . Sec ured Ċ import Ġio . mic ronaut . security . rules . Security Rule Ċ import Ġmu . Kotlin Logging Ċ import Ġjava . net . URI Ċ import Ġjava . util .* Ċ Ċ @ Sec ured ( Security Rule . IS _ AN ONY MO US ) Ċ @ Controller ("/ forms ") Ċ class ĠForm Controller ( ĊĠĠĠ Ġprivate Ġval Ġform Service : ĠForm Service , Ċ ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġlogger Ġ= ĠKotlin Logging . logger Ġ{} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGets Ġall Ġforms . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠSome Ġattributes Ġmight Ġnot Ġbe Ġincluded Ġand Ġhave Ġto Ġbe Ġfetched Ġvia Ġa ĠGET Ġrequest . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Sec ured ( Security Rule . IS _ AUTHENT IC ATED ) ĊĠĠĠ Ġ@ Get ("/") ĊĠĠĠ Ġfun ĠgetList (): ĠHttpResponse < Set < Get Form Response >> Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . debug (" Called ĠgetList () ") ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġget Form Responses Ġ= Ġform Service . getList () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGet Form Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull Ġ// Ġdo Ġnot Ġp low Ġthrough Ġall ĠPDF s Ġto Ġretrieve Ġtheir Ġfields ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). copy ( pdf Base 6 4 Ġ= Ġnull ) Ġ// Ġdo Ġnot Ġsend ĠPDF Ġcontent Ġwhen Ġrequesting Ġa Ġlist Ġof Ġall Ġforms ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. toSet () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHttpResponse . ok ( get Form Responses ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . error ( e ) Ġ{ Ġ" Unhandled Ġexception " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHttpResponse . server Error () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGets Ġa Ġform . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Get ("/ { id }") ĊĠĠĠ Ġfun Ġget One ( id : ĠUUID ): ĠHttpResponse < Get Form Response > Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . debug (" Called Ġget One ($ id )") ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġget Form Ġ= Ġform Service . get ( id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalues Ġ= Ġform Service . getField Values ( id ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġget Form Response Ġ= ĠGet Form Response ( get Form , Ġvalues ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHttpResponse . ok ( get Form Response ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠForm Service . Form NotFoundException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHttpResponse . not Found () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . error ( e ) Ġ{ Ġ" Unhandled Ġexception " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHttpResponse . server Error () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠUpdates Ġa Ġform . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Put ("/ { id }") ĊĠĠĠ Ġfun Ġput One ( id : ĠUUID , Ġupdate Form Request : ĠUpdate Form Request ): ĠHttpResponse < Update Form Response > Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . debug (" Called Ġput One ($ id , Ġ$ update Form Request )") ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġform Ġ= ĠForm ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpdf Ġ= ĠBase 6 4 . get Decoder (). decode ( update Form Request . pdf Base 6 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġupdated Form Ġ= Ġform Service . update ( id , Ġform ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalues Ġ= Ġform Service . getField Values ( id ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġupdate Form Response Ġ= ĠUpdate Form Response ( updated Form , Ġvalues ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHttpResponse . ok ( update Form Response ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠForm Service . Form NotFoundException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHttpResponse . not Found () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠForm Service . Invalid Pdf Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHttpResponse . bad Request () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . error ( e ) Ġ{ Ġ" Unhandled Ġexception " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHttpResponse . server Error () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAdds Ġa Ġform . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Post ("/") ĊĠĠĠ Ġfun Ġpost One ( add Form Request : ĠAdd Form Request ): ĠHttpResponse < Add Form Response > Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . debug (" Called Ġpost One ($ add Form Request )") ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġform Ġ= ĠForm ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpdf Ġ= ĠBase 6 4 . get Decoder (). decode ( add Form Request . pdf Base 6 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsaved Form Ġ= Ġform Service . add ( form ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġadd Form Response Ġ= ĠAdd Form Response ( saved Form ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHttpResponse . created ( add Form Response , ĠURI ( saved Form . id . toString ())) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠForm Service . Invalid Pdf Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHttpResponse . bad Request () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . error ( e ) Ġ{ Ġ" Unhandled Ġexception " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHttpResponse . server Error () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDeletes Ġa Ġform . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Delete ("/ { id }") ĊĠĠĠ Ġfun Ġdelete One ( id : ĠUUID ): ĠHttpResponse < Unit > Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . debug (" Called Ġdelete One ($ id )") ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġform Service . delete ( id ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠHttpResponse . no Content () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠForm Service . Form NotFoundException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHttpResponse . not Found () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . error ( e ) Ġ{ Ġ" Unhandled Ġexception " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHttpResponse . server Error () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDeletes Ġall Ġforms . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Sec ured ( Security Rule . IS _ AUTHENT IC ATED ) ĊĠĠĠ Ġ@ Delete ("/") ĊĠĠĠ Ġfun Ġdelete All (): ĠHttpResponse < Unit > Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . debug (" Called Ġdelete All () ") ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġform Service . delete All () ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠHttpResponse . no Content () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . error ( e ) Ġ{ Ġ" Unhandled Ġexception " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHttpResponse . server Error () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }