diff --git a/src/main/java/com/app/backend/controller/StudentApiController.java b/src/main/java/com/app/backend/controller/StudentApiController.java index 943fcd6..938a7cd 100644 --- a/src/main/java/com/app/backend/controller/StudentApiController.java +++ b/src/main/java/com/app/backend/controller/StudentApiController.java @@ -2,6 +2,7 @@ import com.app.backend.model.StudentModel; import com.app.backend.service.impl.StudentServiceImpl; +import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; @@ -16,4 +17,8 @@ public interface StudentApiController { public StudentModel createStudent(@RequestBody StudentModel newStudent); @GetMapping("/students/{id}") public StudentModel getStudentById(@PathVariable int id); + @PutMapping("/update-student/{id}") + public ResponseEntity updateStudentById(@PathVariable int id, @RequestBody StudentModel newStudent); + @DeleteMapping("delete-student/{id}") + public ResponseEntity deleteStudentById(@PathVariable int id); } diff --git a/src/main/java/com/app/backend/controller/impl/StudentApiControllerImpl.java b/src/main/java/com/app/backend/controller/impl/StudentApiControllerImpl.java index adf1a71..36ef02a 100644 --- a/src/main/java/com/app/backend/controller/impl/StudentApiControllerImpl.java +++ b/src/main/java/com/app/backend/controller/impl/StudentApiControllerImpl.java @@ -6,6 +6,7 @@ import com.app.backend.service.impl.StudentServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; +import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; @@ -30,4 +31,11 @@ public StudentModel createStudent(@RequestBody StudentModel newStudent){ public StudentModel getStudentById(@PathVariable int id){ return studentService.getStudentById(id); } + @Override + public ResponseEntity deleteStudentById(@PathVariable int id){ + return studentService.deleteStudentById(id); + } + public ResponseEntity updateStudentById(@PathVariable int id, @RequestBody StudentModel newStudent){ + return studentService.updateStudentById(id, newStudent); + } } diff --git a/src/main/java/com/app/backend/model/StudentModel.java b/src/main/java/com/app/backend/model/StudentModel.java index a9dcb13..767204f 100644 --- a/src/main/java/com/app/backend/model/StudentModel.java +++ b/src/main/java/com/app/backend/model/StudentModel.java @@ -3,6 +3,14 @@ import java.util.Date; public class StudentModel { + private Integer id; + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } public String getFirstName() { return firstName; } diff --git a/src/main/java/com/app/backend/service/StudentService.java b/src/main/java/com/app/backend/service/StudentService.java index e01cfd2..4fddc10 100644 --- a/src/main/java/com/app/backend/service/StudentService.java +++ b/src/main/java/com/app/backend/service/StudentService.java @@ -1,8 +1,11 @@ package com.app.backend.service; import com.app.backend.model.StudentModel; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; +import java.net.http.HttpResponse; import java.util.ArrayList; import java.util.List; @@ -14,4 +17,6 @@ public interface StudentService { public List getStudentsList(); public StudentModel createStudent(StudentModel newStudent); public StudentModel getStudentById(int id); + public ResponseEntity deleteStudentById(int Id); + public ResponseEntity updateStudentById(int id, StudentModel newStudent); } diff --git a/src/main/java/com/app/backend/service/impl/StudentServiceImpl.java b/src/main/java/com/app/backend/service/impl/StudentServiceImpl.java index 0a6aada..775ff51 100644 --- a/src/main/java/com/app/backend/service/impl/StudentServiceImpl.java +++ b/src/main/java/com/app/backend/service/impl/StudentServiceImpl.java @@ -2,10 +2,17 @@ import com.app.backend.model.StudentModel; import com.app.backend.service.StudentService; +import jakarta.annotation.Nullable; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; +import javax.lang.model.type.NullType; +import java.net.http.HttpResponse; import java.util.List; +import static org.springframework.http.HttpStatus.OK; + @Service public class StudentServiceImpl implements StudentService { public List getStudentsList() { @@ -15,7 +22,34 @@ public StudentModel createStudent(StudentModel newStudent){ this.students.add(newStudent); return newStudent; } + @Nullable public StudentModel getStudentById(int id){ - return this.students.get(id); + for(StudentModel student : this.students){ + if(student.getId() == id){ + return student; + } + } + return null; + } + + public ResponseEntity deleteStudentById(int id){ + for(StudentModel student : this.students){ + if(student.getId() == id){ + students.remove(student); + return ResponseEntity.status(OK).body(String.format("Estudiante con id %d eliminado correctamente", id)); + } + } + return ResponseEntity.status(HttpStatus.NOT_FOUND).body(String.format("Estudiante con id %d no encontrado", id)); + } + + public ResponseEntity updateStudentById(int id, StudentModel newStudent){ + for(int i = 0; i < this.students.size(); i++) { + if(this.students.get(i).getId() == id){ + newStudent.setId(id); + this.students.set(i, newStudent); + return ResponseEntity.status(OK).body(String.format("Estudiante con id %d actualizado correctamente", id)); + } + } + return ResponseEntity.status(HttpStatus.NOT_FOUND).body(String.format("Estudiante con id %d no encontrado", id)); } }