package Ġcom . github . ur agi rist ereo . me ji board . domain . use case . api Ċ Ċ import Ġcom . github . ur agi rist ereo . me ji board . data . model . remote . provider . Api Providers Ċ import Ġcom . github . ur agi rist ereo . me ji board . domain . entity . provider . tag . Tag Ċ import Ġcom . github . ur agi rist ereo . me ji board . domain . repository . remote . Providers Repository Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠGet Tags Info UseCase Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġproviders Repository : ĠPro viders Repository , Ċ ) Ġ{ ĊĠĠĠ Ġsuspend Ġoperator Ġfun Ġinvoke ( ĊĠĠĠĠĠĠĠ Ġprovider : ĠApi Providers , ĊĠĠĠĠĠĠĠ Ġtags : ĠString , ĊĠĠĠĠĠĠĠ Ġon Loading : Ġ( loading : ĠBoolean ) Ġ-> ĠUnit , ĊĠĠĠĠĠĠĠ ĠonSuccess : Ġ( data : ĠList < Tag >) Ġ-> ĠUnit , ĊĠĠĠĠĠĠĠ Ġon Failed : Ġ( msg : ĠString ) Ġ-> ĠUnit , ĊĠĠĠĠĠĠĠ ĠonError : Ġ( t : ĠThrowable ) Ġ-> ĠUnit , ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġon Loading ( true ) ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtag List Ġ= Ġtags . split (' Ġ') ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġproviders Repository . get Tags ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprovider Ġ= Ġprovider , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtags Ġ= Ġtag List , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result . errorMessage . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonSuccess ( result . data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Failed ("${ result . statusCode }: Ġ\" ${ result . errorMessage }\" ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Loading ( false ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( t : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( t ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Ġjava . util . concurrent . Cancellation Exception Ġ-> Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠonError ( t ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Loading ( false ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }