Skip to content
Snippets Groups Projects
Commit 7f59f6e4 authored by Alok Joshi's avatar Alok Joshi
Browse files

review suggestions

parent 623229d2
No related branches found
No related tags found
4 merge requests!760Vulnerability fixes,!745Draft: M18 Upgraded packages to mitigate vulns in netty, guava, snakeyaml,!744Upgraded packages to mitigated vulns in netty, guava, snakeyaml,!639Extend patch API to support data block modification
Pipeline #175775 failed
......@@ -15,7 +15,7 @@
package org.opengroup.osdu.storage.model;
import com.github.fge.jsonpatch.JsonPatch;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
......@@ -27,18 +27,33 @@ import org.opengroup.osdu.storage.validation.api.ValidJsonPatch;
import javax.validation.constraints.NotNull;
import static org.opengroup.osdu.storage.swagger.SwaggerDoc.PATCH_RECORD_OPERATIONS;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Schema(description = "Represents a model for Record Patch", example = "{\n" +
" \"query\": {\n" +
" \"ids\": [\n" +
" \"common:work-product-component--wellLog:123456\"\n" +
" ]\n" +
" },\n" +
" \"ops\": [\n" +
" {\n" +
" \"op\": \"remove\",\n" +
" \"path\": \"/acl/viewers/0\"\n" +
" }\n" +
" ]\n" +
"}")
public class PatchRecordsRequestModel {
@ApiModelProperty(value = SwaggerDoc.RECORD_QUERY_CONDITION, required = true)
@Schema(description = SwaggerDoc.RECORD_QUERY_CONDITION, implementation = RecordQueryPatch.class, requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = ValidationDoc.RECORD_QUERY_CONDITION_NOT_EMPTY)
@ValidBulkQueryPatch
private RecordQueryPatch query;
@ApiModelProperty(value = org.opengroup.osdu.storage.swagger.SwaggerDoc.PATCH_RECORD_OPERATIONS, required = true)
@Schema(description = PATCH_RECORD_OPERATIONS, implementation = JsonPatch.class, requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = org.opengroup.osdu.storage.validation.ValidationDoc.PATCH_RECORD_OPERATIONS_NOT_EMPTY)
@ValidJsonPatch
private JsonPatch ops;
......
......@@ -14,21 +14,22 @@
package org.opengroup.osdu.storage.model;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.ArraySchema;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.opengroup.osdu.core.common.model.storage.SwaggerDoc;
import java.util.List;
import static org.opengroup.osdu.core.common.model.storage.SwaggerDoc.FETCH_RECORD_ID_LIST;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Schema(description = "Represents a model for Record Query Patch", example = "{ \"ids\": [\"common:work-product-component--wellLog:123456\"] }")
public class RecordQueryPatch {
@ApiModelProperty(value = SwaggerDoc.FETCH_RECORD_ID_LIST,
required = true,
example = SwaggerDoc.RECORD_ID_EXAMPLE)
@ArraySchema(arraySchema = @Schema(implementation = String.class, requiredMode = Schema.RequiredMode.REQUIRED, description = FETCH_RECORD_ID_LIST))
private List<String> ids;
}
......@@ -16,8 +16,4 @@ package org.opengroup.osdu.storage.swagger;
public class SwaggerDoc {
public static final String PATCH_RECORD_OPERATIONS = "Record patch operations.";
public static final String PATCH_RECORD_OP = "Record patch operation.";
public static final String PATCH_RECORD_OP_EXAMPLE = "replace";
public static final String PATCH_RECORD_PATH = "Bulk update record path.";
public static final String PATCH_RECORD_PATH_EXAMPLE = "/acl/owners";
}
......@@ -7,20 +7,14 @@ import java.util.Optional;
public class CollaborationUtil {
public static String getIdWithNamespace(String recordId, Optional<CollaborationContext> collaborationContext) {
if (!collaborationContext.isPresent())
return recordId;
return collaborationContext.get().getId() + recordId;
return !collaborationContext.isPresent() ? recordId : collaborationContext.get().getId() + recordId;
}
public static String getIdWithoutNamespace(String recordId, Optional<CollaborationContext> collaborationContext) {
if (!collaborationContext.isPresent())
return recordId;
return recordId.substring(collaborationContext.get().getId().length());
return !collaborationContext.isPresent() ? recordId : recordId.substring(collaborationContext.get().getId().length());
}
public static String getNamespace(Optional<CollaborationContext> collaborationContext) {
if (collaborationContext.isPresent())
return collaborationContext.get().getId();
return "";
return collaborationContext.isPresent() ? collaborationContext.get().getId() : "";
}
}
......@@ -4,7 +4,6 @@ import org.opengroup.osdu.core.common.model.storage.validation.ValidationDoc;
import org.opengroup.osdu.storage.model.RecordQueryPatch;
import org.opengroup.osdu.storage.validation.RequestValidationException;
import org.opengroup.osdu.storage.validation.api.ValidBulkQueryPatch;
import org.springframework.http.HttpStatus;
import org.springframework.util.CollectionUtils;
import javax.validation.ConstraintValidator;
......@@ -29,7 +28,6 @@ public class BulkQueryPatchValidator implements ConstraintValidator<ValidBulkQue
public boolean isValid(RecordQueryPatch value, ConstraintValidatorContext context) {
if(value == null){
throw RequestValidationException.builder()
.status(HttpStatus.BAD_REQUEST)
.message(ValidationDoc.INVALID_PAYLOAD)
.build();
}
......@@ -38,14 +36,12 @@ public class BulkQueryPatchValidator implements ConstraintValidator<ValidBulkQue
if(CollectionUtils.isEmpty(recordIds)) {
throw RequestValidationException.builder()
.status(HttpStatus.BAD_REQUEST)
.message(RECORD_ID_LIST_NOT_EMPTY)
.build();
}
if(recordIds.size() > 100) {
throw RequestValidationException.builder()
.status(HttpStatus.BAD_REQUEST)
.message(PATCH_RECORDS_MAX)
.build();
}
......@@ -54,13 +50,11 @@ public class BulkQueryPatchValidator implements ConstraintValidator<ValidBulkQue
for (String recordId : recordIds) {
if (ids.contains(recordId)) {
throw RequestValidationException.builder()
.status(HttpStatus.BAD_REQUEST)
.message(ValidationDoc.DUPLICATE_RECORD_ID)
.build();
}
if (!recordId.matches(ValidationDoc.RECORD_ID_REGEX)) {
throw RequestValidationException.builder()
.status(HttpStatus.BAD_REQUEST)
.message(INVALID_RECORD_ID_PATCH)
.build();
}
......
......@@ -24,7 +24,6 @@ import org.opengroup.osdu.storage.util.api.PatchOperations;
import org.opengroup.osdu.storage.validation.RequestValidationException;
import org.opengroup.osdu.storage.validation.ValidationDoc;
import org.opengroup.osdu.storage.validation.api.ValidJsonPatch;
import org.springframework.http.HttpStatus;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
......@@ -81,7 +80,6 @@ public class JsonPatchValidator implements ConstraintValidator<ValidJsonPatch, J
boolean isNumberOfOperationsValid = operationsNumber >= MIN_NUMBER && operationsNumber <= MAX_NUMBER;
if (!isNumberOfOperationsValid) {
throw RequestValidationException.builder()
.status(HttpStatus.BAD_REQUEST)
.message(ValidationDoc.INVALID_PATCH_OPERATION_SIZE)
.build();
}
......@@ -94,7 +92,6 @@ public class JsonPatchValidator implements ConstraintValidator<ValidJsonPatch, J
.allMatch(getAllowedOperations());
if (!isOperationTypeValid) {
throw RequestValidationException.builder()
.status(HttpStatus.BAD_REQUEST)
.message(ValidationDoc.INVALID_PATCH_OPERATION)
.build();
}
......
......@@ -286,7 +286,4 @@ public abstract class PatchRecordsTest extends TestBase {
return updateBody.toString();
}
private JsonObject bodyToJsonObject(String json) {
return new JsonParser().parse(json).getAsJsonObject();
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment