first commit
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
package com.xuezhanmaster.room.controller;
|
||||
|
||||
import com.xuezhanmaster.common.api.ApiResponse;
|
||||
import com.xuezhanmaster.room.dto.CreateRoomRequest;
|
||||
import com.xuezhanmaster.room.dto.JoinRoomRequest;
|
||||
import com.xuezhanmaster.room.dto.RoomSummaryResponse;
|
||||
import com.xuezhanmaster.room.dto.ToggleReadyRequest;
|
||||
import com.xuezhanmaster.room.service.RoomService;
|
||||
import jakarta.validation.Valid;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/api/rooms")
|
||||
public class RoomController {
|
||||
|
||||
private final RoomService roomService;
|
||||
|
||||
public RoomController(RoomService roomService) {
|
||||
this.roomService = roomService;
|
||||
}
|
||||
|
||||
@PostMapping
|
||||
public ApiResponse<RoomSummaryResponse> create(@Valid @RequestBody CreateRoomRequest request) {
|
||||
return ApiResponse.success(roomService.createRoom(request));
|
||||
}
|
||||
|
||||
@GetMapping("/{roomId}")
|
||||
public ApiResponse<RoomSummaryResponse> detail(@PathVariable String roomId) {
|
||||
return ApiResponse.success(roomService.getRoomSummary(roomId));
|
||||
}
|
||||
|
||||
@PostMapping("/{roomId}/join")
|
||||
public ApiResponse<RoomSummaryResponse> join(
|
||||
@PathVariable String roomId,
|
||||
@Valid @RequestBody JoinRoomRequest request
|
||||
) {
|
||||
return ApiResponse.success(roomService.joinRoom(roomId, request));
|
||||
}
|
||||
|
||||
@PostMapping("/{roomId}/ready")
|
||||
public ApiResponse<RoomSummaryResponse> ready(
|
||||
@PathVariable String roomId,
|
||||
@Valid @RequestBody ToggleReadyRequest request
|
||||
) {
|
||||
return ApiResponse.success(roomService.toggleReady(roomId, request));
|
||||
}
|
||||
|
||||
@GetMapping("/demo")
|
||||
public ApiResponse<RoomSummaryResponse> demo() {
|
||||
return ApiResponse.success(roomService.createDemoRoom());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user