Controller
Para crear nuestros servicios creamos el paquete com.tutosoftware.manager.controllerCreamos la clase UsuarioController
package com.tutosoftware.manager.controller;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestController;
import com.tutosoftware.manager.model.Usuario;
import com.tutosoftware.manager.service.UsuarioService;
@RestController
@RequestMapping(value="/api/v1")
@CrossOrigin(origins= {"*"})
public class UsuarioController {
@Autowired
private UsuarioService usuarioService;
@GetMapping("/usuario/{email}")
public ResponseEntity<Usuario> getUsuarioById(@PathVariable("email") String email){
Usuario usuario= usuarioService.getUsuario(email).orElseThrow();
return new ResponseEntity<Usuario>(usuario, HttpStatus.OK);
}
@PostMapping("/usuario")
@ResponseStatus(HttpStatus.CREATED)
public ResponseEntity<?> registrarUsuario(@RequestBody Usuario usuario){
usuarioService.crearUsuario(usuario);
Map<String,Object> response=new HashMap<>();
response.put("mensaje","El usuario ha sido creado con exito");
return new ResponseEntity<Map<String,Object>>(response,HttpStatus.CREATED);
}
@GetMapping("/usuario")
public List<Usuario> getusuarios(){
return usuarioService.listAll();
}
@PutMapping("/usuario/{email}")
@ResponseStatus(HttpStatus.CREATED)
public ResponseEntity<?> updateUsuario(@RequestBody Usuario usuario,@PathVariable String email){
Optional<Usuario> usuarioData = usuarioService.getUsuario(email);
Map<String,Object> response = new HashMap<>();
if (usuarioData.isPresent()) {
Usuario _usuario = usuarioData.get();
_usuario.setNombre(usuario.getNombre());
_usuario.setApellidoPaterno(usuario.getApellidoPaterno());
_usuario.setApellidoMaterno(usuario.getApellidoMaterno());
_usuario.setContrasena(usuario.getContrasena());
_usuario.setRol(usuario.getRol());
usuarioService.actualizarUsuario(_usuario);
return new ResponseEntity<>(response, HttpStatus.CREATED);
} else {
return new ResponseEntity<>(HttpStatus.NOT_FOUND);
}
}
@DeleteMapping("/usuario/{email}")
public ResponseEntity<?> delete(@PathVariable String email){
Map<String,Object> response = new HashMap<>();
usuarioService.eliminarUsuario(email);
response.put("mensaje","El usuario se ha eliminado con exito");
return new ResponseEntity<Map<String,Object>>(response,HttpStatus.CREATED);
}
}
Creamos la clase ClienteController
package com.tutosoftware.manager.controller;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestController;
import com.tutosoftware.manager.model.Cliente;
import com.tutosoftware.manager.service.ClienteService;
@RestController
@RequestMapping(value="/api/v1")
@CrossOrigin(origins= {"*"})
public class ClienteController {
@Autowired
ClienteService clienteService;
@GetMapping("/cliente/{id}")
public ResponseEntity<Cliente> getClienteById(@PathVariable("id") Long id){
Cliente cliente= clienteService.getCliente(id).orElseThrow();
return new ResponseEntity<Cliente>(cliente, HttpStatus.OK);
}
@PostMapping("/cliente")
@ResponseStatus(HttpStatus.CREATED)
public ResponseEntity<?> registrarCliente(@RequestBody Cliente cliente){
clienteService.crearCliente(cliente);
Map<String,Object> response=new HashMap<>();
response.put("mensaje","El cliente ha sido creado con exito");
return new ResponseEntity<Map<String,Object>>(response,HttpStatus.CREATED);
}
@GetMapping("/cliente")
public List<Cliente> getClientes(){
return clienteService.listAll();
}
@DeleteMapping("/cliente/{id}")
public ResponseEntity<?> delete(@PathVariable Long id){
Map<String,Object> response = new HashMap<>();
clienteService.eliminarCliente(id);
response.put("mensaje","El cliente se ha eliminado con exito");
return new ResponseEntity<Map<String,Object>>(response,HttpStatus.CREATED);
}
}
Creamos la clase ProyectoController
package com.tutosoftware.manager.controller;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestController;
import com.tutosoftware.manager.model.Proyecto;
import com.tutosoftware.manager.service.ProyectoService;
@RestController
@RequestMapping(value="/api/v1")
@CrossOrigin(origins= {"*"})
public class ProyectoController {
@Autowired
ProyectoService proyectoService;
@GetMapping("/proyecto/{id}")
public ResponseEntity<Proyecto> getProyectoById(@PathVariable("id") Long id){
Proyecto proyecto = proyectoService.getProyecto(id).orElseThrow();
return new ResponseEntity<Proyecto>(proyecto, HttpStatus.OK);
}
@PostMapping("/proyecto")
@ResponseStatus(HttpStatus.CREATED)
public ResponseEntity<?> registrarProyecto(@RequestBody Proyecto proyecto){
proyectoService.crearProyecto(proyecto);
Map<String,Object> response=new HashMap<>();
response.put("mensaje","El proyecto ha sido creado con exito");
return new ResponseEntity<Map<String,Object>>(response,HttpStatus.CREATED);
}
@GetMapping("/proyecto")
public List<Proyecto> getProyectos(){
return proyectoService.listAll();
}
@DeleteMapping("/proyecto/{id}")
public ResponseEntity<?> delete(@PathVariable Long id){
Map<String,Object> response = new HashMap<>();
proyectoService.eliminarProyecto(id);
response.put("mensaje","El proyecto se ha eliminado con exito");
return new ResponseEntity<Map<String,Object>>(response,HttpStatus.CREATED);
}
}