package Ġcom . ev art em . data . remote . api Ċ Ċ import Ġcom . ev art em . data . remote . model . Invoice Remote Model Ċ import Ġio . reactivex . Single Ċ import Ġretrofit 2 . Response Ċ import Ġretrofit 2 . http .* Ċ Ċ /** Ċ Ġ* ĠA ĠRet rofit Ġinterface Ġfor Ġcommunication Ġwith Ġthe Ġbackend . Ċ Ġ* Ċ Ġ*/ Ċ interface ĠInvoice Service Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet Ġthe Ġin voices Ġthat Ġthe Ġuser ([ userId ]) Ġis Ġallowed Ġto Ġprocess . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ GET ("/ invoices ") ĊĠĠĠ Ġfun Ġget In voices ForUser (@ Query (" userid ") ĠuserId : ĠString ): ĠSingle < Response < List < Invoice Remote Model >>> ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠConfirm Ġthat Ġthe Ġuser ([ userId ]) Ġcan Ġprocess Ġthe Ġinvoice ([ invoice Id ]). ĠThe Ġconfirmation Ġmeans Ġthat Ġthe Ġin vo ce ĊĠĠĠĠ Ġ* Ġstill Ġexists , Ġit Ġis Ġstill Ġnot Ġcompleted Ġand Ġno Ġother Ġuser Ġis Ġcurrently Ġprocessing Ġit . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ PUT ("/ request Accept ") ĊĠĠĠ Ġ@ Form Url Encoded ĊĠĠĠ Ġfun Ġrequest Invoice For Processing ( ĊĠĠĠĠĠĠĠ Ġ@ Field (" userid ") ĠuserId : ĠString , ĊĠĠĠĠĠĠĠ Ġ@ Field (" invoice id ") Ġinvoice Id : ĠString ĊĠĠĠ Ġ): ĠSingle < Response < Void >> ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠConfirm Ġthe Ġreturn Ġof Ġthe Ġinvoice ([ invoice Id ]). ĠThe Ġuser ([ userId ]) Ġreturns Ġthe Ġinvoice Ġif , Ġfor Ġsome Ġreason , ĊĠĠĠĠ Ġ* Ġhe Ġor Ġshe Ġdoes Ġnot Ġwant Ġto Ġprocess Ġit Ġanymore . ĠReturn ing Ġthe Ġinvoice Ġallows Ġother Ġusers Ġto Ġaccept Ġit Ġand ĊĠĠĠĠ Ġ* Ġfinish Ġthe Ġjob . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ PUT ("/ request Return ") ĊĠĠĠ Ġ@ Form Url Encoded ĊĠĠĠ Ġfun Ġrequest Invoice Return ( ĊĠĠĠĠĠĠĠ Ġ@ Field (" userid ") ĠuserId : ĠString , ĊĠĠĠĠĠĠĠ Ġ@ Field (" invoice id ") Ġinvoice Id : ĠString ĊĠĠĠ Ġ): ĠSingle < Response < Void >> Ċ }