package Ġcom . flight . app . repo Ċ Ċ import Ġandroidx . annotation . Visible ForTesting Ċ import Ġcom . flight . app . model . Air port Ċ import Ġcom . flight . app . model . City Ċ import Ġcom . flight . app . model . Flight Schedule Ċ import Ġcom . flight . app . service . Av iation Edge Service Ċ import Ġokhttp 3 . MediaType Ċ import Ġokhttp 3 . ResponseBody Ċ import Ġretrofit 2 . Response Ċ Ċ open Ġclass ĠAir port Repository Ċ @ Visible ForTesting Ġconstructor ( ĊĠĠĠ Ġ@ Visible ForTesting Ġval Ġservice : ĠA viation Edge Service Ċ ) Ġ: ĠAir port Repository Contract Ġ{ ĊĊĠĠĠ Ġconstructor () Ġ: Ġthis ( Av iation Edge Service . getInstance ()) ĊĊĠĠĠ Ġoverride Ġfun Ġget Near by Air ports ( lat : ĠString , Ġlng : ĠString , Ġdistance : ĠString ): ĠResponse < List < Air port >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġservice . get Near by Air ports ( lat Ġ= Ġlat , Ġlng Ġ= Ġlng , Ġdistance Ġ= Ġdistance ). execute () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIllegalStateException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerror Response () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Air port Schedule ( i ata Code : ĠString , Ġtype : ĠString ): ĠResponse < List < Flight Schedule >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġservice . get Air ports Schedule ( i ata Code Ġ= Ġi ata Code , Ġtype Ġ= Ġtype ). execute () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIllegalStateException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerror Response () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget City ( code I ata City : ĠString ): ĠResponse < List < City >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġservice . get City ( code I ata City Ġ= Ġcode I ata City ). execute () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIllegalStateException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerror Response () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun Ġ< T > Ġerror Response (): ĠResponse < T > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠResponse . error < T >( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 4 0 4 , ĠResponse Body . create ( MediaType . parse (" application / json "), Ġ"{ Ġerror : Ġ{ Ġtext : ĠNo ĠRecord ĠFound Ġ} Ġ} ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ Ċ }