package com.perforce.hws.plugin.perforce.routes;
import com.perforce.hws.core.p4base.ErrorIds;
import com.perforce.hws.core.p4base.HasGson;
import com.perforce.hws.core.p4base.P4Methods;
import com.perforce.hws.core.p4base.ResultMap;
import com.perforce.hws.core.p4base.ResultMapMethods;
import com.perforce.hws.core.sessions.SessionData;
import com.perforce.hws.route.UsesJsonRequests;
import com.perforce.hws.utils.HWSSettings;
import com.perforce.hws.utils.ModelConversion;
import com.perforce.hws.utils.UsesServerHandles;
import com.perforce.p4client.models.GroupCommand;
import static spark.Spark.halt;
/**
* POST /p4/:api/groups
*/
public class PerforceAddGroupRoute implements
spark.Route,
P4Methods,
HasGson,
ResultMapMethods,
GroupSpecMethods,
ModelConversion,
UsesJsonRequests,
UsesServerHandles {
@Override
public Object handle(spark.Request request, spark.Response response) throws Exception {
SessionData sessionData = request.attribute("sessionData");
HWSSettings settings = request.attribute("settings");
String server = request.params("server");
GroupCommand groupCommand = readModel(request, GroupCommand.class);
String groupSpec = toGroupSpec(groupCommand);
return withServerHandle(server, sessionData, settings, serverHandle -> {
java.util.List<ResultMap> resultMaps =
execInputString(serverHandle, groupSpec, "group", "-i");
// For group queries, the server decides to return a warning (which is
// different from all other specs) if group creation is unsuccessful.
if (resultMaps.stream().anyMatch(m ->
m.getErrors().stream().anyMatch(ErrorIds.MsgDm_GroupNotCreated::equals))) {
halt(400, gson.toJson(resultMaps));
}
return toCommandResponse(resultMaps);
});
}
}
# |
Change |
User |
Description |
Committed |
|
#4
|
20138 |
Paul Allen |
Refactor module :api to :core |
|
|
#3
|
20073 |
Paul Allen |
Isolate p4 and hws Client namespace. |
|
|
#2
|
19986 |
Paul Allen |
Fix imports and package structure. |
|
|
#1
|
19966 |
Paul Allen |
Refactor... |
|
|
//guest/paul_allen/hws/dev/plugins/perforce/src/main/java/com/perforce/hws/plugin/perforce/routes/PerforceCreateGroupRoute.java |
#1
|
19925 |
Paul Allen |
Swagger project structure ('spark' not implemented yet) |
|
|