diff --git a/src/main/java/com/example/prapro2spring/controller/OccupationLogController.java b/src/main/java/com/example/prapro2spring/controller/OccupationLogController.java new file mode 100644 index 0000000..83f4380 --- /dev/null +++ b/src/main/java/com/example/prapro2spring/controller/OccupationLogController.java @@ -0,0 +1,55 @@ +package com.example.prapro2spring.controller; + +import com.example.prapro2spring.dto.OccupationLogDTO; +import com.example.prapro2spring.model.OccupationLog; +import com.example.prapro2spring.service.OccupationLogDTOService; +import com.example.prapro2spring.service.OccupationLogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequestMapping("/api/occupationLogs") +public class OccupationLogController { + + @Autowired + private OccupationLogService occupationLogService; + @Autowired + private OccupationLogDTOService occupationLogDTOService; + + @GetMapping + public List getAllOccupationLogs() { + return occupationLogService.findAll(); + } + + @GetMapping("/{id}") + public OccupationLog getOccupationLogById(@PathVariable Long id) { + return occupationLogService.findById(id).orElse(null); + } + + @PostMapping + public OccupationLogDTO createOccupationLog(@RequestBody OccupationLogDTO occupationLog) { + occupationLog.setId(null); + return occupationLogDTOService.save(occupationLog); + } + + @PutMapping("/{id}") + public OccupationLogDTO updateOccupationLog(@PathVariable Long id, @RequestBody OccupationLogDTO occupationLogDetails) { + OccupationLogDTO occupationLog = occupationLogDTOService.findById(id).orElse(null); + if (occupationLog != null) { + occupationLog.setOccupationId(occupationLogDetails.getOccupationId()); + occupationLog.setPersonId(occupationLogDetails.getPersonId()); + occupationLog.setStartTimestamp(occupationLogDetails.getStartTimestamp()); + occupationLog.setEndTimestamp(occupationLogDetails.getEndTimestamp()); + occupationLog.setGrade(occupationLogDetails.getGrade()); + return occupationLogDTOService.save(occupationLog); + } + return null; + } + + @DeleteMapping("/{id}") + public void deleteOccupationLog(@PathVariable Long id) { + occupationLogService.deleteById(id); + } +} \ No newline at end of file diff --git a/src/main/java/com/example/prapro2spring/dto/OccupationLogDTO.java b/src/main/java/com/example/prapro2spring/dto/OccupationLogDTO.java new file mode 100644 index 0000000..d24a3c2 --- /dev/null +++ b/src/main/java/com/example/prapro2spring/dto/OccupationLogDTO.java @@ -0,0 +1,81 @@ +package com.example.prapro2spring.dto; + +import com.example.prapro2spring.model.Occupation; +import com.example.prapro2spring.model.Person; +import jakarta.persistence.*; + +import java.time.LocalDateTime; + +@Entity +@Table(name = "occupation_log") +public class OccupationLogDTO { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Column(name = "occupationId") + private Long occupationId; + + @Column(name = "humanId") + private Long personId; + + @Column(name = "start_timestamp") + private LocalDateTime startTimestamp; + + @Column(name = "end_timestamp") + private LocalDateTime endTimestamp; + + @Column(name = "grade") + private Integer grade; + + // getters and setters + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getOccupationId() { + return occupationId; + } + + public void setOccupationId(Long occupationId) { + this.occupationId = occupationId; + } + + public Long getPersonId() { + return personId; + } + + public void setPersonId(Long personId) { + this.personId = personId; + } + + public LocalDateTime getStartTimestamp() { + return startTimestamp; + } + + public void setStartTimestamp(LocalDateTime startTimestamp) { + this.startTimestamp = startTimestamp; + } + + public LocalDateTime getEndTimestamp() { + return endTimestamp; + } + + public void setEndTimestamp(LocalDateTime endTimestamp) { + this.endTimestamp = endTimestamp; + } + + public Integer getGrade() { + return grade; + } + + public void setGrade(Integer grade) { + this.grade = grade; + } +} \ No newline at end of file diff --git a/src/main/java/com/example/prapro2spring/service/OccupationLogDTOService.java b/src/main/java/com/example/prapro2spring/service/OccupationLogDTOService.java new file mode 100644 index 0000000..6fe52cb --- /dev/null +++ b/src/main/java/com/example/prapro2spring/service/OccupationLogDTOService.java @@ -0,0 +1,9 @@ +package com.example.prapro2spring.service; + +import com.example.prapro2spring.dto.OccupationLogDTO; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Service; + +@Service +public interface OccupationLogDTOService extends JpaRepository { +} \ No newline at end of file diff --git a/src/main/java/com/example/prapro2spring/service/OccupationLogService.java b/src/main/java/com/example/prapro2spring/service/OccupationLogService.java new file mode 100644 index 0000000..6ff1f4a --- /dev/null +++ b/src/main/java/com/example/prapro2spring/service/OccupationLogService.java @@ -0,0 +1,9 @@ +package com.example.prapro2spring.service; + +import com.example.prapro2spring.model.OccupationLog; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Service; + +@Service +public interface OccupationLogService extends JpaRepository { +} \ No newline at end of file