package Ġkotlin serverless . framework . controllers Ċ Ċ import Ġkotlin serverless . framework . health checks . Invalid Endpoint Ċ import Ġmain . da os . Health check Ċ import Ġkotlin serverless . framework . services . SO A Result Ċ import Ġmain . helpers . Controller Helper . Request Data Ċ Ċ /** Ċ Ġ* ĠService Ġthat Ġexposes Ġthe Ġcapabilities Ġof Ġa Ġ{@ link ĠT } Ġelement Ċ Ġ* Ġ@ param Ġ< K > ĠNatural ĠKey Ġtype Ċ Ġ* Ġ@ param Ġ< T > ĠElement Ġtype Ċ Ġ* Ġ@ param Ġ< F > ĠFilter Ġtype Ċ Ġ* Ġ@ param Ġ< U > ĠUser Ġpermissions Ċ Ġ*/ Ċ interface ĠRead able Controller < T , ĠU > Ġ{ Ċ // ĠĠĠ Ġ/** Ċ // ĠĠĠĠ Ġ* ĠFind Ġa Ġset Ġof Ġ[ T ] Ġby Ġa Ġgiven Ġset Ġof Ġoptional Ġparameters Ċ // ĠĠĠĠ Ġ* Ġ@ param Ġuser Ġ[ U ] ĠUser Ġwho Ġis Ġrequesting Ġ( to Ġverify Ġpermissions ) Ċ // ĠĠĠĠ Ġ* Ġ@ param Ġfilters ĠOptional Ġparameters Ċ // ĠĠĠĠ Ġ* Ġ@ param Ġpagination ĠHow Ġto Ġpag inate Ġthe Ġresult Ċ // ĠĠĠĠ Ġ* Ġ@ return Ġlist Ġof Ġ[ T ] Ċ // ĠĠĠĠ Ġ*/ Ċ // ĠĠĠ Ġfun ĠfindAll ( user : ĠU , Ġfilters : ĠMap < String , ĠAny > Ġ= Ġmap Of ( Ġ" order " Ġto Ġ" creation Date " Ġ), Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpagination : ĠPagination Ġ= ĠPagination ( 0 , Ġ 5 0 )): ĠSO A Result < Page < T >> { Ċ // ĠĠĠĠĠĠĠ Ġthrow ĠInvalid Endpoint () Ċ // ĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠfindAll ( user : ĠU , Ġrequest Data : ĠRequest Data ): ĠSO A Result < List < T >> Ġ{ ĊĠĠĠĠĠĠĠ Ġthrow ĠInvalid Endpoint () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠFinds Ġone Ġ[ T ] Ġby Ġthe Ġunique ĠID ĊĠĠĠĠ Ġ* Ġ@ param Ġuser Ġ[ U ] ĠUser Ġwho Ġis Ġrequesting Ġ( to Ġverify Ġpermissions ) ĊĠĠĠĠ Ġ* Ġ@ param Ġid ĠUnique Ġid ĊĠĠĠĠ Ġ* Ġ@ return Ġ[ T ] Ġthat Ġhas Ġthat ĠID ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġfind One ( user : ĠU , Ġrequest Data : ĠRequest Data , Ġid : ĠInt ?): ĠSO A Result < T > Ġ{ ĊĠĠĠĠĠĠĠ Ġthrow ĠInvalid Endpoint () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġthe Ġamount Ġor Ġ[ T ] Ġentities Ġin Ġthe Ġsystem ĊĠĠĠĠ Ġ* Ġ@ param Ġuser Ġ[ U ] ĠUser Ġwho Ġis Ġrequesting Ġ( to Ġverify Ġpermissions ) ĊĠĠĠĠ Ġ* Ġ@ param Ġfilters ĠSet Ġof Ġfilters ĊĠĠĠĠ Ġ* Ġ@ return Ġlist Ġof Ġ[ T ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġcount ( user : ĠU , Ġrequest Data : ĠRequest Data ): ĠSO A Result < Int > Ġ{ ĊĠĠĠĠĠĠĠ Ġthrow ĠInvalid Endpoint () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠVerifies Ġif Ġa Ġentity Ġwith Ġa Ġspecific ĠID Ġexists ĊĠĠĠĠ Ġ* Ġ@ param Ġuser Ġ[ U ] ĠUser Ġwho Ġis Ġrequesting Ġ( to Ġverify Ġpermissions ) ĊĠĠĠĠ Ġ* Ġ@ param Ġid ĠUnique Ġid ĊĠĠĠĠ Ġ* Ġ@ return Ġ[ Boolean ] Ġvalue Ġindicating Ġtrue Ġif Ġexists Ġor Ġfalse Ġif Ġnot ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġexists ( user : ĠU , Ġrequest Data : ĠRequest Data ): ĠSO A Result < Boolean > Ġ{ ĊĠĠĠĠĠĠĠ Ġthrow ĠInvalid Endpoint () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠProvide Ġa Ġbasic Ġhealth check Ġfor Ġthis Ġobject Ġtype Ġand Ġfunction ĊĠĠĠĠ Ġ* Ġex : Ġused Ġto Ġverify Ġaccess Ġto Ġthe Ġdatabase / cache Ġlayer Ġis Ġfunction ing Ġproperly ĊĠĠĠĠ Ġ* Ġ@ return Ġ[ Health check ] Ġobject Ġrepresenting Ġthe Ġhealth ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġhealth ( user : ĠU ?, Ġrequest Data : ĠRequest Data ): ĠSO A Result < Health check > Ġ{ ĊĠĠĠĠĠĠĠ Ġthrow ĠInvalid Endpoint () ĊĠĠĠ Ġ} Ċ }