package Ġcom . example . game ba az . repository Ċ Ċ import Ġcom . example . game ba az . data . local . Shared Pref Helper Ċ import Ġcom . example . game ba az . data . remote . Api Interface Ċ import Ġcom . example . game ba az . model . request . Alter F avour ite RequestBody Ċ import Ġcom . example . game ba az . model . request . Create UserRequest Ċ import Ġcom . example . game ba az . util . Safe Api Call . safe Api Call Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠRepository Ġ@ Inject Ġconstructor Ġ( ĊĠĠĠ Ġprivate Ġval Ġapi Interface : ĠApi Interface , ĊĠĠĠ Ġprivate Ġval Ġshared Pref Helper : ĠShared Pref Helper Ċ ) Ġ{ ĊĊĠĠĠ Ġfun Ġget Credentials () Ġ= Ġshared Pref Helper . getC redential () ĊĊĠĠĠ Ġfun Ġget Username () Ġ= Ġshared Pref Helper . getUsername () ĊĊĠĠĠ Ġfun Ġsave Credentials ( ĊĠĠĠĠĠĠĠ Ġusername : ĠString , ĊĠĠĠĠĠĠĠ Ġpassword : ĠString ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġshared Pref Helper . save Credential ( username Ġ= Ġusername , Ġpassword Ġ= Ġpassword ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġcreate User ( ĊĠĠĠĠĠĠĠ Ġrequest : ĠCreate UserRequest ĊĠĠĠ Ġ) Ġ= Ġsafe Api Call Ġ{ ĊĠĠĠĠĠĠĠ Ġapi Interface . createUser ( request Ġ= Ġrequest ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun ĠgetAll Games ( ĊĠĠĠĠĠĠĠ Ġheader : ĠString ĊĠĠĠ Ġ) Ġ= Ġsafe Api Call Ġ{ ĊĠĠĠĠĠĠĠĠ Ġapi Interface . getAll Games ( header Ġ= Ġheader ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġsearch Games ( ĊĠĠĠĠĠĠĠ Ġheader : ĠString , ĊĠĠĠĠĠĠĠ Ġparam : ĠString ĊĠĠĠ Ġ) Ġ= Ġsafe Api Call Ġ{ ĊĠĠĠĠĠĠĠ Ġapi Interface . search Games ( header Ġ= Ġheader , Ġparam Ġ= Ġparam ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġget Game sBy Dev ( ĊĠĠĠĠĠĠĠ Ġheader : ĠString , ĊĠĠĠĠĠĠĠ Ġdev Id : ĠInt ĊĠĠĠ Ġ) Ġ= Ġsafe Api Call Ġ{ ĊĠĠĠĠĠĠĠ Ġapi Interface . get Game sBy Dev ( header Ġ= Ġheader , Ġdev Id Ġ= Ġdev Id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġget Fav Games ( ĊĠĠĠĠĠĠĠ Ġheader : ĠString ĊĠĠĠ Ġ) Ġ= Ġsafe Api Call Ġ{ ĊĠĠĠĠĠĠĠ Ġapi Interface . getF av Games ( header Ġ= Ġheader ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġget Game Details ( ĊĠĠĠĠĠĠĠ Ġheader : ĠString , ĊĠĠĠĠĠĠĠ Ġgame Id : ĠInt , ĊĠĠĠ Ġ) Ġ= Ġsafe Api Call Ġ{ ĊĠĠĠĠĠĠĠ Ġapi Interface . get Game Details ( header Ġ= Ġheader , Ġgame Id Ġ= Ġgame Id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġalter Fav ( ĊĠĠĠĠĠĠĠ Ġheader : ĠString , ĊĠĠĠĠĠĠĠ Ġrequest : ĠAlter F avour ite RequestBody , ĊĠĠĠ Ġ) Ġ= Ġsafe Api Call Ġ{ ĊĠĠĠĠĠĠĠ Ġapi Interface . alter Fav ( header Ġ= Ġheader , Ġrequest Ġ= Ġrequest ) ĊĠĠĠ Ġ} Ċ Ċ }