Skip to content

Commit 8c271a5

Browse files
author
Schumi Yi
committed
complete part of workspace interface
1 parent 7753052 commit 8c271a5

File tree

1 file changed

+110
-0
lines changed

1 file changed

+110
-0
lines changed
Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
package com.webank.wedatasphere.dss.server.restful;
2+
3+
import com.webank.wedatasphere.dss.server.dto.response.HomepageDemoMenuVo;
4+
import com.webank.wedatasphere.dss.server.dto.response.HomepageVideoVo;
5+
import com.webank.wedatasphere.dss.server.dto.response.OnestopMenuVo;
6+
import com.webank.wedatasphere.dss.server.entity.DWSWorkspace;
7+
import com.webank.wedatasphere.dss.server.dto.response.WorkspaceDepartmentVo;
8+
import com.webank.wedatasphere.dss.server.service.DWSWorkspaceService;
9+
import com.webank.wedatasphere.linkis.server.Message;
10+
import com.webank.wedatasphere.linkis.server.security.SecurityFilter;
11+
import org.codehaus.jackson.JsonNode;
12+
import org.springframework.beans.factory.annotation.Autowired;
13+
import org.springframework.stereotype.Component;
14+
15+
import javax.servlet.http.HttpServletRequest;
16+
import javax.ws.rs.*;
17+
import javax.ws.rs.core.Context;
18+
import javax.ws.rs.core.MediaType;
19+
import javax.ws.rs.core.Response;
20+
import java.util.List;
21+
22+
/**
23+
* Created by schumiyi on 2020/6/19
24+
*/
25+
@Component
26+
@Path("/dss")
27+
@Produces(MediaType.APPLICATION_JSON)
28+
@Consumes(MediaType.APPLICATION_JSON)
29+
public class WorkspaceRestfulApi {
30+
31+
@Autowired
32+
private DWSWorkspaceService dwsWorkspaceService;
33+
34+
35+
@GET
36+
@Path("/workspaces")
37+
public Response getAllWorkspaces(@Context HttpServletRequest req) {
38+
// TODO: Order By time
39+
List<DWSWorkspace> workspaces = dwsWorkspaceService.getWorkspacesByPageInfo();
40+
return Message.messageToResponse(Message.ok().data("workspaces", workspaces));
41+
}
42+
43+
@GET
44+
@Path("/workspaces/departments")
45+
public Response getAllWorkspaceDepartments(@Context HttpServletRequest req) {
46+
List<WorkspaceDepartmentVo> departments = dwsWorkspaceService.getWorkSpaceDepartments();
47+
return Message.messageToResponse(Message.ok().data("departments", departments));
48+
}
49+
50+
@GET
51+
@Path("/workspaces/exists")
52+
public Response getUsernameExistence(@Context HttpServletRequest req, @QueryParam("name") String name) {
53+
boolean exists = dwsWorkspaceService.existWorkspaceName(name);
54+
return Message.messageToResponse(Message.ok().data("workspaceNameExists", exists));
55+
}
56+
57+
@POST
58+
@Path("/workspaces")
59+
public Response addWorkspace(@Context HttpServletRequest req, JsonNode json) {
60+
String userName = SecurityFilter.getLoginUsername(req);
61+
String name = json.get("name").getTextValue();
62+
if (dwsWorkspaceService.existWorkspaceName(name)) {
63+
return Message.messageToResponse(Message.error("工作空间名重复"));
64+
}
65+
String department = json.get("department").getTextValue();
66+
String label = json.get("label").getTextValue();
67+
String description = json.get("description").getTextValue();
68+
Long workspaceId = dwsWorkspaceService.addWorkspace(userName, name, department, label, description);
69+
return Message.messageToResponse(Message.ok().data("workspaceId", workspaceId));
70+
}
71+
72+
@GET
73+
@Path("/workspaces/demos")
74+
public Response getAllHomepageDemos(@Context HttpServletRequest req) {
75+
String header = req.getHeader("Content-language").trim();
76+
boolean isChinese = "zh-CN".equals(header);
77+
List<HomepageDemoMenuVo> homepageDemos = dwsWorkspaceService.getHomepageDemos(isChinese);
78+
return Message.messageToResponse(Message.ok().data("demos", homepageDemos));
79+
}
80+
81+
@GET
82+
@Path("/workspaces/videos")
83+
public Response getAllVideos(@Context HttpServletRequest req) {
84+
String header = req.getHeader("Content-language").trim();
85+
boolean isChinese = "zh-CN".equals(header);
86+
List<HomepageVideoVo> homepageVideos = dwsWorkspaceService.getHomepageVideos(isChinese);
87+
return Message.messageToResponse(Message.ok().data("videos", homepageVideos));
88+
}
89+
90+
@GET
91+
@Path("workspaces/{workspaceId}/managements")
92+
public Response getWorkspaceManagements(@Context HttpServletRequest req, @PathParam("workspaceId")Long workspaceId) {
93+
String header = req.getHeader("Content-language").trim();
94+
boolean isChinese = "zh-CN".equals(header);
95+
String username = SecurityFilter.getLoginUsername(req);
96+
97+
List<OnestopMenuVo> managements = dwsWorkspaceService.getWorkspaceManagements(workspaceId, username, isChinese);
98+
return Message.messageToResponse(Message.ok().data("managements", managements));
99+
}
100+
101+
@GET
102+
@Path("workspaces/{workspaceId}/applications")
103+
public Response getWorkspaceApplications(@Context HttpServletRequest req, @PathParam("workspaceId")Long workspaceId) {
104+
String header = req.getHeader("Content-language").trim();
105+
boolean isChinese = "zh-CN".equals(header);
106+
String username = SecurityFilter.getLoginUsername(req);
107+
List<OnestopMenuVo> applications = dwsWorkspaceService.getWorkspaceApplications(workspaceId, username, isChinese);
108+
return Message.messageToResponse(Message.ok().data("applications", applications));
109+
}
110+
}

0 commit comments

Comments
 (0)