package Ġdoc x converter . controller čĊč Ċ import Ġdoc x converter . service . Document Service čĊč Ċ import Ġorg . springframework . core . io . ByteArray Resource č Ċ import Ġorg . springframework . http . HttpHeaders č Ċ import Ġorg . springframework . http . HttpStatus č Ċ import Ġorg . springframework . http . MediaType č Ċ import Ġorg . springframework . http . Response Entity č Ċ import Ġorg . springframework . stereotype . Controller č Ċ import Ġorg . springframework . web . bind . annotation .* č Ċ import Ġorg . springframework . web . multipart . Multipart File č Ċ import Ġjava . io . File č Ċ import Ġjava . io . IOException č Ċ import Ġjava . nio . file . Files č Ċ import Ġjavax . servlet . http . HttpServletRequest čĊč Ċ /** čĊ Ġ* ĠDocument Controller . kt čĊ Ġ* čĊ Ġ* ĠCreated Ġby ĠD ou glas ĠD j ou mess i Ġon Ġ 2 4 . 0 4 . 2 0 čĊ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 0 Ġspirit dev ĠSoftware ent wick l ung ĠGmbH . ĠAll Ġrights Ġreserved . čĊ Ġ*/ čĊč Ċ @ Controller č Ċ @ RequestMapping ( value Ġ= Ġ[" service / storage "]) č Ċ class ĠDocument Controller ( private Ġval Ġdocument Service : ĠDocument Service ) Ġ{ čĊčĊĠĠĠ Ġ@ PostMapping ( value Ġ= Ġ["/ add "], Ġconsume s Ġ= Ġ[ MediaType . MULTI PART _ FORM _ DATA _ VALUE ]) čĊĠĠĠ Ġ@ Throws ( IOException :: class ) čĊĠĠĠ Ġfun Ġstore Document (@ RequestParam ( value Ġ= Ġ" file ") Ġfile : ĠMultip art File ): ĠResponseEntity < String > Ġ{ čĊčĊĠĠĠĠĠĠĠ Ġvar Ġid Ġ= Ġdocument Service . save Document ( file ) čĊčĊĠĠĠĠĠĠĠ Ġreturn ĠResponseEntity ( id . toString (), ĠHttpStatus . ACCEPT ED ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ@ GetMapping ( value Ġ= Ġ["/ get Pdf /{ id } "], Ġproduces Ġ= Ġ[ MediaType . MULTI PART _ FORM _ DATA _ VALUE ]) čĊĠĠĠ Ġfun Ġget Pdf Document (@ PathVariable (" id ") Ġid : ĠLong , Ġrequest : ĠHttpServletRequest ): ĠResponseEntity < Any ?> Ġ{ čĊčĊĠĠĠĠĠĠĠ Ġval Ġfile Ġ= Ġdocument Service . get Pdf From Document ( id ) čĊčĊĠĠĠĠĠĠĠ Ġreturn Ġfile As Response ( file , Ġrequest ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ@ GetMapping ( value Ġ= Ġ["/ source Doc /{ id } "], Ġproduces Ġ= Ġ[ MediaType . MULTI PART _ FORM _ DATA _ VALUE ]) čĊĠĠĠ Ġfun Ġget Source Document (@ PathVariable (" id ") Ġid : ĠLong , Ġrequest : ĠHttpServletRequest ): ĠResponseEntity < Any ?> Ġ{ čĊčĊĠĠĠĠĠĠĠ Ġval Ġfile Ġ= Ġdocument Service . getSource Document ( id ) čĊčĊĠĠĠĠĠĠĠ Ġreturn Ġfile As Response ( file , Ġrequest ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ@ PostMapping ( value Ġ= Ġ["/ store Convert "], Ġproduces Ġ= Ġ[ MediaType . APPLICATION _ PDF _ VALUE ]) čĊĠĠĠ Ġfun Ġstore And Convert Document (@ RequestParam ( value Ġ= Ġ" file ") Ġinput File : ĠMultip art File , Ġrequest : ĠHttpServletRequest ): ĠResponseEntity < Any ?> Ġ{ čĊčĊĠĠĠĠĠĠĠ Ġval Ġfile Ġ= Ġdocument Service . save And Convert ( inputFile ) čĊčĊĠĠĠĠĠĠĠ Ġreturn Ġfile As Response ( file , Ġrequest ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ@ Delete Mapping ( value Ġ= Ġ[" delete Doc /{ id } "], Ġproduces Ġ= Ġ[ MediaType . APPLICATION _ JSON _ VALUE ]) čĊĠĠĠ Ġfun Ġdelete Document (@ PathVariable (" id ") Ġid : ĠLong ): ĠResponseEntity < String > Ġ{ čĊčĊĠĠĠĠĠĠĠ Ġif Ġ( document Service . delete Document ( id )) Ġ{ čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠResponseEntity ( HttpStatus . OK ) čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġreturn ĠResponseEntity (" document Ġnot Ġfound !", ĠHttpStatus . NOT _ FOUND ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun Ġfile As Response ( file : ĠFile , Ġrequest : ĠHttpServletRequest ): ĠResponseEntity < Any ?> Ġ{ čĊčĊĠĠĠĠĠĠĠ Ġvar Ġres : ĠByteArray Resource čĊčĊĠĠĠĠĠĠĠ Ġif Ġ( file . exists ()) Ġ{ čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġtype Ġ= Ġrequest . servlet Context . get MimeType ( file . path ) čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġres Ġ= ĠByteArray Resource ( Files . read All Bytes ( file . to Path ())) čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( type Ġ== Ġnull ) Ġ{ čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= Ġ" application / octet - stream " čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠResponseEntity . ok () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header ( HttpHeaders . CONTENT _ DIS POSITION , Ġ" attachment ; Ġfilename = Ġ" Ġ+ Ġfile . name ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. contentType ( MediaType . parse MediaType ( type )) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. content Length ( file . length ()) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. body ( res ) čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġreturn ĠResponseEntity . not Found (). build () čĊĠĠĠ Ġ} č Ċ }