package Ġio . github . w ulkan owy . sdk Ċ Ċ import Ġio . github . w ulkan owy . sdk . exception . Feature Not Available Exception Ċ import Ġio . github . w ulkan owy . sdk . exception . Sc rapper Exception Transformer Ċ import Ġio . github . w ulkan owy . sdk . mapper .* Ċ import Ġio . github . w ulkan owy . sdk . mobile . Mobile Ċ import Ġio . github . w ulkan owy . sdk . pojo .* Ċ import Ġio . github . w ulkan owy . sdk . sc rapper . Sc rapper Ċ import Ġio . reactivex . Comp letable Ċ import Ġio . reactivex . Maybe Ċ import Ġio . reactivex . Observable Ċ import Ġio . reactivex . Single Ċ import Ġokhttp 3 . Interceptor Ċ import Ġokhttp 3 . logging . Http Logging Interceptor Ċ import Ġorg . th reet en . bp . LocalDate Ċ import Ġorg . th reet en . bp . LocalDateTime Ċ Ċ class ĠS dk Ġ{ ĊĊĠĠĠ Ġenum Ġclass ĠMode Ġ{ ĊĠĠĠĠĠĠĠ ĠAPI , ĊĠĠĠĠĠĠĠ ĠS CR AP PER , ĊĠĠĠĠĠĠĠ ĠHY BR ID ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġenum Ġclass ĠSc rapper Login Type Ġ{ ĊĠĠĠĠĠĠĠ ĠAUTO , ĊĠĠĠĠĠĠĠ ĠST AND ARD , ĊĠĠĠĠĠĠĠ ĠA DFS , ĊĠĠĠĠĠĠĠ ĠA DF SC ards , ĊĠĠĠĠĠĠĠ ĠA DF SL ight , ĊĠĠĠĠĠĠĠ ĠA DF SL ight Scoped , ĊĠĠĠĠĠĠĠ ĠA DF SL ight Cu fs ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġmobile Ġ= ĠMobile () ĊĊĠĠĠ Ġprivate Ġval Ġsc rapper Ġ= ĠSc rapper () ĊĊĠĠĠ Ġvar Ġmode Ġ= ĠMode . HY BR ID ĊĊĠĠĠ Ġvar Ġmobile BaseUrl Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmobile . baseUrl Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġcert Key Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmobile . cert Key Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar ĠprivateKey Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmobile . privateKey Ġ= ĠprivateKey ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġsc rapper BaseUrl Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsc rapper . baseUrl Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġemail Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsc rapper . email Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġpassword Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsc rapper . password Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġschool Symbol Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsc rapper . school Symbol Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmobile . school Symbol Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġclass Id Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsc rapper . class Id Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmobile . class Id Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġstudent Id Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsc rapper . student Id Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmobile . student Id Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġlogin Id Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmobile . login Id Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġdi ary Id Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsc rapper . di ary Id Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġschool Year Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsc rapper . school Year Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġsymbol Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsc rapper . symbol Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġlogin Type Ġ= ĠSc rapper Login Type . AUTO ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsc rapper . login Type Ġ= ĠSc rapper . Login Type . valueOf ( value . name ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġlog Level Ġ= ĠHttp Logging Interceptor . Level . BASIC ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsc rapper . logLevel Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmobile . logLevel Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġandroid Version Ġ= Ġ" 8 . 1 . 0 " ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsc rapper . android Version Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġbuild Tag Ġ= Ġ" SM - J 5 0 0 H ĠBuild / L MY 4 8 B " ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsc rapper . build Tag Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġintercept ors : ĠMutable List < Pair < Interceptor , ĠBoolean >> Ġ= Ġmutable ListOf () ĊĊĠĠĠ Ġfun Ġset Simple Http Logger ( logger : Ġ( String ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlog Level Ġ= ĠHttp Logging Interceptor . Level . NONE ĊĠĠĠĠĠĠĠ Ġadd Interceptor ( Http Logging Interceptor ( Http Logging Interceptor . Logger Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger ( it ) ĊĠĠĠĠĠĠĠ Ġ}). setLevel ( Http Logging Interceptor . Level . BASIC )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd Interceptor ( interceptor : ĠInter ceptor , Ġnetwork : ĠBoolean Ġ= Ġfalse ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsc rapper . add Interceptor ( interceptor , Ġnetwork ) ĊĠĠĠĠĠĠĠ Ġmobile . set Interceptor ( interceptor , Ġnetwork ) ĊĠĠĠĠĠĠĠ Ġintercept ors . add ( interceptor Ġto Ġnetwork ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġswitch Di ary ( di ary Id : ĠInt , Ġschool Year : ĠInt ): ĠS dk Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġalso Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . di ary Id Ġ= Ġdi ary Id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . school Year Ġ= Ġschool Year ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Password Reset Captcha Code ( register BaseUrl : ĠString , Ġsymbol : ĠString ) Ġ= Ġsc rapper . getPassword Reset Captcha ( register BaseUrl , Ġsymbol ) ĊĊĠĠĠ Ġfun Ġsend Password Reset Request ( register BaseUrl : ĠString , Ġsymbol : ĠString , Ġemail : ĠString , Ġcapt cha Code : ĠString ): ĠSingle < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġsc rapper . send Password Reset Request ( register BaseUrl , Ġsymbol , Ġemail , Ġcapt cha Code ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Students From Mobile Api ( token : ĠString , Ġpin : ĠString , Ġsymbol : ĠString , Ġfirebase Token : ĠString , ĠapiKey : ĠString Ġ= Ġ"") : ĠSingle < List < Student >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġmobile . get Certificate ( token , Ġpin , Ġsymbol , Ġbuild Tag , Ġandroid Version , Ġfirebase Token ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ Ġmobile . get Students ( it , ĠapiKey ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . map Students ( symbol ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Students From Sc rapper ( email : ĠString , Ġpassword : ĠString , Ġsc rapper BaseUrl : ĠString , Ġsymbol : ĠString Ġ= Ġ" Default "): ĠSingle < List < Student >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġsc rapper . let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . baseUrl Ġ= Ġsc rapper BaseUrl ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . email Ġ= Ġemail ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . password Ġ= Ġpassword ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . symbol Ġ= Ġsymbol ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Students (). compose ( Sc rapper Exception Transformer ()). map Ġ{ Ġstudents Ġ-> Ġstudents . map Students () Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Students Hybrid ( email : ĠString , Ġpassword : ĠString , Ġsc rapper BaseUrl : ĠString , Ġfirebase Token : ĠString , Ġstart Symbol : ĠString Ġ= Ġ" Default ", ĠapiKey : ĠString Ġ= Ġ"") : ĠSingle < List < Student >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġget Students From Sc rapper ( email , Ġpassword , Ġsc rapper BaseUrl , Ġstart Symbol ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. compose ( Sc rapper Exception Transformer ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġstudents Ġ-> Ġstudents . distinct By Ġ{ Ġit . symbol Ġ} Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Observable Ġ{ ĠObservable . from Iterable ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Single Ġ{ Ġsc rapper Student Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsc rapper . let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . symbol Ġ= Ġsc rapper Student . symbol ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . school Symbol Ġ= Ġsc rapper Student . school Symbol ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . student Id Ġ= Ġsc rapper Student . student Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . di ary Id Ġ= Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . class Id Ġ= Ġsc rapper Student . class Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . login Type Ġ= ĠSc rapper . Login Type . valueOf ( sc rapper Student . login Type . name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsc rapper . getToken (). compose ( Sc rapper Exception Transformer ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ Ġget Students From Mobile Api ( it . token , Ġit . pin , Ġit . symbol , Ġfirebase Token , ĠapiKey ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġapi Students Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapi Students . map Ġ{ Ġstudent Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstudent . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogin Mode Ġ= ĠMode . HY BR ID , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogin Type Ġ= Ġsc rapper Student . login Type , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsc rapper BaseUrl Ġ= Ġsc rapper Student . sc rapper BaseUrl ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. toList (). map Ġ{ Ġit . flatten () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Se me sters ( now : ĠLocalDate Ġ= ĠLocalDate . now ()): ĠSingle < List < Se mester >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . HY BR ID , ĠMode . SCR AP PER Ġ-> Ġsc rapper . get Se me sters (). compose ( Sc rapper Exception Transformer ()). map Ġ{ Ġit . map Se me sters () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . API Ġ-> Ġmobile . get Students (). map Ġ{ Ġit . map Se me sters ( student Id , Ġnow ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Attendance ( startDate : ĠLocalDate , ĠendDate : ĠLocalDate , Ġse mester Id : ĠInt ): ĠSingle < List < Attendance >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . SCR AP PER Ġ-> Ġsc rapper . get Attendance ( startDate , ĠendDate ). compose ( Sc rapper Exception Transformer ()). map Ġ{ Ġit . map Attendance () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . HY BR ID , ĠMode . API Ġ-> Ġmobile . get Di ctionaries (). flatMap Ġ{ Ġdict Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmobile . get Attendance ( startDate , ĠendDate , Ġse mester Id ). map Ġ{ Ġit . map Attendance ( dict ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Attendance Summary ( subject Id : ĠInt ? Ġ= Ġ- 1 ): ĠSingle < List < Attendance Summary >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . HY BR ID , ĠMode . SCR AP PER Ġ-> Ġsc rapper . get Attendance Summary ( subject Id ). compose ( Sc rapper Exception Transformer ()). map Ġ{ Ġit . map Attendance Summary () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . API Ġ-> Ġthrow ĠFeature Not Available Exception (" Attendance Ġsummary Ġis Ġnot Ġavailable Ġin ĠAPI Ġmode ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġexc use For Abs ence ( abs ents : ĠList < Absent >, Ġcontent : ĠString ? Ġ= Ġnull ): ĠSingle < Boolean > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . HY BR ID , ĠMode . SCR AP PER Ġ-> Ġsc rapper . exc use For Abs ence ( abs ents . map To Sc rapper Absent (), Ġcontent ). compose ( Sc rapper Exception Transformer ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . API Ġ-> Ġthrow ĠFeature Not Available Exception (" Abs ence Ġexc using Ġis Ġnot Ġavailable Ġin ĠAPI Ġmode ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Subject s (): ĠSingle < List < Subject >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . HY BR ID , ĠMode . SCR AP PER Ġ-> Ġsc rapper . get Subject s (). compose ( Sc rapper Exception Transformer ()). map Ġ{ Ġit . map Subject s () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . API Ġ-> Ġmobile . get Di ctionaries (). map Ġ{ Ġit . subjects Ġ}. map Ġ{ Ġit . map Subject s () Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Ex ams ( start : ĠLocalDate , Ġend : ĠLocalDate , Ġse mester Id : ĠInt ): ĠSingle < List < Exam >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . SCR AP PER Ġ-> Ġsc rapper . get Ex ams ( start , Ġend ). compose ( Sc rapper Exception Transformer ()). map Ġ{ Ġit . map Ex ams () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . HY BR ID , ĠMode . API Ġ-> Ġmobile . get Di ctionaries (). flatMap Ġ{ Ġdict Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmobile . get Ex ams ( start , Ġend , Ġse mester Id ). map Ġ{ Ġit . map Ex ams ( dict ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Gr ades ( semester Id : ĠInt ): ĠSingle < Pair < List < Grade >, ĠList < Grade Summary >>> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . SCR AP PER Ġ-> Ġsc rapper . get Gr ades ( semester Id ). compose ( Sc rapper Exception Transformer ()). map Ġ{ Ġgr ades Ġ-> Ġgr ades . map Gr ades () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . HY BR ID , ĠMode . API Ġ-> Ġmobile . get Di ctionaries (). flatMap Ġ{ Ġdict Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmobile . get Gr ades ( semester Id ). map Ġ{ Ġgr ades Ġ-> Ġgr ades . map Gr ades ( dict ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Gr ades Details ( semester Id : ĠInt ): ĠSingle < List < Grade >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . SCR AP PER Ġ-> Ġsc rapper . get Gr ades Details ( semester Id ). compose ( Sc rapper Exception Transformer ()). map Ġ{ Ġgr ades Ġ-> Ġgr ades . map Gr ades Details () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . HY BR ID , ĠMode . API Ġ-> Ġmobile . get Di ctionaries (). flatMap Ġ{ Ġdict Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmobile . get Gr ades Details ( semester Id ). map Ġ{ Ġit . map Gr ades Details ( dict ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Gr ades Summary ( semester Id : ĠInt ): ĠSingle < List < Grade Summary >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . SCR AP PER Ġ-> Ġsc rapper . get Gr ades Summary ( semester Id ). compose ( Sc rapper Exception Transformer ()). map Ġ{ Ġit . map Gr ades Summary () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . HY BR ID , ĠMode . API Ġ-> Ġmobile . get Di ctionaries (). flatMap Ġ{ Ġdict Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmobile . get Gr ades Summary ( semester Id ). map Ġ{ Ġit . map Gr ades Summary ( dict ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Gr ades Annual Statistics ( semester Id : ĠInt ): ĠSingle < List < Grade Statistics >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . HY BR ID , ĠMode . SCR AP PER Ġ-> Ġsc rapper . get Gr ades Annual Statistics ( semester Id ). compose ( Sc rapper Exception Transformer ()). map Ġ{ Ġit . map Grade Statistics () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . API Ġ-> Ġthrow ĠFeature Not Available Exception (" Class Ġgr ades Ġannual Ġstatistics Ġis Ġnot Ġavailable Ġin ĠAPI Ġmode ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Gr ades Partial Statistics ( semester Id : ĠInt ): ĠSingle < List < Grade Statistics >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . HY BR ID , ĠMode . SCR AP PER Ġ-> Ġsc rapper . get Gr ades Partial Statistics ( semester Id ). compose ( Sc rapper Exception Transformer ()). map Ġ{ Ġit . map Grade Statistics () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . API Ġ-> Ġthrow ĠFeature Not Available Exception (" Class Ġgr ades Ġpartial Ġstatistics Ġis Ġnot Ġavailable Ġin ĠAPI Ġmode ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Gr ades Points Statistics ( semester Id : ĠInt ): ĠSingle < List < Grade Points Statistics >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . HY BR ID , ĠMode . SCR AP PER Ġ-> Ġsc rapper . get Gr ades Points Statistics ( semester Id ). compose ( Sc rapper Exception Transformer ()). map Ġ{ Ġit . map Grade Points Statistics () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . API Ġ-> Ġthrow ĠFeature Not Available Exception (" Class Ġgr ades Ġpoints Ġstatistics Ġis Ġnot Ġavailable Ġin ĠAPI Ġmode ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Home work ( start : ĠLocalDate , Ġend : ĠLocalDate , Ġse mester Id : ĠInt Ġ= Ġ 0 ): ĠSingle < List < Home work >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . SCR AP PER Ġ-> Ġsc rapper . get Home work ( start , Ġend ). compose ( Sc rapper Exception Transformer ()). map Ġ{ Ġit . map Home work () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . HY BR ID , ĠMode . API Ġ-> Ġmobile . get Di ctionaries (). flatMap Ġ{ Ġdict Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmobile . get Home work ( start , Ġend , Ġse mester Id ). map Ġ{ Ġit . map Home work ( dict ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Notes ( semester Id : ĠInt ): ĠSingle < List < Note >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . SCR AP PER Ġ-> Ġsc rapper . get Notes (). compose ( Sc rapper Exception Transformer ()). map Ġ{ Ġit . map Notes () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . HY BR ID , ĠMode . API Ġ-> Ġmobile . get Di ctionaries (). flatMap Ġ{ Ġdict Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmobile . get Notes ( semester Id ). map Ġ{ Ġit . map Notes ( dict ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Registered Devices (): ĠSingle < List < Device >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . HY BR ID , ĠMode . SCR AP PER Ġ-> Ġsc rapper . get Registered Devices (). compose ( Sc rapper Exception Transformer ()). map Ġ{ Ġit . map Devices () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . API Ġ-> Ġthrow ĠFeature Not Available Exception (" Devices Ġmanagement Ġis Ġnot Ġavailable Ġin ĠAPI Ġmode ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetToken (): ĠSingle < Token > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . HY BR ID , ĠMode . SCR AP PER Ġ-> Ġsc rapper . getToken (). compose ( Sc rapper Exception Transformer ()). map Ġ{ Ġit . map Token () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . API Ġ-> Ġthrow ĠFeature Not Available Exception (" Devices Ġmanagement Ġis Ġnot Ġavailable Ġin ĠAPI Ġmode ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġunregister Device ( id : ĠInt ): ĠSingle < Boolean > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . HY BR ID , ĠMode . SCR AP PER Ġ-> Ġsc rapper . unregister Device ( id ). compose ( Sc rapper Exception Transformer ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . API Ġ-> Ġthrow ĠFeature Not Available Exception (" Devices Ġmanagement Ġis Ġnot Ġavailable Ġin ĠAPI Ġmode ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Te achers ( semester Id : ĠInt ): ĠSingle < List < Teacher >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . SCR AP PER Ġ-> Ġsc rapper . get Te achers (). compose ( Sc rapper Exception Transformer ()). map Ġ{ Ġit . map Te achers () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . HY BR ID , ĠMode . API Ġ-> Ġmobile . get Di ctionaries (). flatMap Ġ{ Ġdict Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmobile . get Te achers ( student Id , Ġse mester Id ). map Ġ{ Ġit . map Te achers ( dict ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget School (): ĠSingle < School > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . HY BR ID , ĠMode . SCR AP PER Ġ-> Ġsc rapper . get School (). compose ( Sc rapper Exception Transformer ()). map Ġ{ Ġit . map School () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . API Ġ-> Ġthrow ĠFeature Not Available Exception (" School Ġinfo Ġis Ġnot Ġavailable Ġin ĠAPI Ġmode ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Student Info (): ĠSingle < Student Info > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . HY BR ID , ĠMode . SCR AP PER Ġ-> Ġsc rapper . get Student Info (). compose ( Sc rapper Exception Transformer ()). map Ġ{ Ġit . map Student () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . API Ġ-> Ġthrow ĠFeature Not Available Exception (" Student Ġinfo Ġis Ġnot Ġavailable Ġin ĠAPI Ġmode ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Reporting Units (): ĠSingle < List < Reporting Unit >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . HY BR ID , ĠMode . SCR AP PER Ġ-> Ġsc rapper . get Reporting Units (). compose ( Sc rapper Exception Transformer ()). map Ġ{ Ġit . map Reporting Units () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . API Ġ-> Ġmobile . get Students (). map Ġ{ Ġit . map Reporting Units ( student Id ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Recipients ( unit Id : ĠInt , Ġrole : ĠInt Ġ= Ġ 2 ): ĠSingle < List < Recipient >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . HY BR ID , ĠMode . SCR AP PER Ġ-> Ġsc rapper . get Recipients ( unit Id , Ġrole ). compose ( Sc rapper Exception Transformer ()). map Ġ{ Ġit . map Recipients () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . API Ġ-> Ġmobile . get Di ctionaries (). map Ġ{ Ġit . te achers Ġ}. map Ġ{ Ġit . map Recipients ( unit Id ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Messages ( folder : ĠFolder , Ġstart : ĠLocalDateTime , Ġend : ĠLocalDateTime ): ĠSingle < List < Message >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( folder ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFolder . RECE IVED Ġ-> Ġget Received Messages ( start , Ġend ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFolder . SENT Ġ-> Ġget Sent Messages ( start , Ġend ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFolder . TR ASH ED Ġ-> Ġget Deleted Messages ( start , Ġend ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Received Messages ( start : ĠLocalDateTime , Ġend : ĠLocalDateTime ): ĠSingle < List < Message >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . HY BR ID , ĠMode . SCR AP PER Ġ-> Ġsc rapper . get Received Messages (). compose ( Sc rapper Exception Transformer ()). map Ġ{ Ġit . map Messages () Ġ} Ġ// ĠTODO ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . API Ġ-> Ġmobile . get Di ctionaries (). flatMap Ġ{ Ġdict Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmobile . get Messages ( start , Ġend ). map Ġ{ Ġit . map Messages ( dict ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Sent Messages ( start : ĠLocalDateTime , Ġend : ĠLocalDateTime ): ĠSingle < List < Message >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . HY BR ID , ĠMode . SCR AP PER Ġ-> Ġsc rapper . get Sent Messages (). compose ( Sc rapper Exception Transformer ()). map Ġ{ Ġit . map Messages () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . API Ġ-> Ġmobile . get Di ctionaries (). flatMap Ġ{ Ġdict Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmobile . get Messages Sent ( start , Ġend ). map Ġ{ Ġit . map Messages ( dict ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Deleted Messages ( start : ĠLocalDateTime , Ġend : ĠLocalDateTime ): ĠSingle < List < Message >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . HY BR ID , ĠMode . SCR AP PER Ġ-> Ġsc rapper . get Deleted Messages (). compose ( Sc rapper Exception Transformer ()). map Ġ{ Ġit . map Messages () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . API Ġ-> Ġmobile . get Di ctionaries (). flatMap Ġ{ Ġdict Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmobile . get Messages Deleted ( start , Ġend ). map Ġ{ Ġit . map Messages ( dict ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetMessage Recipients ( message Id : ĠInt , Ġsender Id : ĠInt ): ĠSingle < List < Recipient >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . HY BR ID , ĠMode . SCR AP PER Ġ-> Ġsc rapper . getMessage Recipients ( message Id , Ġsender Id ). compose ( Sc rapper Exception Transformer ()). map Ġ{ Ġit . map Recipients () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . API Ġ-> ĠTODO () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetMessage Details ( message Id : ĠInt , Ġfolder Id : ĠInt , Ġread : ĠBoolean Ġ= Ġfalse , Ġid : ĠInt ? Ġ= Ġnull ): ĠSingle < Message Details > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . HY BR ID , ĠMode . SCR AP PER Ġ-> Ġsc rapper . getMessage Details ( message Id , Ġfolder Id , Ġread , Ġid ). compose ( Sc rapper Exception Transformer ()). map Ġ{ Ġit . map Sc rapper Message () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . API Ġ-> Ġmobile . change Message Status ( message Id , Ġwhen Ġ( folder Id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġ" O de brane " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> Ġ" W ys ÅĤ ane " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ" Us uni ÄĻ te " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ" W id oc z na "). map Ġ{ ĠMessage Details ("", Ġempty List ()) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠsendMessage ( subject : ĠString , Ġcontent : ĠString , Ġrecipients : ĠList < Recipient >): ĠSingle < Sent Message > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . HY BR ID , ĠMode . SCR AP PER Ġ-> Ġsc rapper . sendMessage ( subject , Ġcontent , Ġrecipients . map From Recipients To Sc raper ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. compose ( Sc rapper Exception Transformer ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . map Sent Message () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . API Ġ-> Ġmobile . sendMessage ( subject , Ġcontent , Ġrecipients . map From Recipients To Mobile ()). map Ġ{ Ġit . map Sent Message ( login Id ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdelete Messages ( messages : ĠList < Pair < Int , ĠInt >> ): ĠSingle < Boolean > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . SCR AP PER Ġ-> Ġsc rapper . delete Messages ( messages ). compose ( Sc rapper Exception Transformer ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . HY BR ID , ĠMode . API Ġ-> ĠComp letable . merge Delay Error ( messages . map Ġ{ Ġ( message Id , Ġfolder Id ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmobile . change Message Status ( message Id , Ġwhen Ġ( folder Id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġ" O de brane " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> Ġ" W ys ÅĤ ane " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ" Us uni ÄĻ te " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ" Us uni eta "). ignore Element () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}). to Single Default ( true ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetTime table ( start : ĠLocalDate , Ġend : ĠLocalDate ): ĠSingle < List < Time table >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . SCR AP PER Ġ-> Ġsc rapper . getTime table ( start , Ġend ). compose ( Sc rapper Exception Transformer ()). map Ġ{ Ġit . map Time table () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . HY BR ID , ĠMode . API Ġ-> Ġmobile . get Di ctionaries (). flatMap Ġ{ Ġdict Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmobile . getTime table ( start , Ġend , Ġ 0 ). map Ġ{ Ġit . map Time table ( dict ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Completed Less ons ( start : ĠLocalDate , Ġend : ĠLocalDate ? Ġ= Ġnull , Ġsubject Id : ĠInt Ġ= Ġ- 1 ): ĠSingle < List < Completed Lesson >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . HY BR ID , ĠMode . SCR AP PER Ġ-> Ġsc rapper . get Completed Less ons ( start , Ġend , Ġsubject Id ). compose ( Sc rapper Exception Transformer ()). map Ġ{ Ġit . map Completed Less ons () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . API Ġ-> Ġthrow ĠFeature Not Available Exception (" Completed Ġless ons Ġare Ġnot Ġavailable Ġin ĠAPI Ġmode ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget L uck y Number ( unit Name : ĠString Ġ= Ġ"") : ĠMaybe < Int > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġget K ids L uck y Numbers (). filter Ġ{ Ġit . isNotEmpty () Ġ}. flatMap Ġ{ Ġnumbers Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġif Ġluck y Ġnumber Ġunit Name Ġmatch Ġunit Ġname Ġfrom Ġstudent Ġtile ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnumbers . single OrNull Ġ{ Ġnumber Ġ-> Ġnumber . unit Name Ġ== Ġunit Name Ġ} ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ flatMap ĠMaybe . just ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġif Ġthere Ġthere Ġis Ġonly Ġone Ġluck y Ġnumber Ġand Ġits Ġdoesn 't Ġmatch Ġto Ġany Ġstudent ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( numbers . size Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ flatMap ĠMaybe . just ( numbers . single ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġif Ġthere Ġis Ġmore Ġthan Ġone Ġluck y Ġnumber , Ġreturn Ġfirst Ġ( just Ġlike Ġthis Ġwas Ġworking Ġbefore Ġ 0 . 1 6 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( numbers . size Ġ> Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ flatMap ĠMaybe . just ( numbers . first ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMaybe . empty < L uck y Number >() ĊĠĠĠĠĠĠĠ Ġ}. map Ġ{ Ġit . number Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Self G overn ments (): ĠSingle < List < G overnment Unit >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . HY BR ID , ĠMode . SCR AP PER Ġ-> Ġsc rapper . get Self G overn ments (). compose ( Sc rapper Exception Transformer ()). map Ġ{ Ġit . map To Units () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . API Ġ-> Ġthrow ĠFeature Not Available Exception (" Self Ġgovern ments Ġis Ġnot Ġavailable Ġin ĠAPI Ġmode ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Student Th re ats (): ĠSingle < List < String >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . HY BR ID , ĠMode . SCR AP PER Ġ-> Ġsc rapper . get Student Th re ats (). compose ( Sc rapper Exception Transformer ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . API Ġ-> Ġthrow ĠFeature Not Available Exception (" Student Ġth re ats Ġare Ġnot Ġavailable Ġin ĠAPI Ġmode ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Students Tri ps (): ĠSingle < List < String >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . HY BR ID , ĠMode . SCR AP PER Ġ-> Ġsc rapper . get Students Tri ps (). compose ( Sc rapper Exception Transformer ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . API Ġ-> Ġthrow ĠFeature Not Available Exception (" Students Ġtri ps Ġis Ġnot Ġavailable Ġin ĠAPI Ġmode ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetLast Gr ades (): ĠSingle < List < String >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . HY BR ID , ĠMode . SCR AP PER Ġ-> Ġsc rapper . getLast Gr ades (). compose ( Sc rapper Exception Transformer ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . API Ġ-> Ġthrow ĠFeature Not Available Exception (" Last Ġgr ades Ġis Ġnot Ġavailable Ġin ĠAPI Ġmode ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Free Days (): ĠSingle < List < String >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . HY BR ID , ĠMode . SCR AP PER Ġ-> Ġsc rapper . get Free Days (). compose ( Sc rapper Exception Transformer ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . API Ġ-> Ġthrow ĠFeature Not Available Exception (" Free Ġdays Ġis Ġnot Ġavailable Ġin ĠAPI Ġmode ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget K ids L uck y Numbers (): ĠSingle < List < L uck y Number >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . HY BR ID , ĠMode . SCR AP PER Ġ-> Ġsc rapper . get K ids L uck y Numbers (). compose ( Sc rapper Exception Transformer ()). map Ġ{ Ġit . map L uck y Numbers () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . API Ġ-> Ġthrow ĠFeature Not Available Exception (" K ids ĠL uck y Ġnumber Ġis Ġnot Ġavailable Ġin ĠAPI Ġmode ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget K ids Time table (): ĠSingle < List < String >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . HY BR ID , ĠMode . SCR AP PER Ġ-> Ġsc rapper . get K ids Lesson Plan (). compose ( Sc rapper Exception Transformer ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . API Ġ-> Ġthrow ĠFeature Not Available Exception (" K ids Ġtime table Ġis Ġnot Ġavailable Ġin ĠAPI Ġmode ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetLast Home work (): ĠSingle < List < String >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . HY BR ID , ĠMode . SCR AP PER Ġ-> Ġsc rapper . getLast Home work (). compose ( Sc rapper Exception Transformer ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . API Ġ-> Ġthrow ĠFeature Not Available Exception (" Last Ġhome work Ġis Ġnot Ġavailable Ġin ĠAPI Ġmode ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetLast Ex ams (): ĠSingle < List < String >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . HY BR ID , ĠMode . SCR AP PER Ġ-> Ġsc rapper . getLast Tests (). compose ( Sc rapper Exception Transformer ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . API Ġ-> Ġthrow ĠFeature Not Available Exception (" Last Ġex ams Ġis Ġnot Ġavailable Ġin ĠAPI Ġmode ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetLast Student Less ons (): ĠSingle < List < String >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . HY BR ID , ĠMode . SCR AP PER Ġ-> Ġsc rapper . getLast Student Less ons (). compose ( Sc rapper Exception Transformer ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMode . API Ġ-> Ġthrow ĠFeature Not Available Exception (" Last Ġstudent Ġlesson Ġis Ġnot Ġavailable Ġin ĠAPI Ġmode ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ