package com.cajp.giros.web.rest; import com.codahale.metrics.annotation.Timed; import com.cajp.giros.domain.Utente; import com.cajp.giros.repository.UtenteRepository; import com.cajp.giros.web.rest.util.PaginationUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import javax.inject.Inject; import java.net.URI; import java.net.URISyntaxException; import java.util.List; import java.util.Optional; /** * REST controller for managing Utente. */ @RestController @RequestMapping("/api") public class UtenteResource { private final Logger log = LoggerFactory.getLogger(UtenteResource.class); @Inject private UtenteRepository utenteRepository; /** * POST /utentes -> Create a new utente. */ @RequestMapping(value = "/utentes", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) @Timed public ResponseEntity<Void> create(@RequestBody Utente utente) throws URISyntaxException { log.debug("REST request to save Utente : {}", utente); if (utente.getId() != null) { return ResponseEntity.badRequest().header("Failure", "A new utente cannot already have an ID").build(); } utenteRepository.save(utente); return ResponseEntity.created(new URI("/api/utentes/" + utente.getId())).build(); } /** * PUT /utentes -> Updates an existing utente. */ @RequestMapping(value = "/utentes", method = RequestMethod.PUT, produces = MediaType.APPLICATION_JSON_VALUE) @Timed public ResponseEntity<Void> update(@RequestBody Utente utente) throws URISyntaxException { log.debug("REST request to update Utente : {}", utente); if (utente.getId() == null) { return create(utente); } utenteRepository.save(utente); return ResponseEntity.ok().build(); } /** * GET /utentes -> get all the utentes. */ @RequestMapping(value = "/utentes", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) @Timed public ResponseEntity<List<Utente>> getAll(@RequestParam(value = "page" , required = false) Integer offset, @RequestParam(value = "per_page", required = false) Integer limit) throws URISyntaxException { Page<Utente> page = utenteRepository.findAll(PaginationUtil.generatePageRequest(offset, limit)); HttpHeaders headers = PaginationUtil.generatePaginationHttpHeaders(page, "/api/utentes", offset, limit); return new ResponseEntity<>(page.getContent(), headers, HttpStatus.OK); } @RequestMapping(value = "/utentesfilternamenacio", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) @Timed public ResponseEntity<List<Utente>> getfilter( @RequestParam(value = "page", required = false) Integer offset, @RequestParam(value = "per_page", required = false) Integer limit, @RequestParam(value = "name", required = false) String name, @RequestParam(value = "nacio", required = false) String nacio ) throws URISyntaxException { Page<Utente> page; Pageable r = PaginationUtil.generatePageRequest(offset, limit); if (name==""){ name = "%"; }else{ name = '%'+name+'%'; } if (nacio==""){ nacio = "%"; }else{ nacio = '%'+nacio+'%'; } page = utenteRepository.findByNameNacio(name, nacio, r); HttpHeaders headers = PaginationUtil.generatePaginationHttpHeaders(page, "/api/utentes", offset, limit); return new ResponseEntity<>(page.getContent(), headers, HttpStatus.OK); } /** * GET /utentes/:id -> get the "id" utente. */ @RequestMapping(value = "/utentes/{id}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) @Timed public ResponseEntity<Utente> get(@PathVariable Long id) { log.debug("REST request to get Utente : {}", id); return Optional.ofNullable(utenteRepository.findOne(id)) .map(utente -> new ResponseEntity<>( utente, HttpStatus.OK)) .orElse(new ResponseEntity<>(HttpStatus.NOT_FOUND)); } /** * DELETE /utentes/:id -> delete the "id" utente. */ @RequestMapping(value = "/utentes/{id}", method = RequestMethod.DELETE, produces = MediaType.APPLICATION_JSON_VALUE) @Timed public void delete(@PathVariable Long id) { log.debug("REST request to delete Utente : {}", id); utenteRepository.delete(id); } }