package Ġcom . pack t . serverless . kotlin . let sp oll . handlers Ċ Ċ import Ġcom . amazonaws . services . lambda . runtime . Context Ċ import Ġcom . amazonaws . services . lambda . runtime . RequestHandler Ċ import Ġcom . pack t . serverless . kotlin . let sp oll . Api Gateway Response Ċ import Ġcom . pack t . serverless . kotlin . let sp oll . commons . Database Access Utils Ċ import Ġcom . pack t . serverless . kotlin . let sp oll . models . generated . tables . Poll Ċ import Ġcom . pack t . serverless . kotlin . let sp oll . models . generated . tables . Respond ent Ċ import Ġcom . pack t . serverless . kotlin . let sp oll . models . generated . tables . Respond ent Poll Response Ċ import Ġcom . pack t . serverless . kotlin . let sp oll . models . responses . API ErrorMessage Ċ import Ġcom . pack t . serverless . kotlin . let sp oll . models . responses . Poll Details Response Ċ import Ġcom . pack t . serverless . kotlin . let sp oll . models . responses . Poll Response Statistics Ċ import Ġcom . pack t . serverless . kotlin . let sp oll . models . responses . Respond ent Details Ċ import Ġorg . apache . logging . log 4 j . Log Manager Ċ import Ġjava . util .* ĊĊ Ċ class ĠPoll Getter Ġ: ĠRequest Handler < Map < String , ĠAny >, ĠApi Gateway Response > Ġ{ ĊĠĠĠ Ġval Ġd sl Context Ġ= ĠDatabase Access Utils . database Connection ĊĠĠĠ Ġoverride Ġ Ġfun Ġhandle Request ( input : ĠMap < String , ĠAny >, Ġcontext : ĠContext ): ĠApi Gateway Response Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpath Parameters Ġ= Ġinput [" path Parameters "] Ġas ĠMap < String , ĠString > ĊĠĠĠĠĠĠĠ Ġval Ġpoll Id Ġ= Ġpath Parameters [" poll Id "] ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpoll Record Ġ= Ġd sl Context !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fetch One ( Poll . POLL , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPoll . POLL . POLL _ ID . eq ( poll Id )) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrespond ent Record Ġ= Ġd sl Context ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fetch One ( Respond ent . RESP OND ENT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRespond ent . RESP OND ENT . A _ RESP OND ENT _ ID ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. eq ( poll Record !!. get CreatedBy ())) ĊĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpoll Response Ġ= Ġd sl Context . select From ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRespond ent Poll Response . RESP OND ENT _ POLL _ RESPONSE ). where ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRespond ent Poll Response . RESP OND ENT _ POLL _ RESPONSE . A _ POLL _ ID ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. eq ( poll Record !!. get AP oll Id ())). fetch Into ( Respond ent Poll Response :: class . java ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġs 1 Ġ= ĠPoll Response Statistics (" NO ", 1 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġs 2 Ġ= ĠPoll Response Statistics (" YES ", 9 0 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( poll Record Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpoll Ġ= Ġcom . pack t . serverless . kotlin . let sp oll . models . domain . Poll ( poll Record !!. get Poll Id (), poll Record !!. get Poll Title (), poll Record !!. get Poll Question ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrespond ent Details Ġ= ĠRespond ent Details ( respond ent Record . get Respond ent DisplayName (), respond ent Record . get Respond ent Email Id ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠApi Gateway Response . build Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstatusCode Ġ= Ġ 2 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobject Body Ġ= ĠPoll Details Response ( poll , respond ent Details , Arrays . asList ( s 1 , s 2 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠApi Gateway Response . build Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstatusCode Ġ= Ġ 4 0 4 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobject Body Ġ= ĠAPI ErrorMessage (" The Ġrequested Ġpoll Ġdoesnt Ġexist ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġ} catch Ġ( e : Exception Ġ){ ĊĠĠĠĠĠĠĠĠĠĠ ĠLOG . error (" error Ġoccured Ġwhile Ġregist r ering Ġthe Ġrespond ent ", Ġe . printStackTrace ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠApi Gateway Response . build Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstatusCode Ġ= Ġ 4 0 9 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobject Body Ġ= ĠAPI ErrorMessage (" Duplicate ĠRespond ent ĠId ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠLOG Ġ= ĠLog Manager . getLogger ( Poll Getter :: class . java ) ĊĠĠĠ Ġ} ĊĊ Ċ } Ċ