package com.dji.sample.manage.controller; import com.dji.sample.common.model.CustomClaim; import com.dji.sample.common.model.PaginationData; import com.dji.sample.common.model.ResponseResult; import com.dji.sample.manage.model.dto.UserListDTO; import com.dji.sample.manage.model.dto.WorkspaceDTO; import com.dji.sample.manage.service.IWorkspaceService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import java.util.Optional; import static com.dji.sample.component.AuthInterceptor.TOKEN_CLAIM; /** * @author sean.zhou * @version 0.1 * @date 2021/11/23 */ @RestController @RequestMapping("${url.manage.prefix}${url.manage.version}/workspaces") public class WorkspaceController { @Autowired private IWorkspaceService workspaceService; /** * Gets information about the workspace that the current user is in. * @param request * @return */ @GetMapping("/current") public ResponseResult getCurrentWorkspace(HttpServletRequest request) { CustomClaim customClaim = (CustomClaim)request.getAttribute(TOKEN_CLAIM); Optional workspaceOpt = workspaceService.getWorkspaceByWorkspaceId(customClaim.getWorkspaceId()); return workspaceOpt.isEmpty() ? ResponseResult.error() : ResponseResult.success(workspaceOpt.get()); } @GetMapping("/list") public ResponseResult findCurrentWorkspace(@RequestParam(defaultValue = "1") Long page, @RequestParam(value = "page_size", defaultValue = "50") Long pageSize) { PaginationData paginationData = workspaceService.selectWorkspace(page, pageSize); return ResponseResult.success(paginationData); } @PostMapping("/add") public ResponseResult add(@RequestBody WorkspaceDTO dto) { return workspaceService.createWorkspace(dto)?ResponseResult.success():ResponseResult.error(); } @PostMapping("/delete") public ResponseResult delete(@RequestParam(value = "id") Integer id) { return workspaceService.deleteWorkspaceById(id)?ResponseResult.success():ResponseResult.error(); } @PostMapping("/update") public ResponseResult update(@RequestBody WorkspaceDTO dto) { return workspaceService.updateWorkspaceById(dto)?ResponseResult.success():ResponseResult.error(); } @GetMapping("/selectById") public ResponseResult selectById(@RequestParam int id){ return ResponseResult.success(workspaceService.getWorkspaceById(id)); } }