package Ġcom . ruby food . features . shop detail . presentation . api . add collection Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . net . Uri Ċ import Ġandroid . text . TextUtils Ċ import Ġcom . ruby food . app . FileUtils Ċ import Ġcom . ruby food . base . Base Response Ċ import Ġcom . ruby food . features . dashboard . presentation . Dashboard Activity Ċ import Ġcom . ruby food . features . shop detail . presentation . model . add collection . Add Collection Input Params Model Ċ import Ġcom . fasterxml . jackson . databind . ObjectMapper Ċ import Ġio . reactivex . Observable Ċ import Ġokhttp 3 . MediaType Ċ import Ġokhttp 3 . Multipart Body Ċ import Ġokhttp 3 . RequestBody Ċ import Ġjava . io . File Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠSa ik at Ġon Ġ 1 3 - 1 1 - 2 0 1 8 . Ċ Ġ*/ Ċ class ĠAdd Collection Repo ( val Ġapi Service : ĠAdd Collection Api ) Ġ{ ĊĊĠĠĠ Ġfun Ġadd Collection ( add Collection : ĠAdd Collection Input Params Model ): ĠObservable < Base Response > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġapi Service . add Collection ( add Collection ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd Collection ( add Collection : ĠAdd Collection Input Params Model , Ġimage : ĠString ?, Ġcontext : ĠContext ): ĠObservable < Base Response > Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġprofile _ img _ data : ĠMultip art Body . Part ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġvar Ġprofile _ img _ file : ĠFile ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġif Ġ( image ?. startsWith (" file ") !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprofile _ img _ file Ġ= ĠFileUtils . getFile ( context , ĠUri . parse ( image )) ĊĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprofile _ img _ file Ġ= ĠFile ( image ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! profile _ img _ file ?. exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprofile _ img _ file ?. createNew File () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( profile _ img _ file Ġ!= Ġnull Ġ&& Ġprofile _ img _ file . exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprofile Img Body Ġ= ĠRequest Body . create ( MediaType . parse (" multipart / form - data "), Ġprofile _ img _ file ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprofile _ img _ data Ġ= ĠMultip art Body . Part . create FormData (" doc ", Ġprofile _ img _ file . name , Ġprofile Img Body ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġm File : ĠFile ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm File Ġ= Ġ( context Ġas ĠDashboard Activity ). get Shop Dummy Image File () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprofile Img Body Ġ= ĠRequest Body . create ( MediaType . parse (" multipart / form - data "), Ġm File ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprofile _ img _ data Ġ= ĠMultip art Body . Part . create FormData (" doc ", Ġm File . name , Ġprofile Img Body ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// var Ġshop Object : ĠRequest Body ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġjson In String Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjson In String Ġ= ĠObjectMapper (). writeValue AsString ( add Collection ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// shop Object Ġ= ĠRequest Body . create ( MediaType . parse (" application / json ; Ġcharset = utf - 8 "), Ġjson In String ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// shop Object Ġ= ĠRequest Body . create ( MediaType . parse (" text / plain "), Ġjson In String ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġapi Service . add Collection Multipart ( json In String , Ġprofile _ img _ data ) ĊĠĠĠĠĠĠĠ Ġ// return Ġapi Service . add Collection Multipart ( shop Object !! , Ġprofile _ img _ data ) ĊĠĠĠ Ġ} Ċ }