summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Newson <rnewson@apache.org>2023-04-08 11:20:30 +0100
committerRobert Newson <rnewson@apache.org>2023-04-22 11:20:02 +0100
commitd14a93189a253489b85bd6819c89154a158c8aa1 (patch)
tree12ecd3c16d572d0bb6e2b7c9544214a8edea3638
parent29c88ac9550259f2475de2a6261678986b6444b2 (diff)
downloadcouchdb-d14a93189a253489b85bd6819c89154a158c8aa1.tar.gz
improve api annotations
-rw-r--r--nouveau/src/main/java/org/apache/couchdb/nouveau/api/DocumentDeleteRequest.java7
-rw-r--r--nouveau/src/main/java/org/apache/couchdb/nouveau/api/DocumentUpdateRequest.java4
-rw-r--r--nouveau/src/main/java/org/apache/couchdb/nouveau/api/Field.java4
-rw-r--r--nouveau/src/main/java/org/apache/couchdb/nouveau/api/IndexInfo.java4
-rw-r--r--nouveau/src/main/java/org/apache/couchdb/nouveau/api/Range.java6
-rw-r--r--nouveau/src/main/java/org/apache/couchdb/nouveau/api/SearchRequest.java4
-rw-r--r--nouveau/src/main/java/org/apache/couchdb/nouveau/api/SearchResults.java4
7 files changed, 23 insertions, 10 deletions
diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/api/DocumentDeleteRequest.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/api/DocumentDeleteRequest.java
index d2352770e..d3be6bf5b 100644
--- a/nouveau/src/main/java/org/apache/couchdb/nouveau/api/DocumentDeleteRequest.java
+++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/api/DocumentDeleteRequest.java
@@ -13,7 +13,7 @@
package org.apache.couchdb.nouveau.api;
-import jakarta.validation.constraints.Min;
+import jakarta.validation.constraints.Positive;
import com.fasterxml.jackson.annotation.JsonProperty;
@@ -22,7 +22,7 @@ import io.dropwizard.jackson.JsonSnakeCase;
@JsonSnakeCase
public class DocumentDeleteRequest {
- @Min(1)
+ @Positive
private long seq;
public DocumentDeleteRequest() {
@@ -30,6 +30,9 @@ public class DocumentDeleteRequest {
}
public DocumentDeleteRequest(long seq) {
+ if (seq < 1) {
+ throw new IllegalArgumentException("seq must be 1 or greater");
+ }
this.seq = seq;
}
diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/api/DocumentUpdateRequest.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/api/DocumentUpdateRequest.java
index 0c169d645..b4aaf67e4 100644
--- a/nouveau/src/main/java/org/apache/couchdb/nouveau/api/DocumentUpdateRequest.java
+++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/api/DocumentUpdateRequest.java
@@ -15,8 +15,8 @@ package org.apache.couchdb.nouveau.api;
import java.util.Collection;
-import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotEmpty;
+import jakarta.validation.constraints.Positive;
import com.fasterxml.jackson.annotation.JsonProperty;
@@ -25,7 +25,7 @@ import io.dropwizard.jackson.JsonSnakeCase;
@JsonSnakeCase
public class DocumentUpdateRequest {
- @Min(1)
+ @Positive
private long seq;
private String partition;
diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/api/Field.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/api/Field.java
index 06446b7cf..c5c4fe89a 100644
--- a/nouveau/src/main/java/org/apache/couchdb/nouveau/api/Field.java
+++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/api/Field.java
@@ -18,7 +18,7 @@ import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import io.dropwizard.jackson.JsonSnakeCase;
-import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotEmpty;
@JsonSnakeCase
@JsonTypeInfo(
@@ -40,7 +40,7 @@ public abstract class Field {
}
@JsonProperty
- @NotNull
+ @NotEmpty
public String getName() {
return name;
}
diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/api/IndexInfo.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/api/IndexInfo.java
index 66aa18730..eaf71cb01 100644
--- a/nouveau/src/main/java/org/apache/couchdb/nouveau/api/IndexInfo.java
+++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/api/IndexInfo.java
@@ -16,14 +16,18 @@ package org.apache.couchdb.nouveau.api;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.dropwizard.jackson.JsonSnakeCase;
+import jakarta.validation.constraints.PositiveOrZero;
@JsonSnakeCase
public class IndexInfo {
+ @PositiveOrZero
private long updateSeq;
+ @PositiveOrZero
private int numDocs;
+ @PositiveOrZero
private long diskSize;
public IndexInfo() {
diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/api/Range.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/api/Range.java
index cde120b81..599a154ef 100644
--- a/nouveau/src/main/java/org/apache/couchdb/nouveau/api/Range.java
+++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/api/Range.java
@@ -15,14 +15,20 @@ package org.apache.couchdb.nouveau.api;
import com.fasterxml.jackson.annotation.JsonProperty;
+import jakarta.validation.constraints.NotEmpty;
+import jakarta.validation.constraints.NotNull;
+
public class Range<T> {
+ @NotEmpty
private String label;
+ @NotNull
private T min;
private boolean minInclusive = true;
+ @NotNull
private T max;
private boolean maxInclusive = true;
diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/api/SearchRequest.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/api/SearchRequest.java
index 5a8f84fe0..76a6c05ad 100644
--- a/nouveau/src/main/java/org/apache/couchdb/nouveau/api/SearchRequest.java
+++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/api/SearchRequest.java
@@ -20,6 +20,7 @@ import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Positive;
import com.fasterxml.jackson.annotation.JsonProperty;
@@ -33,8 +34,7 @@ public class SearchRequest {
private String partition;
- @Min(1)
- @Max(200)
+ @Positive
private int limit = 25;
private List<@NotEmpty String> sort;
diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/api/SearchResults.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/api/SearchResults.java
index 26bccf788..496414074 100644
--- a/nouveau/src/main/java/org/apache/couchdb/nouveau/api/SearchResults.java
+++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/api/SearchResults.java
@@ -16,8 +16,8 @@ package org.apache.couchdb.nouveau.api;
import java.util.List;
import java.util.Map;
-import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.PositiveOrZero;
import com.fasterxml.jackson.annotation.JsonProperty;
@@ -26,7 +26,7 @@ import io.dropwizard.jackson.JsonSnakeCase;
@JsonSnakeCase
public class SearchResults {
- @Min(0)
+ @PositiveOrZero
private long totalHits;
@NotNull