diff --git a/pom.xml b/pom.xml index ad485bc..0f1c9fb 100644 --- a/pom.xml +++ b/pom.xml @@ -38,7 +38,11 @@ org.springframework.boot spring-boot-starter-web - + + org.postgresql + postgresql + runtime + com.mysql mysql-connector-j diff --git a/src/main/java/com/example/project/management/Controller/ClienteController.java b/src/main/java/com/example/project/management/Controller/ClienteController.java new file mode 100644 index 0000000..99196df --- /dev/null +++ b/src/main/java/com/example/project/management/Controller/ClienteController.java @@ -0,0 +1,46 @@ +package com.example.project.management.Controller; +import com.example.project.management.Model.Cliente; +import com.example.project.management.Service.ClienteService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequestMapping("/clientes") +public class ClienteController { + @Autowired + private ClienteService clienteService; + + // Obtener todos los clientes + @GetMapping + public ResponseEntity> getAll() { + return ResponseEntity.ok(clienteService.getAll()); + } + + // Obtener un cliente por id + @GetMapping("/{id}") + public ResponseEntity getById(Integer id) { + return ResponseEntity.ok(clienteService.getById(id)); + } + + // Crear un nuevo cliente + @PostMapping + public ResponseEntity save(@RequestBody Cliente cliente) { + return ResponseEntity.ok(clienteService.save(cliente)); + } + +// // Actualizar un cliente +// @PutMapping("/{id}") +// public ResponseEntity update(Integer id, Cliente cliente) { +// return ResponseEntity.ok(clienteService.update(id, cliente)); +// } +// +// // Eliminar un cliente +// @DeleteMapping("/{id}") +// public ResponseEntity delete(Integer id) { +// clienteService.delete(id); +// return ResponseEntity.ok().build(); +// } +} diff --git a/src/main/java/com/example/project/management/Model/Cliente.java b/src/main/java/com/example/project/management/Model/Cliente.java new file mode 100644 index 0000000..f54faa0 --- /dev/null +++ b/src/main/java/com/example/project/management/Model/Cliente.java @@ -0,0 +1,22 @@ +package com.example.project.management.Model; + +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import lombok.Data; +import lombok.ToString; + +@Entity +@Data +@ToString +public class Cliente { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Integer id; + private String nombre; + private String direccion; + private String contacto; + private String detalle; + +} diff --git a/src/main/java/com/example/project/management/Repository/ClienteRepository.java b/src/main/java/com/example/project/management/Repository/ClienteRepository.java new file mode 100644 index 0000000..8cfeae6 --- /dev/null +++ b/src/main/java/com/example/project/management/Repository/ClienteRepository.java @@ -0,0 +1,7 @@ +package com.example.project.management.Repository; + +import org.springframework.data.jpa.repository.JpaRepository; + +import com.example.project.management.Model.Cliente; + +public interface ClienteRepository extends JpaRepository {} diff --git a/src/main/java/com/example/project/management/Service/ClienteService.java b/src/main/java/com/example/project/management/Service/ClienteService.java new file mode 100644 index 0000000..06e6b0c --- /dev/null +++ b/src/main/java/com/example/project/management/Service/ClienteService.java @@ -0,0 +1,29 @@ +package com.example.project.management.Service; + +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import com.example.project.management.Model.Cliente; +import com.example.project.management.Repository.ClienteRepository; + +@Service +public class ClienteService implements IClienteService{ + @Autowired + private ClienteRepository clienteRepository; + + public List getAll() { + return clienteRepository.findAll(); + } + + public Cliente getById(Integer id) { + return clienteRepository.findById(id).get(); + } + + public Cliente save(Cliente cliente) { + return clienteRepository.save(cliente); + } + + +} diff --git a/src/main/java/com/example/project/management/Service/IClienteService.java b/src/main/java/com/example/project/management/Service/IClienteService.java new file mode 100644 index 0000000..0a90196 --- /dev/null +++ b/src/main/java/com/example/project/management/Service/IClienteService.java @@ -0,0 +1,15 @@ +package com.example.project.management.Service; + +import java.util.List; + +import com.example.project.management.Model.Cliente; + +public interface IClienteService { + + public List getAll(); + + public Cliente getById(Integer id); + + public Cliente save(Cliente cliente); + +} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 516d34b..e7b6d95 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1 +1,10 @@ spring.application.name=project.management + +spring.datasource.url=jdbc:postgresql://localhost:5432/clientes_db +spring.datasource.username=postgres +spring.datasource.password=root +spring.datasource.driver-class-name=org.postgresql.Driver + +spring.jpa.hibernate.ddl-auto=update +spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect +spring.jpa.show-sql=true \ No newline at end of file