summaryrefslogtreecommitdiffstats
path: root/src/main/java/com/odiparpack/back/odiparback/usuario
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/odiparpack/back/odiparback/usuario')
-rw-r--r--src/main/java/com/odiparpack/back/odiparback/usuario/Usuario.java39
-rw-r--r--src/main/java/com/odiparpack/back/odiparback/usuario/UsuarioController.java49
-rw-r--r--src/main/java/com/odiparpack/back/odiparback/usuario/UsuarioRepository.java8
-rw-r--r--src/main/java/com/odiparpack/back/odiparback/usuario/UsuarioService.java60
4 files changed, 156 insertions, 0 deletions
diff --git a/src/main/java/com/odiparpack/back/odiparback/usuario/Usuario.java b/src/main/java/com/odiparpack/back/odiparback/usuario/Usuario.java
new file mode 100644
index 0000000..416ada1
--- /dev/null
+++ b/src/main/java/com/odiparpack/back/odiparback/usuario/Usuario.java
@@ -0,0 +1,39 @@
+package com.odiparpack.back.odiparback.usuario;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+import javax.persistence.*;
+
+@Entity
+@Table
+
+@NoArgsConstructor
+@AllArgsConstructor
+@Getter
+@Setter
+public class Usuario {
+ @Id
+ @SequenceGenerator(
+ name = "usuario_sequence",
+ sequenceName = "usuario_sequence",
+ allocationSize = 1
+ )
+ @GeneratedValue(
+ strategy = GenerationType.SEQUENCE,
+ generator = "usuario_sequence"
+ )
+ private Long id;
+ private String usuario;
+ private String clave;
+ private String nombre;
+ private String apellido;
+ private String dni;
+ private String correo;
+
+ @ManyToOne
+ private Usuario creador;
+
+}
diff --git a/src/main/java/com/odiparpack/back/odiparback/usuario/UsuarioController.java b/src/main/java/com/odiparpack/back/odiparback/usuario/UsuarioController.java
new file mode 100644
index 0000000..9ada36e
--- /dev/null
+++ b/src/main/java/com/odiparpack/back/odiparback/usuario/UsuarioController.java
@@ -0,0 +1,49 @@
+package com.odiparpack.back.odiparback.usuario;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Optional;
+
+@RestController
+@RequestMapping(path = "api/v1/usuario")
+public class UsuarioController {
+
+ private final UsuarioService usuarioService;
+
+ @Autowired
+ public UsuarioController(UsuarioService usuarioService) {
+ this.usuarioService = usuarioService;
+ }
+
+ @GetMapping
+ public List<Usuario> getAll() {
+ return usuarioService.getAll();
+ }
+
+ @GetMapping(path = "{id}")
+ public Optional<Usuario> get(@PathVariable Long id) {
+ return usuarioService.get(id);
+ }
+
+ @PostMapping
+ public Long register(@RequestBody Usuario usuario) {
+ return usuarioService.register(usuario);
+ }
+
+ @PostMapping(path = "0")
+ public void registerAll(@RequestBody List<Usuario> usuarios) {
+ usuarioService.registerAll(usuarios);
+ }
+
+ @DeleteMapping(path = "{id}")
+ public void delete(@PathVariable("id") Long id) {
+ usuarioService.delete(id);
+ }
+
+ @PutMapping
+ public void update(@RequestBody Usuario usuario) {
+ usuarioService.update(usuario);
+ }
+}
diff --git a/src/main/java/com/odiparpack/back/odiparback/usuario/UsuarioRepository.java b/src/main/java/com/odiparpack/back/odiparback/usuario/UsuarioRepository.java
new file mode 100644
index 0000000..668a3d8
--- /dev/null
+++ b/src/main/java/com/odiparpack/back/odiparback/usuario/UsuarioRepository.java
@@ -0,0 +1,8 @@
+package com.odiparpack.back.odiparback.usuario;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface UsuarioRepository extends JpaRepository<Usuario, Long> {
+}
diff --git a/src/main/java/com/odiparpack/back/odiparback/usuario/UsuarioService.java b/src/main/java/com/odiparpack/back/odiparback/usuario/UsuarioService.java
new file mode 100644
index 0000000..a42c2a5
--- /dev/null
+++ b/src/main/java/com/odiparpack/back/odiparback/usuario/UsuarioService.java
@@ -0,0 +1,60 @@
+package com.odiparpack.back.odiparback.usuario;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.transaction.Transactional;
+import java.util.List;
+import java.util.Optional;
+
+@Service
+public class UsuarioService {
+
+ private final UsuarioRepository usuarioRepository;
+
+ @Autowired
+ public UsuarioService(UsuarioRepository usuarioRepository) {
+ this.usuarioRepository = usuarioRepository;
+ }
+
+ public List<Usuario> getAll() {
+ return usuarioRepository.findAll();
+ }
+
+ public Optional<Usuario> get(Long id) {
+ return usuarioRepository.findById(id);
+ }
+
+ public Long register(Usuario usuario) {
+ usuario.setId(null); // overwrite protection
+ usuario = usuarioRepository.save(usuario);
+ return usuario.getId();
+ }
+
+ public void registerAll(List<Usuario> usuarios) {
+ usuarioRepository.saveAll(usuarios);
+ }
+
+ public void delete(Long id) {
+ boolean exists = usuarioRepository.existsById(id);
+ if (!exists) {
+ throw new IllegalStateException(
+ "usuario with id " + id + " does not exists");
+ }
+ usuarioRepository.deleteById(id);
+ }
+
+ // "Managed mode". Changes saved automatically
+ @Transactional
+ public void update(Usuario usuarioNew) {
+ Long id = usuarioNew.getId();
+ if (usuarioNew.getId() == null ||
+ !usuarioRepository.existsById(id)) {
+ throw new IllegalStateException(
+ "usuario id (" + id + ") doesn't exist"
+ );
+ }
+ usuarioRepository.save(usuarioNew);
+ }
+
+}