package Ġcom . k ale vet . pix a get ĊĊ Ċ import Ġcom . k ale vet . pix a get . data . repositories . remote . api Services . Ok HttpClient Adapter Ċ import Ġcom . k ale vet . pix a get . data . repositories . remote . api Services . Pix ab ay ApiService Ċ import Ġcom . k ale vet . pix a get . data . repositories . remote . api Services . Ret rofit Adapter Ċ import Ġcom . k ale vet . pix a get . data . repositories . remote . requests . Image Search Request Ċ import Ġcom . k ale vet . pix a get . data . repositories . remote . requests . Video Search Request Ċ import Ġcom . k ale vet . pix a get . data . repositories . remote . responses . Image SearchResult Ċ import Ġcom . k ale vet . pix a get . data . repositories . remote . responses . Video SearchResult Ċ import Ġcom . k ale vet . pix a get . exceptions . HttpClient Is Missing Exception Ċ import Ġcom . k ale vet . pix a get . exceptions . Json Converter Is Missing Exception Ċ import Ġcom . k ale vet . pix a get . exceptions . Pix ab ay ApiKey Is Missing Exception Ċ import Ġcom . k ale vet . pix a get . ut ill . json Handlers . Gson Adapter Ċ import Ġcom . k ale vet . pix a get . ut ill . json Handlers . Jack son Adapter Ċ import Ġcom . k ale vet . pix a get . ut ill . json Handlers . M oshi Adapter Ċ import Ġkotlinx . coroutines . Experimental Cor outines Api Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġretrofit 2 . Ret rofit Ċ import Ġretrofit 2 . converter . gson . Gson Converter Factory Ċ import Ġretrofit 2 . converter . jackson . Jack son Converter Factory Ċ import Ġretrofit 2 . converter . mos hi . M oshi Converter Factory Ċ Ċ /** Ċ Ġ* ĠThe ĠP ixa get Ġclass Ġprovide Ġan Ġeasy Ġway Ġto Ġgenerate Ġa ĠP ixa get Ġserver 's Ġsearch Ġrequest Ġand Ġprovide Ġthe Ġresponse Ċ Ġ*/ Ċ @ Experimental Cor outines Api Ċ class ĠP ixa get Ġprivate Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġpix ab ay ApiKey : ĠString , ĊĠĠĠ Ġprivate Ġval Ġpix ab ay ApiService : ĠP ix ab ay ApiService Ċ ) Ġ{ ĊĠĠĠ Ġenum Ġclass ĠConverter Options Ġ{ ĊĠĠĠĠĠĠĠ ĠG SON , ĊĠĠĠĠĠĠĠ ĠJ ACK SON , ĊĠĠĠĠĠĠĠ ĠMO SH I , ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠA Ġbuilder Ġpattern ed Ġclass ĊĠĠĠĠ Ġ* Ġ@ param Ġpix ab ay ApiKey Ġis Ġa Ġapi Ġkey Ġrequired Ġto Ġrequest Ġvideos / images Ġfrom Ġthe ĠP ixa get Ġserver . ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġyou Ġdo Ġnot Ġhave Ġan Ġapi Ġkey Ġyou Ġcan Ġget Ġone Ġfor Ġfree Ġat Ġ@ see Ġ< a Ġhref =" https :// pix ab ay . com / api / docs /"> Pix a get . com </ a > ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ/* data Ġclass ĠBuilder ( ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġpix ab ay ApiKey : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġpix ab ay ApiService : ĠP ix ab ay ApiService ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġconverter Options : ĠConverter Options ? Ġ= Ġnull , ĊĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġok HttpClient : ĠOk HttpClient ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġretrofit Builder : ĠRet rofit . Builder ? Ġ= Ġnull , ĊĠĠĠ Ġ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠSet Ġthe ĠP ixa get Ġapi Ġkey Ġthat Ġallows Ġyou Ġto Ġaccess Ġthe ĠP ixa get Ġservice Ġapi , Ġto Ġget Ġthis ĊĠĠĠĠĠĠĠĠ Ġ* Ġkey Ġ@ see Ġ< a Ġhref =" https :// pix ab ay . com / api / docs /"> Pix a get . com </ a >. ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġpix ab ay ApiKey ĠA Ġstring Ġrepresenting Ġthe ĠP ixa get Ġapi Ġkey , Ġthis Ġkey Ġcan Ġbe Ġobtained Ġat Ġthe ĠP ixa get Ġwebsite . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġset Pix ab ay ApiKey ( pix ab ay ApiKey : ĠString ) Ġ= Ġapply Ġ{ Ġthis . pix ab ay ApiKey Ġ= Ġpix ab ay ApiKey Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠSet Ġthe Ġlibrary Ġthat Ġwill Ġconvert Ġthe ĠP ixa get 's Ġserver Ġjson Ġresponse Ġinto Ġa Ġkotlin Ġresult Ġobject . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġconverter Options Ġ@ see ĠConverter Options Ġfor Ġjson Ġto Ġobject Ġconverter Options Ġoptions ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġset Converter ( converter Options : ĠConverter Options ) Ġ= Ġapply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . converter Options Ġ= Ġconverter Options ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġset Ok HttpClient ( client : ĠOk HttpClient ) Ġ= Ġapply Ġ{ Ġthis . ok HttpClient Ġ= Ġclient Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġset Ret rofit Builder ( ret rofit Builder : ĠRet rofit . Builder ) Ġ= Ġapply Ġ{ Ġthis . ret rofit Builder Ġ= Ġretrofit Builder Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠSet Ġthe ĠP ixa get Ġapi Ġkey Ġthat Ġallows Ġyou Ġto Ġaccess Ġthe ĠP ixa get Ġservice Ġapi , Ġto Ġget Ġthis ĊĠĠĠĠĠĠĠĠ Ġ* Ġkey Ġ@ see Ġ< a Ġhref =" https :// pix ab ay . com / api / docs /"> Pix a get . com </ a > ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġa ĠP ixa get Ġobject Ġif ĠP ixa get Ġapi Ġkey Ġwas Ġprovided . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ throws ĠClass NotFoundException Ġif ĠOk HttpClient Ġclass Ġwas Ġnot Ġadded Ġto Ġthe Ġdependencies . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Throws ( Pix ab ay ApiKey Is Missing Exception :: class , ĠJson Converter Is Missing Exception :: class ) ĊĠĠĠĠĠĠĠ Ġfun Ġbuild (): ĠP ixa get Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpix ab ay ApiKey Ġ?: Ġthrow ĠP ix ab ay ApiKey Is Missing Exception () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconverter Options Ġ?: Ġthrow ĠJson Converter Is Missing Exception () ĊĊ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġretrofit Builder ?. let Ġ{ Ġretrofit Builder Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġconverter Factory Ġ= Ġwhen Ġ( converter Options !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConverter Options . G SON Ġ-> ĠGson Converter Factory . create () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConverter Options . J ACK SON Ġ-> ĠJack son Converter Factory . create () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConverter Options . MO SH I Ġ-> ĠM oshi Converter Factory . create () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ok HttpClient Ġ!= Ġnull ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpix ab ay ApiService Ġ= ĠRet rofit Adapter ( ret rofit Builder , Ġconverter Factory , Ġok HttpClient ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} else Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpix ab ay ApiService Ġ= ĠRet rofit Adapter ( ret rofit Builder , Ġconverter Factory ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġ?: Ġok HttpClient ?. let Ġ{ Ġclient Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjson Converter Ġ= Ġwhen Ġ( converter Options !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConverter Options . G SON Ġ-> ĠGson Adapter () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConverter Options . J ACK SON Ġ-> ĠJack son Adapter () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConverter Options . MO SH I Ġ-> ĠM oshi Adapter () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpix ab ay ApiService Ġ= ĠOk HttpClient Adapter ( client , Ġjson Converter ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġ?: Ġthrow ĠHttpClient Is Missing Exception () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠP ixa get ( pix ab ay ApiKey !! , Ġpix ab ay ApiService !! ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġ*/ ĊĊĠĠĠ Ġdata Ġclass ĠRet rofit Builder ( ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġpix ab ay ApiKey : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġconverter Options : ĠConverter Options ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġok HttpClient : ĠOk HttpClient ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġretrofit Builder : ĠRet rofit . Builder ? Ġ= Ġnull , ĊĠĠĠ Ġ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠSet Ġthe ĠP ixa get Ġapi Ġkey Ġthat Ġallows Ġyou Ġto Ġaccess Ġthe ĠP ixa get Ġservice Ġapi , Ġto Ġget Ġthis ĊĠĠĠĠĠĠĠĠ Ġ* Ġkey Ġ@ see Ġ< a Ġhref =" https :// pix ab ay . com / api / docs /"> Pix a get . com </ a >. ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġpix ab ay ApiKey ĠA Ġstring Ġrepresenting Ġthe ĠP ixa get Ġapi Ġkey , Ġthis Ġkey Ġcan Ġbe Ġobtained Ġat Ġthe ĠP ixa get Ġwebsite . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġset Pix ab ay ApiKey ( pix ab ay ApiKey : ĠString ) Ġ= Ġapply Ġ{ Ġthis . pix ab ay ApiKey Ġ= Ġpix ab ay ApiKey Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠSet Ġthe Ġlibrary Ġthat Ġwill Ġconvert Ġthe ĠP ixa get 's Ġserver Ġjson Ġresponse Ġinto Ġa Ġkotlin Ġresult Ġobject . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġconverter Options Ġ@ see ĠConverter Options Ġfor Ġjson Ġto Ġobject Ġconverter Options Ġoptions ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġset Converter ( converter Options : ĠConverter Options ) Ġ= Ġapply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . converter Options Ġ= Ġconverter Options ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġset Ok HttpClient ( client : ĠOk HttpClient ) Ġ= Ġapply Ġ{ Ġthis . ok HttpClient Ġ= Ġclient Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġset Ret rofit Builder ( ret rofit Builder : ĠRet rofit . Builder ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapply Ġ{ Ġthis . ret rofit Builder Ġ= Ġretrofit Builder Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠSet Ġthe ĠP ixa get Ġapi Ġkey Ġthat Ġallows Ġyou Ġto Ġaccess Ġthe ĠP ixa get Ġservice Ġapi , Ġto Ġget Ġthis ĊĠĠĠĠĠĠĠĠ Ġ* Ġkey Ġ@ see Ġ< a Ġhref =" https :// pix ab ay . com / api / docs /"> Pix a get . com </ a > ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġa ĠP ixa get Ġobject Ġif ĠP ixa get Ġapi Ġkey Ġwas Ġprovided . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ throws ĠClass NotFoundException Ġif ĠOk HttpClient Ġclass Ġwas Ġnot Ġadded Ġto Ġthe Ġdependencies . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Throws ( Pix ab ay ApiKey Is Missing Exception :: class , ĠJson Converter Is Missing Exception :: class ) ĊĠĠĠĠĠĠĠ Ġfun Ġbuild (): ĠP ixa get Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpix ab ay ApiKey Ġ?: Ġthrow ĠP ix ab ay ApiKey Is Missing Exception () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconverter Options Ġ?: Ġthrow ĠJson Converter Is Missing Exception () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġretrofit Builder ?. let Ġ{ Ġretrofit Builder Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġconverter Factory Ġ= Ġwhen Ġ( converter Options !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConverter Options . G SON Ġ-> Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGson Converter Factory . create () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠNo Class Def Found Error ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠNo Class Def Found Error (" The ĠGson Converter Factory Ġclass Ġwas Ġnot Ġfound , Ġtry Ġadding Ġthis : Ġ' implementation (\" com . squareup . ret rofit 2 : converter - gson : 2 . 9 . 0 \") ' Ġto Ġyour Ġapp 's Ġbuild . gradle Ġfile ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConverter Options . J ACK SON Ġ-> Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJack son Converter Factory . create () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠNo Class Def Found Error ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠNo Class Def Found Error (" The ĠJack son Converter Factory Ġclass Ġwas Ġnot Ġfound , Ġtry Ġadding Ġthis : Ġ' implementation (\" com . squareup . ret rofit 2 : converter - jackson : 2 . 9 . 0 \") ' Ġto Ġyour Ġapp 's Ġbuild . gradle Ġfile ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConverter Options . MO SH I Ġ-> Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠM oshi Converter Factory . create () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠNo Class Def Found Error ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠNo Class Def Found Error (" The ĠM oshi Converter Factory Ġclass Ġwas Ġnot Ġfound , Ġtry Ġadding Ġthis : Ġ' implementation (\" com . squareup . ret rofit 2 : converter - mos hi : 2 . 9 . 0 \") ' Ġto Ġyour Ġapp 's Ġbuild . gradle Ġfile ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠP ixa get ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpix ab ay ApiKey !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRet rofit Adapter ( ret rofit Builder , Ġconverter Factory , Ġok HttpClient ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġ?: Ġthrow ĠHttpClient Is Missing Exception () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġdata Ġclass ĠOk Http Builder ( ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġpix ab ay ApiKey : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġconverter Options : ĠConverter Options ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġok HttpClient : ĠOk HttpClient ? Ġ= Ġnull , ĊĠĠĠ Ġ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠSet Ġthe ĠP ixa get Ġapi Ġkey Ġthat Ġallows Ġyou Ġto Ġaccess Ġthe ĠP ixa get Ġservice Ġapi , Ġto Ġget Ġthis ĊĠĠĠĠĠĠĠĠ Ġ* Ġkey Ġ@ see Ġ< a Ġhref =" https :// pix ab ay . com / api / docs /"> Pix a get . com </ a >. ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġpix ab ay ApiKey ĠA Ġstring Ġrepresenting Ġthe ĠP ixa get Ġapi Ġkey , Ġthis Ġkey Ġcan Ġbe Ġobtained Ġat Ġthe ĠP ixa get Ġwebsite . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġset Pix ab ay ApiKey ( pix ab ay ApiKey : ĠString ) Ġ= Ġapply Ġ{ Ġthis . pix ab ay ApiKey Ġ= Ġpix ab ay ApiKey Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠSet Ġthe Ġlibrary Ġthat Ġwill Ġconvert Ġthe ĠP ixa get 's Ġserver Ġjson Ġresponse Ġinto Ġa Ġkotlin Ġresult Ġobject . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġconverter Options Ġ@ see ĠConverter Options Ġfor Ġjson Ġto Ġobject Ġconverter Options Ġoptions ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġset Converter ( converter Options : ĠConverter Options ) Ġ= Ġapply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . converter Options Ġ= Ġconverter Options ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġset Ok HttpClient ( client : ĠOk HttpClient ) Ġ= Ġapply Ġ{ Ġthis . ok HttpClient Ġ= Ġclient Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠSet Ġthe ĠP ixa get Ġapi Ġkey Ġthat Ġallows Ġyou Ġto Ġaccess Ġthe ĠP ixa get Ġservice Ġapi , Ġto Ġget Ġthis ĊĠĠĠĠĠĠĠĠ Ġ* Ġkey Ġ@ see Ġ< a Ġhref =" https :// pix ab ay . com / api / docs /"> Pix a get . com </ a > ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġa ĠP ixa get Ġobject Ġif ĠP ixa get Ġapi Ġkey Ġwas Ġprovided . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ throws ĠClass NotFoundException Ġif ĠOk HttpClient Ġclass Ġwas Ġnot Ġadded Ġto Ġthe Ġdependencies . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Throws ( Pix ab ay ApiKey Is Missing Exception :: class , ĠJson Converter Is Missing Exception :: class ) ĊĠĠĠĠĠĠĠ Ġfun Ġbuild (): ĠP ixa get Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpix ab ay ApiKey Ġ?: Ġthrow ĠP ix ab ay ApiKey Is Missing Exception () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconverter Options Ġ?: Ġthrow ĠJson Converter Is Missing Exception () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġok HttpClient ?. let Ġ{ Ġclient Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjson Converter Ġ= Ġwhen Ġ( converter Options !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConverter Options . G SON Ġ-> ĠGson Adapter () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConverter Options . J ACK SON Ġ-> ĠJack son Adapter () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConverter Options . MO SH I Ġ-> ĠM oshi Adapter () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠP ixa get ( pix ab ay ApiKey !! , ĠOk HttpClient Adapter ( client , Ġjson Converter )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġ?: Ġthrow ĠHttpClient Is Missing Exception () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ param ĠĠ Ġimage Search Search Request Ġan ĠP ixa get Ġsearch Ġrequest Ġobject Ġfilters Ġthe Ġsearch Ġto Ġthe Ġrequired Ġresults . ĊĠĠĠĠ Ġ* Ġ@ return Ġ ĠImage SearchResult Ġin Ġcase Ġof Ġsuccess , ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠ Ġnull Ġin Ġcase Ġof Ġfailure ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġsuspend Ġfun Ġsend Search Request ( image Search Search Request : ĠImage Search Request ): ĠImage SearchResult ? Ġ{ ĊĠĠĠĠĠĠĠ Ġimage Search Search Request . apiKey Ġ= Ġpix ab ay ApiKey ĊĠĠĠĠĠĠĠ Ġreturn Ġpix ab ay ApiService . send Request ( image Search Search Request ) Ġas ĠImage SearchResult ? ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ param ĠĠ Ġvideo Search Request Ġan ĠP ixa get Ġsearch Ġrequest Ġobject Ġfilters Ġthe Ġsearch Ġto Ġthe Ġrequired Ġresults . ĊĠĠĠĠ Ġ* Ġ@ return Ġ ĠVideo SearchResult Ġin Ġcase Ġof Ġsuccess , ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠ Ġnull Ġin Ġcase Ġof Ġfailure ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġsuspend Ġfun Ġsend Search Request ( video Search Request : ĠVideo Search Request ): ĠVideo SearchResult ? Ġ{ ĊĠĠĠĠĠĠĠ Ġvideo Search Request . apiKey Ġ= Ġpix ab ay ApiKey ĊĠĠĠĠĠĠĠ Ġreturn Ġpix ab ay ApiService . send Request ( video Search Request ) Ġas ĠVideo SearchResult ? ĊĠĠĠ Ġ} Ċ Ċ }