strolch-plc/plc-rest/src/main/java/li/strolch/plc/rest/PlcAddresses.java

43 lines
1.5 KiB
Java

package li.strolch.plc.rest;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.ws.rs.Consumes;
import jakarta.ws.rs.PUT;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.core.Context;
import jakarta.ws.rs.core.MediaType;
import jakarta.ws.rs.core.Response;
import li.strolch.plc.core.service.SendPlcAddressActionService;
import li.strolch.privilege.model.Certificate;
import li.strolch.rest.RestfulStrolchComponent;
import li.strolch.rest.StrolchRestfulConstants;
import li.strolch.rest.helper.ResponseUtil;
import li.strolch.service.JsonServiceArgument;
import li.strolch.service.api.ServiceHandler;
import li.strolch.service.api.ServiceResult;
@Path("plc/addresses")
public class PlcAddresses {
@PUT
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response sendAddressAction(@Context HttpServletRequest request, String data) {
Certificate cert = (Certificate) request.getAttribute(StrolchRestfulConstants.STROLCH_CERTIFICATE);
JsonObject jsonObject = JsonParser.parseString(data).getAsJsonObject();
SendPlcAddressActionService svc = new SendPlcAddressActionService();
JsonServiceArgument arg = svc.getArgumentInstance();
arg.jsonElement = jsonObject;
// call service
ServiceHandler svcHandler = RestfulStrolchComponent.getInstance().getServiceHandler();
ServiceResult svcResult = svcHandler.doService(cert, svc, arg);
return ResponseUtil.toResponse(svcResult);
}
}