Skip to content

Commit 52954aa

Browse files
namedgraphclaude
andcommitted
Replace per-method switch with generic proxy invocation
Replaces the verbose switch on HTTP method with a single Invocation.Builder call, proxying all methods rather than whitelisting GET/POST/PUT/PATCH/DELETE. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent a1e3e57 commit 52954aa

File tree

1 file changed

+9
-28
lines changed

1 file changed

+9
-28
lines changed

src/main/java/com/atomgraph/linkeddatahub/server/filter/request/ProxyRequestFilter.java

Lines changed: 9 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,12 @@
3838
import java.util.Optional;
3939
import jakarta.annotation.Priority;
4040
import jakarta.inject.Inject;
41-
import jakarta.ws.rs.HttpMethod;
4241
import jakarta.ws.rs.NotAcceptableException;
4342
import jakarta.ws.rs.NotAllowedException;
4443
import jakarta.ws.rs.Priorities;
4544
import jakarta.ws.rs.ProcessingException;
4645
import jakarta.ws.rs.client.Entity;
46+
import jakarta.ws.rs.client.Invocation;
4747
import jakarta.ws.rs.client.WebTarget;
4848
import jakarta.ws.rs.container.ContainerRequestContext;
4949
import jakarta.ws.rs.container.ContainerRequestFilter;
@@ -151,33 +151,14 @@ else if (agentContext instanceof IDTokenSecurityContext idTokenSecurityContext)
151151

152152
try
153153
{
154-
Response clientResponse = switch (requestContext.getMethod())
155-
{
156-
case HttpMethod.GET ->
157-
target.request(readableMediaTypesArray)
158-
.header(HttpHeaders.USER_AGENT, GraphStoreClient.USER_AGENT)
159-
.get();
160-
case HttpMethod.POST ->
161-
target.request()
162-
.accept(readableMediaTypesArray)
163-
.header(HttpHeaders.USER_AGENT, GraphStoreClient.USER_AGENT)
164-
.post(Entity.entity(requestContext.getEntityStream(), requestContext.getMediaType()));
165-
case "PATCH" ->
166-
target.request()
167-
.accept(readableMediaTypesArray)
168-
.header(HttpHeaders.USER_AGENT, GraphStoreClient.USER_AGENT)
169-
.method("PATCH", Entity.entity(requestContext.getEntityStream(), requestContext.getMediaType()));
170-
case HttpMethod.PUT ->
171-
target.request()
172-
.accept(readableMediaTypesArray)
173-
.header(HttpHeaders.USER_AGENT, GraphStoreClient.USER_AGENT)
174-
.put(Entity.entity(requestContext.getEntityStream(), requestContext.getMediaType()));
175-
case HttpMethod.DELETE ->
176-
target.request()
177-
.header(HttpHeaders.USER_AGENT, GraphStoreClient.USER_AGENT)
178-
.delete();
179-
default -> throw new NotAllowedException(requestContext.getMethod());
180-
};
154+
Invocation.Builder builder = target.request()
155+
.accept(readableMediaTypesArray)
156+
.header(HttpHeaders.USER_AGENT, GraphStoreClient.USER_AGENT);
157+
158+
Response clientResponse = requestContext.hasEntity()
159+
? builder.method(requestContext.getMethod(),
160+
Entity.entity(requestContext.getEntityStream(), requestContext.getMediaType()))
161+
: builder.method(requestContext.getMethod());
181162

182163
try (clientResponse)
183164
{

0 commit comments

Comments
 (0)