-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTeamController.java
More file actions
52 lines (43 loc) · 1.72 KB
/
TeamController.java
File metadata and controls
52 lines (43 loc) · 1.72 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package system.design.interview.domain.team;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import system.design.interview.domain.team.dto.request.TeamCreateRequest;
import system.design.interview.domain.team.dto.request.TeamUpdateRequest;
import system.design.interview.domain.team.dto.response.TeamResponse;
import java.net.URI;
import java.util.List;
@RequiredArgsConstructor
@RequestMapping("/teams")
@RestController
public class TeamController {
private final TeamService teamService;
@PostMapping
public ResponseEntity<Void> createTeam(@RequestBody TeamCreateRequest request) {
Long teamId = teamService.createTeam(request);
return ResponseEntity.created(URI.create("/teams/" + teamId)).build();
}
@GetMapping
public ResponseEntity<List<TeamResponse>> findAll() {
List<TeamResponse> response = teamService.findAll();
return ResponseEntity.ok(response);
}
@GetMapping("/{id}")
public ResponseEntity<TeamResponse> findById(@PathVariable(name = "id") Long teamId) {
TeamResponse response = TeamResponse.from(teamService.findById(teamId));
return ResponseEntity.ok(response);
}
@PutMapping("/{id}")
public ResponseEntity<Void> updateTeam(
@PathVariable(name = "id") Long teamId,
@RequestBody TeamUpdateRequest request
) {
teamService.updateTeam(teamId, request);
return ResponseEntity.ok().build();
}
@DeleteMapping("/{id}")
public ResponseEntity<Void> deleteTeam(@PathVariable(name = "id") Long teamId) {
teamService.deleteMemberById(teamId);
return ResponseEntity.ok().build();
}
}