package Ġcom . oz an top uz . dic et ask . domain . use case Ċ Ċ import Ġcom . oz an top uz . dic et ask . data . Result Ċ import Ġcom . oz an top uz . dic et ask . data . succeeded Ċ import Ġcom . oz an top uz . dic et ask . domain . mapper . Artist View Item Mapper Ċ import Ġcom . oz an top uz . dic et ask . domain . repository . Artist Repository Ċ import Ġcom . oz an top uz . dic et ask . ui . entity . Artist View Item Ċ import Ġcom . oz an top uz . dic et ask . util . use case . Params Ċ import Ġcom . oz an top uz . dic et ask . util . use case . UseCase Ċ import Ġkotlinx . coroutines . Experimental Cor outines Api Ċ import Ġjavax . inject . Inject Ċ Ċ @ Experimental Cor outines Api Ċ class ĠGet Art ists UseCase Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġrepository : ĠArtist Repository , ĊĠĠĠ Ġprivate Ġval Ġmapper : ĠArtist View Item Mapper Ċ ) Ġ: ĠUse Case . Flow UseCase < Art ists Params , ĠList < Artist View Item >> Ġ{ ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġexecute ( params : ĠArt ists Params ): ĠResult < List < Artist View Item >> Ġ= ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġrepository . fetch Art ists ( params ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result . succeeded ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġas ĠResult . Success ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlist Ġ= Ġresult . data . map Ġ{ Ġmapper . map ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResult . Success ( list ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġas ĠResult . Error ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResult . Error ( result . exception ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠResult . Error ( e ) ĊĠĠĠĠĠĠĠ Ġ} Ċ } Ċ Ċ data Ġclass ĠArt ists Params ( ĊĠĠĠ Ġval Ġquery : ĠString , ĊĠĠĠ Ġval Ġoffset : ĠInt , ĊĠĠĠ Ġval Ġlimit : ĠInt , Ċ ) Ġ: ĠParams () Ċ