Commit b5773e3c authored by Joel Cando's avatar Joel Cando

este es el codigo cambiado

parent 325fdb36
...@@ -21,6 +21,7 @@ dependencies { ...@@ -21,6 +21,7 @@ dependencies {
implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.13.0' implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.13.0'
implementation group: 'org.hibernate.validator', name: 'hibernate-validator', version: '8.0.1.Final' implementation group: 'org.hibernate.validator', name: 'hibernate-validator', version: '8.0.1.Final'
implementation group: 'org.springframework.boot', name: 'spring-boot-starter-parent', version: '3.1.3', ext: 'pom' implementation group: 'org.springframework.boot', name: 'spring-boot-starter-parent', version: '3.1.3', ext: 'pom'
compileOnly group: 'org.projectlombok', name: 'lombok', version: '1.18.22'
runtimeOnly 'com.mysql:mysql-connector-j' runtimeOnly 'com.mysql:mysql-connector-j'
testImplementation 'org.springframework.boot:spring-boot-starter-test' testImplementation 'org.springframework.boot:spring-boot-starter-test'
......
package controller;
import dto.Mensaje;
import dto.ProductoDto;
import entty.Producto;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.HttpStatusCode;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import service.ProductoService;
import java.util.List;
import java.util.Optional;
@RestController
@RequestMapping("/producto")
@CrossOrigin(origins = "http://localhost:4200")
public class ProductoController {
@Autowired
ProductoService productoService;
@GetMapping("/lista")
public ResponseEntity<List<Producto>> list(){
List<Producto>list = productoService.list();
return new ResponseEntity(list, HttpStatus.OK);
}
@GetMapping("/detail/{id}")
public ResponseEntity<Producto>getById(@PathVariable("id")int id){
if(!productoService.existsById(id))
return new ResponseEntity(new Mensaje("No existe"), HttpStatus.NOT_FOUND);
Producto producto = productoService.getOne(id).get();
return new ResponseEntity(producto,HttpStatus.OK);
}
@GetMapping("/detail/{nombre}")
public ResponseEntity<Producto>getByNombre(@PathVariable("nombre")String nombre){
if(!productoService.existsByNombre(nombre))
return new ResponseEntity(new Mensaje("No existe"), HttpStatus.NOT_FOUND);
Producto producto = productoService.getByNombre(nombre).get();
return new ResponseEntity(producto,HttpStatus.OK);
}
@PostMapping("/create")
public ResponseEntity<?> create(@RequestBody ProductoDto productoDto){
if(StringUtils.isBlank(productoDto.getNombre()))
return new ResponseEntity(new Mensaje("El nombre es obligatorio"),HttpStatus.BAD_REQUEST);
if (productoDto.getPrecio()<0)
return new ResponseEntity(new Mensaje("El precio tiene que ser mayor 0"),HttpStatus.BAD_REQUEST);
if(productoService.existsByNombre(productoDto .getNombre()))
return new ResponseEntity(new Mensaje("el nombre ya existe"),HttpStatus.BAD_REQUEST);
Producto producto = new Producto(productoDto.getNombre(), productoDto.getPrecio());
productoService.save(producto);
return new ResponseEntity(new Mensaje("producto creado"),HttpStatus.OK);
}
@PostMapping("/update/{id}")
public ResponseEntity<?> update(@PathVariable("id")int id,@RequestBody ProductoDto productoDto){
if(!productoService.existsById(id))
return new ResponseEntity(new Mensaje("No existe"), HttpStatus.NOT_FOUND);
if(productoService.existsByNombre(productoDto .getNombre()) && productoService.getByNombre(productoDto.getNombre()).get().getId() != id)
return new ResponseEntity(new Mensaje("el nombre ya existe"),HttpStatus.BAD_REQUEST);
if(StringUtils.isBlank(productoDto.getNombre()))
return new ResponseEntity(new Mensaje("El nombre es obligatorio"),HttpStatus.BAD_REQUEST);
if (productoDto.getPrecio()<0)
return new ResponseEntity(new Mensaje("El precio tiene que ser mayor 0"),HttpStatus.BAD_REQUEST);
Producto producto = productoService.getOne(id).get();
producto.setNombre((producto.getNombre()));
producto.setPrecio(productoDto.getPrecio());
productoService.save(producto);
return new ResponseEntity(new Mensaje("producto creado"),HttpStatus.OK);
}
@DeleteMapping("/delete/{id}")
public ResponseEntity<?>delete(@PathVariable("id")int id){
if(!productoService.existsById(id))
return new ResponseEntity(new Mensaje("no existe"),HttpStatus.NOT_FOUND);
productoService.delete(id);
return new ResponseEntity(new Mensaje("producto eliminado"),HttpStatus.OK);
}
}
package controller;
import entty.Student;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import service.StudentService;
import java.util.List;
import java.util.Optional;
@RestController
@RequestMapping(path = "api/v1/students")
public class StudentController {
@Autowired
private StudentService studentService;
@GetMapping
public List<Student> getAll(){
return studentService.getStudents();
}
@GetMapping("/{studentId}")
public Optional<Student> getById(@PathVariable("studentId")Long studentId){
return studentService.getStudents(studentId);
}
@PostMapping
public void saveUpdate(@RequestBody Student student){
studentService.saveorUpdate(student);
}
@DeleteMapping("{studentId}")
public void saveUpdate(@PathVariable("studentId")long studentId){
studentService.delete(studentId);
}
}
package dto;
public class Mensaje {
private String mensaje;
public Mensaje(String mensaje) {
this.mensaje = mensaje;
}
public String getMensaje() {
return mensaje;
}
public void setMensaje(String mensaje) {
this.mensaje = mensaje;
}
}
package dto;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotBlank;
public class ProductoDto {
@NotBlank
private String nombre;
@Min(0)
private float precio;
public ProductoDto() {
}
public ProductoDto(@NotBlank String nombre, @Min(0) float precio) {
this.nombre = nombre;
this.precio = precio;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public float getPrecio() {
return precio;
}
public void setPrecio(float precio) {
this.precio = precio;
}
}
package entty;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
@Entity
public class Producto {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
private String nombre;
private float precio;
public Producto() {
}
public Producto(String nombre, float precio) {
this.nombre = nombre;
this.precio = precio;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public float getPrecio() {
return precio;
}
public void setPrecio(float precio) {
this.precio = precio;
}
}
package entty;
import jakarta.persistence.*;
import lombok.Data;
@Data
@Entity
@Table(name="tbl_student")
public class Student {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long studentId;
private String fisrName;
private String lastName;
@Column(name="email_address",unique= true,nullable=false)
private String email;
}
package repository; package repository;
import entty.Producto; import entty.Student;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.Optional;
@Repository @Repository
public interface ProductoRepository extends JpaRepository<Producto,Integer> { public interface StudentRepository extends JpaRepository<Student,Long> {
Optional<Producto> findByNombre(String nombre);
boolean existsByNombre(String nombre);
} }
package service;
import entty.Producto;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import repository.ProductoRepository;
import java.util.List;
import java.util.Optional;
@Service
@Transactional
public class ProductoService {
@Autowired
ProductoRepository productoRepository;
public List<Producto> list() {
return productoRepository.findAll();
}
public Optional <Producto>getOne(int id) {
return productoRepository.findById(id);
}
public Optional<Producto> getByNombre(String nombre) {
return productoRepository.findByNombre(nombre);
}
public void save(Producto producto) {
productoRepository.save(producto);
}
public void delete(int id) {
productoRepository.deleteById(id);
}
public boolean existsById(int id) {
return productoRepository.existsById(id);
}
public boolean existsByNombre(String nombre) {
return productoRepository.existsByNombre(nombre);
}
}
package service;
import entty.Student;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import repository.StudentRepository;
import java.util.List;
import java.util.Optional;
@Service
public class StudentService {
@Autowired
StudentRepository studentRepository;
public List<Student> getStudents(){
return studentRepository.findAll();
}
public Optional<Student> getStudents(Long id){
return studentRepository.findById(id);
}
public void saveorUpdate(Student student){
studentRepository.save(student);
}
public void delete(Long id){
studentRepository.deleteById(id);
}
}
...@@ -2,14 +2,6 @@ spring.datasource.url=jdbc:mysql://localhost:3306/crud ...@@ -2,14 +2,6 @@ spring.datasource.url=jdbc:mysql://localhost:3306/crud
spring.datasource.username =root spring.datasource.username =root
spring.datasource.password = spring.datasource.password =
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.jpa.show-sql=true
spring.jpa.show-sql = true spring.jpa.hibernate.ddl-auto=create-drop
spring.jpa.hibernate.ddl-auto = none
#spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
server.port=9090
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment