فهرست منبع

Create CRUD for Teacher

Eldar Mukhtarov 10 ماه پیش
والد
کامیت
a28da91827

+ 54 - 0
project/backend_springboot/src/main/java/pl/dmcs/eldarmuk/backend_springboot/controller/TeacherController.java

@@ -0,0 +1,54 @@
+package pl.dmcs.eldarmuk.backend_springboot.controller;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+import pl.dmcs.eldarmuk.backend_springboot.model.Teacher;
+import pl.dmcs.eldarmuk.backend_springboot.repository.TeacherRepository;
+
+import java.util.List;
+
+@RestController
+@CrossOrigin(origins = "http://localhost:4200")
+@RequestMapping("/teachers")
+public class TeacherController {
+    private final TeacherRepository teacherRepository;
+
+    @Autowired
+    public TeacherController(TeacherRepository teacherRepository) {
+        this.teacherRepository = teacherRepository;
+    }
+
+    @GetMapping
+    public List<Teacher> findAllTeachers() {
+        return teacherRepository.findAll();
+    }
+
+    @GetMapping("/{id}")
+    public ResponseEntity<Teacher> findTeacher(@PathVariable("id") long id) {
+        try {
+            Teacher teacher = teacherRepository.findById(id);
+            if (teacher == null) {
+                return new ResponseEntity<>(HttpStatus.NOT_FOUND);
+            }
+            return new ResponseEntity<>(teacher, HttpStatus.OK);
+        } catch (Exception e) {
+            return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR);
+        }
+    }
+
+    @DeleteMapping("/{id}")
+    public ResponseEntity<?> deleteTeacher(@PathVariable("id") long id) {
+        try {
+            Teacher teacher = teacherRepository.findById(id);
+            if (teacher == null) {
+                return ResponseEntity.notFound().build();
+            }
+            teacherRepository.deleteById(id);
+            return ResponseEntity.ok(teacher);
+        } catch (Exception e) {
+            return ResponseEntity.status(500).body("Error deleting teacher: " + e.getMessage());
+        }
+    }
+}

+ 0 - 7
project/backend_springboot/src/main/java/pl/dmcs/eldarmuk/backend_springboot/model/Account.java

@@ -2,13 +2,10 @@ package pl.dmcs.eldarmuk.backend_springboot.model;
 
 import org.hibernate.validator.constraints.Length;
 
-import com.fasterxml.jackson.annotation.JsonIgnore;
-
 import jakarta.persistence.Entity;
 import jakarta.persistence.GeneratedValue;
 import jakarta.persistence.GenerationType;
 import jakarta.persistence.Id;
-import jakarta.persistence.OneToOne;
 import jakarta.validation.constraints.NotBlank;
 
 @Entity
@@ -26,10 +23,6 @@ public class Account {
     private String password;
     private String email;
 
-    @JsonIgnore
-    @OneToOne(mappedBy = "account")
-    private Student student;
-
     public Account() {}
 
     public Account(@NotBlank @Length(min = 3, max = 50) String username, @NotBlank @Length(min = 6, max = 100) String password) {

+ 70 - 0
project/backend_springboot/src/main/java/pl/dmcs/eldarmuk/backend_springboot/model/Teacher.java

@@ -0,0 +1,70 @@
+package pl.dmcs.eldarmuk.backend_springboot.model;
+
+import jakarta.persistence.CascadeType;
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.OneToOne;
+
+@Entity
+public class Teacher {
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    private Long id;
+    private String firstName;
+    private String lastName;
+    private String email;
+
+    @OneToOne(cascade = CascadeType.ALL)
+    private Account account;
+
+    public Teacher() {}
+
+    public Teacher(Long id, String firstName, String lastName, String email) {
+        this.id = id;
+        this.firstName = firstName;
+        this.lastName = lastName;
+        this.email = email;
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getFirstName() {
+        return firstName;
+    }
+
+    public void setFirstName(String firstName) {
+        this.firstName = firstName;
+    }
+
+    public String getLastName() {
+        return lastName;
+    }
+
+    public void setLastName(String lastName) {
+        this.lastName = lastName;
+    }
+
+    public String getEmail() {
+        return email;
+    }
+
+    public void setEmail(String email) {
+        this.email = email;
+    }
+
+    public Account getAccount() {
+        return account;
+    }
+
+    public void setAccount(Account account) {
+        this.account = account;
+    }
+}

+ 11 - 0
project/backend_springboot/src/main/java/pl/dmcs/eldarmuk/backend_springboot/repository/TeacherRepository.java

@@ -0,0 +1,11 @@
+package pl.dmcs.eldarmuk.backend_springboot.repository;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+import pl.dmcs.eldarmuk.backend_springboot.model.Teacher;
+
+@Repository
+public interface TeacherRepository extends JpaRepository<Teacher, Long> {
+    Teacher findById(long id);
+    Teacher findByAccountUsername(String username);
+}