package Ġcom . jd agn ogo . we lov em ar athon . common . utils Ċ Ċ import Ġco il . network . HttpException Ċ import Ġcom . google . firebase . firestore . Firebase Fire store Ċ import Ġkotlinx . coroutines . tasks . await Ċ import Ġjava . io . IOException Ċ Ċ suspend Ġinline Ġfun Ġ< re ified ĠT > Ġfetch List ( ĊĠĠĠ Ġfire Store : ĠFirebase Fire store , ĊĠĠĠ Ġcollection Name : ĠString , Ċ ): ĠResource < List < T >> Ġ{ ĊĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġmutable ListOf < T >() ĊĠĠĠĠĠĠĠ Ġval Ġsnapshot Ġ= Ġfire Store ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. collection ( collection Name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. get () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. await () ĊĠĠĠĠĠĠĠ Ġdata . addAll ( snapshot . to Objects ( T :: class . java )) ĊĊĠĠĠĠĠĠĠ ĠResource . Success ( data ) ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠHttp Exception ) Ġ{ ĊĠĠĠĠĠĠĠ ĠResource . Generic Error . Http Error ( e . message Ġ?: Ġ"", Ġnull , Ġcode Ġ= Ġe . response . code ()) ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠ ĠResource . Generic Error . Network Error ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Ġ= Ġ" Couldn 't Ġreach Ġserver , Ġcheck Ġyour Ġinternet Ġconnection .", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġ= ĠlistOf () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ