Skip to content

Commit 3caa454

Browse files
committed
feat: add all update entity
1 parent 4eb1826 commit 3caa454

File tree

23 files changed

+363
-38
lines changed

23 files changed

+363
-38
lines changed
Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
package service.task.manager.controller;
22

3+
import jakarta.validation.Valid;
4+
import jakarta.validation.constraints.NotNull;
5+
import jakarta.validation.constraints.Positive;
36
import lombok.RequiredArgsConstructor;
47
import lombok.extern.slf4j.Slf4j;
58
import org.springframework.web.bind.annotation.*;
69
import service.task.manager.dto.epic.EpicRequestCreatedDto;
10+
import service.task.manager.dto.epic.EpicRequestUpdatedDto;
711
import service.task.manager.dto.epic.EpicResponseDto;
812
import service.task.manager.service.EpicService;
913

@@ -12,26 +16,33 @@
1216
@Slf4j
1317
@CrossOrigin
1418
@RestController
19+
@RequiredArgsConstructor
1520
@RequestMapping("/epic")
1621
public class EpicController {
1722
private final EpicService service;
1823

19-
public EpicController(EpicService service) {
20-
this.service = service;
21-
}
22-
2324
@PostMapping
24-
public void create(@RequestBody EpicRequestCreatedDto dto) {
25+
public void create(@RequestBody @Valid EpicRequestCreatedDto dto) {
2526
service.create(dto);
2627
}
2728

29+
@PutMapping
30+
public EpicResponseDto update(@RequestBody @Valid EpicRequestUpdatedDto dto) {
31+
return service.update(dto);
32+
}
33+
2834
@GetMapping("/{id}")
29-
public EpicResponseDto findById(@PathVariable Long id) {
35+
public EpicResponseDto findById(@PathVariable @Positive @NotNull Long id) {
3036
return service.findById(id);
3137
}
3238

3339
@GetMapping
3440
public List<EpicResponseDto> findAll() {
3541
return service.findAll();
3642
}
43+
44+
@DeleteMapping("/{id}")
45+
public void delete(@PathVariable @Positive @NotNull Long id) {
46+
service.delete(id);
47+
}
3748
}
Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
package service.task.manager.controller;
22

3+
import jakarta.validation.Valid;
4+
import jakarta.validation.constraints.NotNull;
5+
import jakarta.validation.constraints.Positive;
36
import lombok.RequiredArgsConstructor;
47
import lombok.extern.slf4j.Slf4j;
58
import org.springframework.web.bind.annotation.*;
69
import service.task.manager.dto.subtask.SubtaskRequestCreatedDto;
10+
import service.task.manager.dto.subtask.SubtaskRequestUpdatedDto;
711
import service.task.manager.dto.subtask.SubtaskResponseDto;
812
import service.task.manager.service.SubtaskService;
913

@@ -12,26 +16,33 @@
1216
@Slf4j
1317
@CrossOrigin
1418
@RestController
19+
@RequiredArgsConstructor
1520
@RequestMapping("/subtask")
1621
public class SubtaskController {
1722
private final SubtaskService service;
1823

19-
public SubtaskController(SubtaskService service) {
20-
this.service = service;
21-
}
22-
2324
@PostMapping
24-
public void create(@RequestBody SubtaskRequestCreatedDto dto) {
25+
public void create(@RequestBody @Valid SubtaskRequestCreatedDto dto) {
2526
service.create(dto);
2627
}
2728

29+
@PutMapping
30+
public void update(@RequestBody @Valid SubtaskRequestUpdatedDto dto) {
31+
service.update(dto);
32+
}
33+
2834
@GetMapping("/{id}")
29-
public SubtaskResponseDto findById(@PathVariable Long id) {
35+
public SubtaskResponseDto findById(@PathVariable @Positive @NotNull Long id) {
3036
return service.findById(id);
3137
}
3238

3339
@GetMapping
3440
public List<SubtaskResponseDto> findAll() {
3541
return service.findAll();
3642
}
43+
44+
@DeleteMapping("/{id}")
45+
public void delete(@PathVariable @Positive @NotNull Long id) {
46+
service.delete(id);
47+
}
3748
}
Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
package service.task.manager.controller;
22

3+
import jakarta.validation.Valid;
4+
import jakarta.validation.constraints.NotNull;
5+
import jakarta.validation.constraints.Positive;
36
import lombok.RequiredArgsConstructor;
47
import lombok.extern.slf4j.Slf4j;
58
import org.springframework.web.bind.annotation.*;
69
import service.task.manager.dto.task.TaskRequestCreatedDto;
10+
import service.task.manager.dto.task.TaskRequestUpdatedDto;
711
import service.task.manager.dto.task.TaskResponseDto;
812
import service.task.manager.service.TaskService;
913

@@ -12,26 +16,33 @@
1216
@Slf4j
1317
@CrossOrigin
1418
@RestController
19+
@RequiredArgsConstructor
1520
@RequestMapping("/task")
1621
public class TaskController {
1722
private final TaskService service;
1823

19-
public TaskController(TaskService service) {
20-
this.service = service;
21-
}
22-
2324
@PostMapping
24-
public void create(@RequestBody TaskRequestCreatedDto dto){
25+
public void create(@RequestBody @Valid TaskRequestCreatedDto dto) {
2526
service.create(dto);
2627
}
2728

29+
@PutMapping
30+
public void update(@RequestBody @Valid TaskRequestUpdatedDto dto) {
31+
service.update(dto);
32+
}
33+
2834
@GetMapping("/{id}")
29-
public TaskResponseDto get(@PathVariable Long id){
35+
public TaskResponseDto get(@PathVariable @Positive @NotNull Long id) {
3036
return service.findById(id);
3137
}
3238

3339
@GetMapping
3440
public List<TaskResponseDto> getAll(){
3541
return service.findAll();
3642
}
43+
44+
@DeleteMapping("/{id}")
45+
public void delete(@PathVariable @Positive @NotNull Long id) {
46+
service.delete(id);
47+
}
3748
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package service.task.manager.dto.epic;
2+
3+
import jakarta.validation.constraints.NotBlank;
4+
import jakarta.validation.constraints.NotNull;
5+
import jakarta.validation.constraints.Positive;
6+
import service.task.manager.model.Epic;
7+
import service.task.manager.model.enums.Status;
8+
9+
import java.time.Duration;
10+
11+
/**
12+
* DTO for {@link Epic}
13+
*/
14+
public record EpicRequestUpdatedDto(@NotNull(message = "null id") @Positive(message = "not positive id") Long id,
15+
@NotBlank(message = "blank name") String name,
16+
@NotBlank(message = "blank description") String description,
17+
@NotNull(message = "null status") Status status, @NotNull Duration duration) {
18+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package service.task.manager.dto.subtask;
2+
3+
import jakarta.validation.constraints.NotBlank;
4+
import jakarta.validation.constraints.NotNull;
5+
import jakarta.validation.constraints.Positive;
6+
import service.task.manager.model.enums.Status;
7+
8+
import java.time.Duration;
9+
10+
/**
11+
* DTO for {@link service.task.manager.model.Subtask}
12+
*/
13+
public record SubtaskRequestUpdatedDto(@NotNull(message = "null id") @Positive(message = "not positive id") Long id,
14+
@NotBlank(message = "blank name") String name,
15+
@NotBlank(message = "blank description") String description,
16+
@NotNull(message = "null status") Status status, @NotNull Duration duration) {
17+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package service.task.manager.dto.task;
2+
3+
import jakarta.validation.constraints.NotBlank;
4+
import jakarta.validation.constraints.NotNull;
5+
import jakarta.validation.constraints.Positive;
6+
import service.task.manager.model.enums.Status;
7+
8+
import java.time.Duration;
9+
10+
/**
11+
* DTO for {@link service.task.manager.model.Task}
12+
*/
13+
public record TaskRequestUpdatedDto(@NotNull(message = "null id") @Positive(message = "not positive id") Long id,
14+
@NotBlank(message = "blank name") String name,
15+
@NotBlank(message = "blank description") String description,
16+
@NotNull(message = "null status") Status status,
17+
@NotNull(message = "null duration") Duration duration) {
18+
}

service/src/main/java/service/task/manager/mapper/EpicMapper.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
package service.task.manager.mapper;
22

33
import org.mapstruct.Mapper;
4-
import org.mapstruct.Mapping;
54
import org.mapstruct.MappingConstants;
6-
import org.mapstruct.ReportingPolicy;
5+
import service.task.manager.dto.subtask.SubtaskRequestUpdatedDto;
76
import service.task.manager.dto.epic.EpicRequestCreatedDto;
87
import service.task.manager.dto.epic.EpicResponseDto;
98
import service.task.manager.model.Epic;
9+
import service.task.manager.dto.epic.EpicRequestUpdatedDto;
1010
import service.task.manager.model.Subtask;
1111

1212
@Mapper(componentModel = MappingConstants.ComponentModel.SPRING)
@@ -20,4 +20,12 @@ public interface EpicMapper {
2020

2121
// Маппинг для подзадач (Subtask -> SubtaskDto)
2222
EpicResponseDto.SubtaskDto toSubtaskDto(Subtask subtask);
23+
24+
Subtask toEntity(SubtaskRequestUpdatedDto subtaskRequestUpdatedDto);
25+
26+
SubtaskRequestUpdatedDto toSubtaskRequestUpdatedDto(Subtask subtask);
27+
28+
Epic toEntity(EpicRequestUpdatedDto epicRequestUpdatedDto);
29+
30+
EpicRequestUpdatedDto toEpicDto(Epic epic);
2331
}

service/src/main/java/service/task/manager/mapper/SubtaskMapper.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import org.mapstruct.*;
44
import service.task.manager.dto.subtask.SubtaskRequestCreatedDto;
5+
import service.task.manager.dto.subtask.SubtaskRequestUpdatedDto;
56
import service.task.manager.dto.subtask.SubtaskResponseDto;
67
import service.task.manager.model.Epic;
78
import service.task.manager.model.Subtask;
@@ -14,4 +15,6 @@ public interface SubtaskMapper {
1415

1516
// Маппинг из сущности Subtask в DTO ответа
1617
SubtaskResponseDto toResponseDto(Subtask subtask);
18+
19+
Subtask toEntity(SubtaskRequestUpdatedDto subtaskRequestUpdatedDto);
1720
}

service/src/main/java/service/task/manager/mapper/TaskMapper.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
package service.task.manager.mapper;
22

33
import org.mapstruct.Mapper;
4-
import org.mapstruct.Mapping;
5-
import org.mapstruct.MappingConstants;
6-
import org.mapstruct.ReportingPolicy;
4+
import service.task.manager.dto.task.TaskRequestUpdatedDto;
75
import service.task.manager.dto.task.TaskRequestCreatedDto;
86
import service.task.manager.dto.task.TaskResponseDto;
97
import service.task.manager.model.Task;
@@ -16,4 +14,8 @@ public interface TaskMapper {
1614

1715
// Маппинг из сущности Task в DTO ответа
1816
TaskResponseDto toResponseDto(Task task);
17+
18+
Task toEntity(TaskRequestUpdatedDto taskRequestUpdatedDto);
19+
20+
TaskRequestUpdatedDto toTaskRequestUpdatedDto(Task task);
1921
}
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
package service.task.manager.repository;
22

3-
import org.springframework.data.repository.CrudRepository;
3+
import org.springframework.data.jpa.repository.JpaRepository;
44
import org.springframework.stereotype.Repository;
55
import service.task.manager.model.Epic;
66

77
@Repository
8-
public interface EpicRepository extends CrudRepository<Epic, Long> {
8+
public interface EpicRepository extends JpaRepository<Epic, Long> {
99
}

0 commit comments

Comments
 (0)