package com.perforce.hws.plugin.perforce.routes;
import com.perforce.hws.core.p4base.HasGson;
import com.perforce.hws.core.p4base.P4Methods;
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.Protections;
/**
* PUT /{server}/protections
*/
public class PerforceUpdateProtectionsRoute implements
spark.Route,
P4Methods,
HasGson,
ModelConversion,
ResultMapMethods,
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");
return withServerHandle(server, sessionData, settings, serverHandle -> {
Protections protections = readModel(request, Protections.class);
java.util.Map<String, Object> inputMap = toRequestMap(protections);
return toCommandResponse(execInput(serverHandle, inputMap, "protect", "-i"));
});
}
}