Skip to content

Commit bd3a1de

Browse files
committedFeb 8, 2024
Merge branch 'develop'
2 parents e87084a + 9a248a1 commit bd3a1de

File tree

3 files changed

+26
-6
lines changed

3 files changed

+26
-6
lines changed
 

‎pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
<modelVersion>4.0.0</modelVersion>
1717
<artifactId>http-server</artifactId>
18-
<version>0.3.11</version>
18+
<version>0.3.12</version>
1919
<name>HttpServer</name>
2020
<packaging>jar</packaging>
2121

‎src/main/java/info/unterrainer/commons/httpserver/HandlerUtils.java

+21
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
import java.time.LocalDateTime;
44
import java.time.format.DateTimeFormatter;
55
import java.time.format.DateTimeParseException;
6+
import java.util.ArrayList;
7+
import java.util.List;
68
import java.util.Set;
79

810
import info.unterrainer.commons.httpserver.daos.CoreDao;
@@ -156,6 +158,25 @@ public int convertToInt(final String s) {
156158
}
157159
}
158160

161+
public <T extends Enum<T>> List<T> convertToEnumList(final String[] o, final Class<T> enumType) {
162+
List<T> result = new ArrayList<>();
163+
try {
164+
for (String s : o)
165+
result.add(Enum.valueOf(enumType, s));
166+
} catch (IllegalArgumentException e) {
167+
throw new BadRequestException("Parameter has to be a comma-separated list of a valid enum type.");
168+
}
169+
return result;
170+
}
171+
172+
public <T extends Enum<T>> List<T> getQueryParamAsEnumList(final Context ctx, final String name,
173+
final Class<T> enumType, final List<T> defaultValue) {
174+
String paramString = getQueryParamAsString(ctx, name);
175+
if (paramString == null)
176+
return defaultValue;
177+
return convertToEnumList(paramString.split(","), enumType);
178+
}
179+
159180
public String getQueryParamAsString(final Context ctx, final String name) {
160181
return getQueryParamAsString(ctx, name, true, null);
161182
}

‎src/main/java/info/unterrainer/commons/httpserver/daos/ListQuery.java

+4-5
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,14 @@
44
import java.util.List;
55
import java.util.function.Function;
66

7+
import info.unterrainer.commons.httpserver.jsons.ListJson;
8+
import info.unterrainer.commons.rdbutils.Transactions;
9+
import info.unterrainer.commons.rdbutils.entities.BasicJpa;
710
import jakarta.persistence.EntityManager;
811
import jakarta.persistence.EntityManagerFactory;
912
import jakarta.persistence.NoResultException;
1013
import jakarta.persistence.NonUniqueResultException;
1114
import jakarta.persistence.TypedQuery;
12-
13-
import info.unterrainer.commons.httpserver.jsons.ListJson;
14-
import info.unterrainer.commons.rdbutils.Transactions;
15-
import info.unterrainer.commons.rdbutils.entities.BasicJpa;
1615
import lombok.AccessLevel;
1716
import lombok.RequiredArgsConstructor;
1817

@@ -59,7 +58,7 @@ public ListJson<T> getListJson(final long offset, final long size) {
5958
}
6059

6160
/**
62-
* Gets the first row this query returns.
61+
* Gets the first row this query returns or null, if no row was returned at all.
6362
*
6463
* @return the result-row as a JPA
6564
*/

0 commit comments

Comments
 (0)