package Ġpl . ne of on ie . bak . couch base admin Ċ Ċ import Ġlogger Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . stereotype . Controller Ċ import Ġorg . springframework . ui . Model Ċ import Ġorg . springframework . ui . set Ċ import Ġorg . springframework . web . bind . annotation .* Ċ import Ġorg . springframework . web . servlet . Model AndView Ċ import Ġorg . springframework . web . servlet . view . Redirect View Ċ import Ġpl . ne of on ie . bak . couch base admin . services . C ouch base Service Ċ import Ġjava . io . ByteArray OutputStream Ċ Ċ @ Controller Ċ class ĠWelcome Controller Ġ@ Autowired Ġconstructor ( private Ġval Ġc ouch base : ĠCouch base Service ) Ġ{ ĊĊĠ Ġprivate Ġval Ġlogger Ġ= Ġlogger () ĊĊĠ Ġ@ RequestMapping ("/") ĊĠ Ġfun Ġwelcome ( model : ĠModel ): ĠString Ġ{ ĊĠĠĠ Ġmodel . addAttribute (" sync gateway ", ĠSync Gateway Connection ()) ĊĠĠĠ Ġreturn Ġ" welcome " ĊĠ Ġ} ĊĊĠ Ġ@ PostMapping ("/ sync gateway ") ĊĠ Ġfun Ġsync ag t ew ay Submit ( model : ĠModel , Ġ@ Model Attribute Ġsync gateway : ĠSync Gateway Connection ): ĠString Ġ{ ĊĠĠĠ Ġlogger . info ( sync gateway . toString ()) ĊĠĠĠ Ġval Ġb ds List Ġ= Ġc ouch base . info ( sync gateway ) ĊĠĠĠ Ġmodel [" databases "] Ġ= Ġb ds List ĊĠĠĠ Ġmodel [" sync gateway "] Ġ= Ġsync gateway ĊĠĠĠ Ġreturn Ġ" databases _ list " ĊĠ Ġ} ĊĊĠ Ġ@ GetMapping ("/ database /{ dbName }") ĊĠ Ġfun Ġdatabase Info (@ PathVariable Ġdb Name : ĠString , Ġmodel : ĠModel , Ġ@ Model Attribute Ġsync gateway : ĠSync Gateway Connection ): ĠString Ġ{ ĊĠĠĠ Ġval Ġall Docs Ġ= Ġc ouch base . all Docs ( sync gateway , Ġdb Name ) ĊĠĠĠ Ġmodel . addAttribute (" database ", Ġdb Name ) ĊĠĠĠ Ġmodel . addAttribute (" all Docs ", Ġall Docs ) ĊĊĠĠĠ Ġreturn Ġ" database " ĊĠ Ġ} ĊĊĠ Ġ@ GetMapping ("/ database /{ dbName }/{ doc Id }") ĊĠ Ġfun Ġdocument Info (@ PathVariable Ġdb Name : ĠString , Ġ@ PathVariable Ġdoc Id : ĠString , Ġmodel : ĠModel , Ġ@ Model Attribute Ġsync gateway : ĠSync Gateway Connection ): ĠString Ġ{ ĊĠĠĠ Ġval Ġdoc Info Ġ= Ġc ouch base . getDocument ( sync gateway , Ġdb Name , Ġdoc Id ) ĊĊĠĠĠ Ġmodel . addAttribute (" database Details ", Ġdoc Info ) ĊĠĠĠ Ġmodel . addAttribute (" attachments ", Ġdoc Info . attachments ) ĊĊĠĠĠ Ġreturn Ġ" document " ĊĠ Ġ} ĊĊĠ Ġ@ GetMapping ("/ database /{ dbName }/{ doc Id }/{ attach Id }") ĊĠ Ġfun Ġserve File (@ PathVariable Ġdb Name : ĠString , Ġ@ PathVariable Ġdoc Id : ĠString , Ġ@ PathVariable Ġattach Id : ĠString , Ġ@ Model Attribute Ġsync gateway : ĠSync Gateway Connection ): ĠModelAndView Ġ{ ĊĠĠĠ Ġreturn ĠModelAndView ( Redirect View ("${ sync gateway . to Url () }/ $ dbName /$ doc Id /$ attach Id ")) ĊĠ Ġ} Ċ } Ċ Ċ data Ġclass ĠSync Gateway Connection ( var Ġhost : ĠString Ġ= Ġ" http :// ny x . ne of on ie . de ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġport : ĠInt ? Ġ= Ġ 4 9 8 5 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġusername : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġpassword : ĠString ? Ġ= Ġnull ) Ċ Ċ // data Ġclass ĠSync Database ( val Ġname : ĠString , Ġval Ġc ouch base : ĠString , Ġval Ġbucket : ĠString , Ġval Ġusers : ĠInt ) Ċ Ċ fun ĠSync Gateway Connection . to Url (): ĠString Ġ{ ĊĠ Ġval Ġport Tmp Ġ= Ġport Ġ?: Ġ 0 ĊĠ Ġreturn Ġif Ġ( port Tmp Ġ== Ġ 0 ) Ġ{ ĊĠĠĠ Ġhost ĊĠ Ġ} Ġelse Ġ{ ĊĠĠĠ Ġ"$ host :$ port Tmp " ĊĠ Ġ} Ċ }