package Ġcom . k ok as ai . api . http . group . form Ċ Ċ import Ġcom . k ok as ai . api . form . Form Define Ċ import Ġcom . k ok as ai . api . form . Form Save Ċ import Ġcom . k ok as ai . api . form . Form Save Type Ċ import Ġcom . k ok as ai . api . form . Form Save Value Ċ import Ġcom . k ok as ai . api . http ._ dsl . in Group Ċ import Ġcom . k ok as ai . api . http ._ dsl . parameter Ċ import Ġcom . k ok as ai . flower kt . route . Route Action Ċ import Ġio . ktor . application . call Ċ import Ġio . ktor . http . HttpStatusCode Ċ import Ġio . ktor . request . receive Ċ import Ġio . ktor . response . respond Ċ import Ġio . ktor . routing . post Ċ import Ġkotlinx . serialization . Serializable Ċ import Ġjava . util . Date Ċ Ċ @ Serializable Ċ data Ġclass ĠPost Submit Request ( val Ġvalues : ĠMap < Int , ĠForm Save Type >) Ċ Ċ val Ġsubmit : ĠRoute Action Ġ= Ġ{ ĊĠĠĠ Ġpost ("{ groupName }/{ form Name }") Ġ{ ĊĠĠĠĠĠĠĠ Ġparameter (" groupName ", Ġ" form Name ") Ġ{ ĠgroupName , Ġform Name Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġin Group ( groupName ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġform Define Ġ= ĠForm Define . get ( form Name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( form Define . file . group . contains ( groupName )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġcall . receive < Post Submit Request >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġform Save Ġ= ĠForm Save . get ( form Name , ĠgroupName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlast Values Ġ= Ġform Save . file . values ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( last Values Ġ!= Ġrequest . values ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġform Save . file . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Ġ= ĠDate () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalues Ġ= Ġrequest . values . map Values Ġ{ Ġ( index , Ġtype ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcomment Ġ= Ġlast Values [ index ]?. comment . or Empty () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠForm Save Value ( type , Ġcomment ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġform Save . save () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcall . respond ( HttpStatusCode . OK ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcall . respond ( HttpStatusCode . NotFound ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ