package Ġcom . example . my che e sec akes . data . repositories Ċ Ċ import Ġandroid . util . Log Ċ import Ġcom . example . my che e sec akes . data . network . api . Air table Api Ċ import Ġcom . example . my che e sec akes . data . network . api . model . map pers . Api Che e sec ake Mapper Ċ import Ġcom . example . my che e sec akes . data . network . api . model . map pers . Api D ess ert Mapper Ċ import Ġcom . example . my che e sec akes . data . network . api . model . map pers . Api Dr ink Mapper Ċ import Ġcom . example . my che e sec akes . data . network . api . model . map pers . List Mapper Impl Ċ import Ġcom . example . my che e sec akes . domain . model . Che e sec ake Ċ import Ġcom . example . my che e sec akes . domain . model . menu items . D ess ert Ċ import Ġcom . example . my che e sec akes . domain . model . menu items . Dr ink Ċ import Ġcom . example . my che e sec akes . domain . repositories . MenuItem Repository Ċ import Ġretrofit 2 . HttpException Ċ import Ġjava . io . IOException Ċ Ċ const Ġval ĠTAG Ġ= Ġ" MenuItem Repository " Ċ Ċ class ĠMenuItem Repository ( ĊĠĠĠ Ġprivate Ġval Ġapi : ĠAir table Api , ĊĠĠĠ Ġprivate Ġval Ġche e sec ake Mapper : ĠApi Che e sec ake Mapper , ĊĠĠĠ Ġprivate Ġval Ġde ssert Mapper : ĠApi D ess ert Mapper , ĊĠĠĠ Ġprivate Ġval Ġdrink Mapper : ĠApi Dr ink Mapper ĊĠĠĠ Ġ) Ġ: ĠMenuItem Repository Ġ{ ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun ĠgetAll Che e sec akes (): ĠList < Che e sec ake >? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi . getAll Che e sec akes () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġ" IOException ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠHttp Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġ" HttpException ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( response . is Successful Ġ&& Ġresponse . body () Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġapi Che e sec akes Ġ= Ġresponse . body () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġche e sec akes Ġ= Ġapi Che e sec akes ?. che e sec akes ?. let Ġ{ Ġapi C akes Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapi C akes . map Ġ{ Ġche e sec ake Mapper . map To Domain ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġche e sec akes ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun ĠgetAll D ess erts (): ĠList < D ess ert >? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi . getAll D ess erts () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġ" IOException ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠHttp Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġ" HttpException ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( response . is Successful Ġ&& Ġresponse . body () Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġapi D ess erts Ġ= Ġresponse . body () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġde ssert s Ġ= Ġapi D ess erts ?. de ssert s ?. let Ġ{ Ġlist Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist . map Ġ{ Ġde ssert Mapper . map To Domain ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġde ssert s ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun ĠgetAll Dr inks (): ĠList < Dr ink >? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi . getAll Dr inks () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġ" IOException ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠHttp Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġ" HttpException ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( response . is Successful Ġ&& Ġresponse . body () Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġapi Dr ink List Ġ= Ġresponse . body () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdrink List Ġ= Ġapi Dr ink List ?. dr inks ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠList Mapper Impl ( dr ink Mapper ). map To Domain ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdrink List ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġget Che e sec ake ( id : ĠString ): ĠChe e sec ake ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi . get Che e sec ake ( id ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġ" IOException ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠHttp Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġ" HttpException ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( response . is Successful Ġ&& Ġresponse . body () Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġapi Che e sec ake Ġ= Ġresponse . body () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġche e sec ake Ġ= Ġapi Che e sec ake ?. let Ġ{ Ġche e sec ake Mapper . map To Domain ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġche e sec ake ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġget D ess ert ( id : ĠString ): ĠD ess ert ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi . get D ess ert ( id ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġ" IOException ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠHttp Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġ" HttpException ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( response . is Successful Ġ&& Ġresponse . body () Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġapi D ess ert Ġ= Ġresponse . body () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġde ssert Ġ= Ġapi D ess ert ?. let Ġ{ Ġde ssert Mapper . map To Domain ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġde ssert ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġget Dr ink ( id : ĠString ): ĠD rink ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi . get Dr ink ( id ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġ" IOException ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠHttp Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġ" HttpException ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( response . is Successful Ġ&& Ġresponse . body () Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġapi Dr ink Ġ= Ġresponse . body () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdrink Ġ= Ġapi Dr ink ?. let Ġ{ Ġdrink Mapper . map To Domain ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdrink ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġget Che e sec akes By Category ( category : ĠString ): ĠList < Che e sec ake >? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi . get Che e sec akes By Category ( category ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġ" IOException ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠHttp Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġ" HttpException ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( response . is Successful Ġ&& Ġresponse . body () Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġapi Che e sec akes Ġ= Ġresponse . body () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġche e sec akes Ġ= Ġapi Che e sec akes ?. che e sec akes ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠList Mapper Impl ( che e sec ake Mapper ). map To Domain ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġche e sec akes ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }