private Map<String, String> buildDefaultEntityHeaders(ODataRequestContext odataRequestContext, ChangeSetEntity changeSetEntity) { Map<String, String> headers = new HashMap<>(); ODataRequest oDataRequest = odataRequestContext.getRequest(); headers.putAll(oDataRequest.getHeaders()); headers.put("changeSetId", changeSetEntity.getChangeSetId()); return headers; }
private ProcessorResult handlePOST(ODataRequestContext oDataRequestContext, ODataUri oDataUri, ChangeSetEntity changeSetEntity) throws ODataException { LOG.debug("Handling POST operation"); Object entityData = changeSetEntity.getOdataEntity(); Map<String, String> headers = buildDefaultEntityHeaders(oDataRequestContext, changeSetEntity); ODataRequest oDataRequest = oDataRequestContext.getRequest(); validateEntityData(oDataRequest, oDataUri, entityData); DataSource dataSource = getTransactionalDataSource(oDataRequestContext, getRequestType(oDataRequest, oDataUri)); headers.putAll(oDataRequest.getHeaders()); headers.put("changeSetId", changeSetEntity.getChangeSetId()); Object createdEntity = dataSource.create(oDataUri, entityData, entityDataModel); if (WriteMethodUtil.isMinimalReturnPreferred(oDataRequest)) { return new ProcessorResult(ODataResponse.Status.NO_CONTENT, headers); } return new ProcessorResult(ODataResponse.Status.CREATED, from(createdEntity), headers, oDataRequestContext); }
ODataRequestContext odataRequestContext = changeSetEntity.getRequestContext(); ODataUri requestUri = odataRequestContext.getUri(); ODataRequest.Method method = odataRequestContext.getRequest().getMethod();
private ProcessorResult handlePOST(ODataRequestContext oDataRequestContext, ODataUri oDataUri, ChangeSetEntity changeSetEntity) throws ODataException { LOG.debug("Handling POST operation"); Object entityData = changeSetEntity.getOdataEntity(); Map<String, String> headers = buildDefaultEntityHeaders(oDataRequestContext, changeSetEntity); ODataRequest oDataRequest = oDataRequestContext.getRequest(); validateEntityData(oDataRequest, oDataUri, entityData); DataSource dataSource = getTransactionalDataSource(oDataRequestContext, getRequestType(oDataRequest, oDataUri)); headers.putAll(oDataRequest.getHeaders()); headers.put("changeSetId", changeSetEntity.getChangeSetId()); Object createdEntity = dataSource.create(oDataUri, entityData, entityDataModel); if (WriteMethodUtil.isMinimalReturnPreferred(oDataRequest)) { return new ProcessorResult(ODataResponse.Status.NO_CONTENT, headers); } return new ProcessorResult(ODataResponse.Status.CREATED, from(createdEntity), headers, oDataRequestContext); }
ODataRequestContext odataRequestContext = changeSetEntity.getRequestContext(); ODataUri requestUri = odataRequestContext.getUri(); ODataRequest.Method method = odataRequestContext.getRequest().getMethod();
private ProcessorResult handlePutAndPatch(ODataRequestContext odataRequestContext, ODataUri requestUri, ChangeSetEntity changeSetEntity) throws ODataException { LOG.debug("Handling PUT or PATCH operation"); Object entityData = changeSetEntity.getOdataEntity(); ODataRequest oDataRequest = odataRequestContext.getRequest(); Map<String, String> headers = new HashMap<>(); headers.put("changeSetId", changeSetEntity.getChangeSetId()); validateEntityData(oDataRequest, requestUri, entityData); TargetType targetType = WriteMethodUtil.getTargetType(oDataRequest, entityDataModel, requestUri); if (targetType.isCollection()) { throw new ODataBadRequestException("The URI for a PATCH request should refer to the single entity " + "to be updated, not to a collection of entities."); } // Get the location header before trying to create the entity headers.putAll(WriteMethodUtil.getResponseHeaders(entityData, requestUri, entityDataModel)); WriteMethodUtil.validateTargetType(entityData, oDataRequest, entityDataModel, requestUri); Type type = entityDataModel.getType(targetType.typeName()); WriteMethodUtil.validateKeys(entityData, (EntityType) type, requestUri, entityDataModel); DataSource dataSource = getTransactionalDataSource(odataRequestContext, type); Object updatedEntity = dataSource.update(requestUri, entityData, entityDataModel); // add additional headers headers.putAll(oDataRequest.getHeaders()); if (WriteMethodUtil.isMinimalReturnPreferred(oDataRequest)) { return new ProcessorResult(ODataResponse.Status.NO_CONTENT, headers); } return new ProcessorResult(ODataResponse.Status.OK, from(updatedEntity), headers, odataRequestContext); }
private Map<String, String> buildDefaultEntityHeaders(ODataRequestContext odataRequestContext, ChangeSetEntity changeSetEntity) { Map<String, String> headers = new HashMap<>(); ODataRequest oDataRequest = odataRequestContext.getRequest(); headers.putAll(oDataRequest.getHeaders()); headers.put("changeSetId", changeSetEntity.getChangeSetId()); return headers; }
private ProcessorResult handlePutAndPatch(ODataRequestContext odataRequestContext, ODataUri requestUri, ChangeSetEntity changeSetEntity) throws ODataException { LOG.debug("Handling PUT or PATCH operation"); Object entityData = changeSetEntity.getOdataEntity(); ODataRequest oDataRequest = odataRequestContext.getRequest(); Map<String, String> headers = new HashMap<>(); headers.put("changeSetId", changeSetEntity.getChangeSetId()); validateEntityData(oDataRequest, requestUri, entityData); TargetType targetType = WriteMethodUtil.getTargetType(oDataRequest, entityDataModel, requestUri); if (targetType.isCollection()) { throw new ODataBadRequestException("The URI for a PATCH request should refer to the single entity " + "to be updated, not to a collection of entities."); } // Get the location header before trying to create the entity headers.putAll(WriteMethodUtil.getResponseHeaders(entityData, requestUri, entityDataModel)); WriteMethodUtil.validateTargetType(entityData, oDataRequest, entityDataModel, requestUri); Type type = entityDataModel.getType(targetType.typeName()); WriteMethodUtil.validateKeys(entityData, (EntityType) type, requestUri, entityDataModel); DataSource dataSource = getTransactionalDataSource(odataRequestContext, type); Object updatedEntity = dataSource.update(requestUri, entityData, entityDataModel); // add additional headers headers.putAll(oDataRequest.getHeaders()); if (WriteMethodUtil.isMinimalReturnPreferred(oDataRequest)) { return new ProcessorResult(ODataResponse.Status.NO_CONTENT, headers); } return new ProcessorResult(ODataResponse.Status.OK, from(updatedEntity), headers, odataRequestContext); }