/* Ċ Ġ* ĠCopyright Ġ 2 0 1 7 Ġtwitter . com / P ens ato Alex Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġnet . pens ato . ude my . be eper . controller Ċ Ċ import Ġnet . pens ato . ude my . be eper . domain . Be ep Ċ import Ġnet . pens ato . ude my . be eper . repository . Usuario Repository Ċ import Ġnet . pens ato . ude my . be eper . repository . Be ep Repository Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . data . domain . Page Ċ import Ġorg . springframework . data . domain . Page Request Ċ import Ġorg . springframework . data . domain . Page able Ċ import Ġorg . springframework . data . domain . Sort Ċ import Ġorg . springframework . http . HttpStatus Ċ import Ġorg . springframework . util . Assert Ċ import Ġorg . springframework . web . bind . annotation .* Ċ import Ġjavax . servlet . http . HttpServletRequest Ċ Ċ @ RestController Ċ @ RequestMapping ("/ be eps ") Ċ class ĠB eeper Controller Ġ@ Autowired Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġval Ġusuario Repository : ĠUsuario Repository , ĊĠĠĠĠĠĠĠ Ġval Ġbe ep Repository : ĠBe ep Repository ) Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ< p > ĊĠĠĠĠ Ġ* ĠĠĠĠ ĠReturn Ġall Ġexisting Ġbe eps ĊĠĠĠĠ Ġ* ĠĠĠĠ ĠEndpoint : ĠGET Ġ/ be eps { ? page } ĊĠĠĠĠ Ġ* Ġ</ p > ĊĠĠĠĠ Ġ* Ġ@ param Ġpage Ġ[@ RequestParam ] ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠ Ġ- Ġpagination ĊĠĠĠĠ Ġ* Ġ@ return Ġlist Ġof ĠBe eps ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ GetMapping () ĊĠĠĠ Ġfun ĠfindAll Be eps ( page : ĠInt ?): ĠPage < Be ep > Ġ= Ġif Ġ( page Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpage able : ĠPage able Ġ= ĠPage Request ( page , Ġ 5 , ĠSort . Direction . ASC , Ġ" text ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSleep Ġonly Ġto Ġshow case Ġthe Ġspinner Ġicon Ġin Ġthe Ġfrontend ĊĠĠĠĠĠĠĠĠĠĠĠ ĠThread . sleep ( 1 0 0 0 ); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbe ep Repository . findAll ( page able ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpage able : ĠPage able Ġ= ĠPage Request ( 0 , Ġ 1 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbe ep Repository . findAll ( page able ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ< p > ĊĠĠĠĠ Ġ* ĠĠĠĠ ĠCreate Ġa Ġnew Ġbe ep Ġto Ġauthenticated Ġuser ĊĠĠĠĠ Ġ* ĠĠĠĠ ĠEndpoint : ĠPOST Ġ/ be eps ĊĠĠĠĠ Ġ* ĠĠĠĠ ĠRequest Body : Ġtext Ġas ĠString ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- Ġthe Ġcontent Ġof Ġthe Ġbe ep ĊĠĠĠĠ Ġ* Ġ</ p > ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ PostMapping () ĊĠĠĠ Ġ@ ResponseStatus ( HttpStatus . CREATED ) ĊĠĠĠ Ġfun Ġcreate (@ RequestBody Ġtext : ĠString , Ġrequest : ĠHttpServletRequest ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġusername Ġ= Ġrequest . user Principal . getName () ĊĠĠĠĠĠĠĠ Ġval Ġusuario Ġ= Ġusuario Repository . findBy Username IgnoreCase ( username ) ĊĠĠĠĠĠĠĠ ĠAssert . notNull ( usuario , Ġ" Authenticated Ġuser Ġis Ġnot Ġvalid .") ĊĠĠĠĠĠĠĠ Ġval Ġbe ep Ġ= ĠBe ep ( text Ġ= Ġtext , Ġauthor Ġ= Ġusuario !! ) ĊĠĠĠĠĠĠĠ Ġbe ep Repository . save ( be ep ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ< p > ĊĠĠĠĠ Ġ* ĠĠĠĠ ĠToggle s Ġstate Ġof Ġa Ġbe ep . ĊĠĠĠĠ Ġ* ĠĠĠĠ ĠEndpoint : ĠPOST Ġ/ be eps /{ id }/ like ĊĠĠĠĠ Ġ* ĠĠĠĠ ĠPath Variable : Ġid ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- Ġthe Ġid Ġof Ġthe Ġbe ep ĊĠĠĠĠ Ġ* Ġ</ p > ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Patch Mapping ("/ { id }/ like ") ĊĠĠĠ Ġ@ ResponseStatus ( HttpStatus . NO _ CONTENT ) ĊĠĠĠ Ġfun Ġtoggle Be ep Status (@ PathVariable Ġid : ĠLong ?) Ġ{ ĊĠĠĠĠĠĠĠ ĠAssert . notNull ( id , Ġ" You Ġmust Ġprovide Ġa Ġbe ep ĠID .") ĊĠĠĠĠĠĠĠ Ġval Ġbe ep Ġ= Ġbe ep Repository . findOne ( id !! ) ĊĠĠĠĠĠĠĠ ĠAssert . notNull ( be ep , Ġ" You Ġmust Ġprovide Ġa Ġvalid Ġbe ep ĠID .") ĊĠĠĠĠĠĠĠ Ġif ( be ep . lik ed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbe ep . lik ed Ġ= Ġfalse ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbe ep . likes Ġ-= Ġ 1 ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbe ep . lik ed Ġ= Ġtrue ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbe ep . likes Ġ+= Ġ 1 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbe ep Repository . save ( be ep ) ĊĠĠĠ Ġ} Ċ Ċ } ĊĊĊ