package Ġcom . od hi amb op a ul . g movies . domain . use cases Ċ Ċ import Ġcom . od hi amb op a ul . g movies . common . Movie Types Ċ import Ġcom . od hi amb op a ul . g movies . common . Resource Ċ import Ġcom . od hi amb op a ul . g movies . data . remote . dto . to Movie Ċ import Ġcom . od hi amb op a ul . g movies . domain . model . Movie Ċ import Ġcom . od hi amb op a ul . g movies . domain . repository . Movie Repository Ċ import Ġkotlinx . coroutines . flow . Flow Ċ import Ġkotlinx . coroutines . flow . flow Ċ import Ġretrofit 2 . HttpException Ċ import Ġjava . io . IOException Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠGet Movie Detail UseCase Ġ@ Inject Ġconstructor ( private Ġval Ġrepository : ĠMovie Repository ) Ġ{ ĊĠĠĠ Ġoperator Ġfun Ġinvoke ( id : ĠInt ): ĠFlow < Resource < Movie >> Ġ= Ġflow Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġemit ( Resource . Loading ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmovie Ġ= Ġrepository . get Movie Details ( id ). to Movie ( movie Type Ġ= ĠMovie Types . POP ULAR ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġemit ( Resource . Success ( movie )) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠHttp Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġemit ( Resource . Error ( e . localized Message Ġ?: Ġ" Movie Ġwith Ġthe Ġid Ġ$ id Ġnot Ġfound ")) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// fall Ġback Ġto Ġlocal Ġdatabase ĊĠĠĠĠĠĠĠĠĠĠĠ Ġemit ( Resource . Success ( repository . getLocal Movie ById ( id ))) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }