use of com.evolveum.midpoint.model.impl.rest.PATCH in project midpoint by Evolveum.
the class ModelRestService method modifyObjectPatch.
@PATCH
@Path("/{type}/{oid}")
@Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON, "application/yaml" })
public <T extends ObjectType> Response modifyObjectPatch(@PathParam("type") String type, @PathParam("oid") String oid, ObjectModificationType modificationType, @QueryParam("options") List<String> options, @Context MessageContext mc) {
LOGGER.debug("model rest service for modify operation start");
Task task = RestServiceUtil.initRequest(mc);
OperationResult parentResult = task.getResult().createSubresult(OPERATION_MODIFY_OBJECT);
Class clazz = ObjectTypes.getClassFromRestType(type);
Response response;
try {
ModelExecuteOptions modelExecuteOptions = ModelExecuteOptions.fromRestOptions(options);
Collection<? extends ItemDelta> modifications = DeltaConvertor.toModifications(modificationType, clazz, prismContext);
model.modifyObject(clazz, oid, modifications, modelExecuteOptions, task, parentResult);
// response = Response.noContent().build();
response = RestServiceUtil.createResponse(Response.Status.NO_CONTENT, parentResult);
} catch (Exception ex) {
parentResult.recordFatalError("Could not modify object. " + ex.getMessage(), ex);
response = RestServiceUtil.handleException(parentResult, ex);
}
parentResult.computeStatus();
finishRequest(task);
return response;
}
Aggregations