/* Ċ MIT ĠLicense Ċ Copyright Ġ( c ) Ġ[ 2 0 2 0 ] ĠEx tre me ĠV iet ĠNam Ċ Ċ Permission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ċ of Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ċ in Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ċ to Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ċ copies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ċ furnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ċ The Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ġall Ċ copies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ċ THE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR Ċ IMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , Ċ FITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE Ċ AUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER Ċ LIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , Ċ OUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN ĠTHE Ċ SOFTWARE . Ċ */ Ċ Ċ package Ġvn . com . ext reme vn . gradle . de put il . chat work Ċ Ċ import Ġokhttp 3 . MediaType . Companion . to MediaType OrNull Ċ import Ġokhttp 3 . Multipart Body Ċ import Ġokhttp 3 . RequestBody Ċ import Ġokhttp 3 . RequestBody . Companion . as RequestBody Ċ import Ġokhttp 3 . Response Ċ import Ġvn . com . ext reme vn . gradle . de put il . base . Base Client Ċ import Ġjava . io . File Ċ Ċ /** Ċ Ġ* ĠA ĠChat work Ġclient Ġwhich Ġimplements Ġ[ Base Client ] Ġupload Ġoutdated Ġdependencies Ġinformation Ġ[ file ] Ġwith Ġ[ message ] Ċ Ġ* Ġusing Ġ[ token ] Ġto Ġ[ roomId ] Ċ Ġ*/ Ċ class ĠChat work Client ( ĊĠĠĠ Ġprivate Ġval Ġtoken : ĠString , ĊĠĠĠ Ġprivate Ġval Ġroom Id : ĠInt , ĊĠĠĠ Ġprivate Ġval Ġfile : ĠFile , ĊĠĠĠ Ġprivate Ġval Ġmessage : ĠString Ġ= Ġ"" Ċ ) Ġ: ĠBase Client Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġrun () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( response , Ġstatus ) Ġ= Ġupload File With Message () ĊĠĠĠĠĠĠĠ Ġval Ġis Successful Ġ= Ġresponse ?. is Successful Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġif Ġ(! is Successful ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerror (" Could Ġnot Ġsend Ġ' chat work ' Ġmessage : Ġ$ status Ġ${ response . message }\ n ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠUpload Ġoutdated Ġdependencies Ġinformation Ġ[ file ] Ġwith Ġ[ message ] Ġusing Ġ[ token ] Ġto Ġ[ roomId ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġupload File With Message (): ĠPair < Response ?, ĠInt > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Body : ĠRequest Body Ġ= ĠMultip art Body . Builder (). setType ( Multipart Body . FORM ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add FormData Part ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFIELD _ FILE , Ġfile . name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile . as RequestBody ( MEDIA _ TYPE _ TEXT . to MediaType OrNull ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add FormData Part ( FIELD _ MESSAGE , Ġmessage ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġval Ġheaders Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHEADER _ X _ CHAT WORK _ TOKEN Ġto Ġtoken , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHEADER _ CONTENT _ TYPE Ġto ĠHEADER _ CONTENT _ TYPE _ MUT IP ART ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġreturn Ġdo Post ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheaders Ġ= Ġheaders , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= Ġ" https :// api . chat work . com / v 2 / rooms /$ roomId / files ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Body Ġ= Ġrequest Body ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠHEADER _ X _ CHAT WORK _ TOKEN Ġ= Ġ" X - Chat Work Token " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠHEADER _ CONTENT _ TYPE Ġ= Ġ" Content - Type " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠHEADER _ CONTENT _ TYPE _ MUT IP ART Ġ= Ġ" multipart / form - data " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠFIELD _ MESSAGE Ġ= Ġ" message " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠFIELD _ FILE Ġ= ĠFIELD _ MESSAGE ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠMED IA _ TYPE _ TEXT Ġ= Ġ" text / plain " ĊĠĠĠ Ġ} Ċ } Ċ