package Ġcom . fil ipp o eng idas het . john le wis . mv vm . data . repository Ċ Ċ import Ġcom . fil ipp o eng idas het . john le wis . mv vm . data . api . Products Api Ċ import Ġcom . fil ipp o eng idas het . john le wis . mv vm . data . mapper . Product Mapper Ċ import Ġcom . fil ipp o eng idas het . john le wis . mv vm . data . model . Api Result Ċ import Ġcom . fil ipp o eng idas het . john le wis . mv vm . data . model . entity . Product Entity Ċ import Ġjavax . inject . Inject Ċ Ċ /** Ċ Ġ* Ġ@ author ĠFil ipp o ĠEng idas het Ċ Ġ* Ġ@ version Ġ 1 . 0 . 0 Ċ Ġ* Ġ@ since ĠTue , Ġ 0 8 / 0 2 / 2 0 2 2 Ġat Ġ 1 3 : 4 4 . Ċ Ġ*/ Ċ class ĠProduct Grid Repository Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġapi : ĠProducts Api , ĊĠĠĠ Ġprivate Ġval Ġmapper : ĠProduct Mapper , Ċ ) Ġ{ ĊĠĠĠ Ġsuspend Ġfun Ġget Products Result ( keyword : ĠString ): ĠApi Result < List < Product Entity >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġproducts Ġ= Ġapi . get Products ( query Ġ= Ġkeyword . trim ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmapped Products Ġ= Ġmapper . map Products ( products ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠApi Result . Success ( mapped Products ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( t : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠApi Result . Error ( t ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ