Skip to content

Commit d6e90d3

Browse files
committed
Remove http cache from /v1/player endpoint
Affects issues: - Fixed #3009
1 parent 55c13d1 commit d6e90d3

File tree

1 file changed

+1
-29
lines changed

1 file changed

+1
-29
lines changed

Plan/common/src/main/java/com/djrapitops/plan/delivery/webserver/resolver/json/PlayerJSONResolver.java

Lines changed: 1 addition & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,13 @@
1717
package com.djrapitops.plan.delivery.webserver.resolver.json;
1818

1919
import com.djrapitops.plan.delivery.domain.auth.WebPermission;
20-
import com.djrapitops.plan.delivery.formatting.Formatter;
21-
import com.djrapitops.plan.delivery.formatting.Formatters;
2220
import com.djrapitops.plan.delivery.rendering.json.PlayerJSONCreator;
2321
import com.djrapitops.plan.delivery.web.resolver.MimeType;
2422
import com.djrapitops.plan.delivery.web.resolver.Resolver;
2523
import com.djrapitops.plan.delivery.web.resolver.Response;
2624
import com.djrapitops.plan.delivery.web.resolver.exception.BadRequestException;
2725
import com.djrapitops.plan.delivery.web.resolver.request.Request;
2826
import com.djrapitops.plan.delivery.web.resolver.request.WebUser;
29-
import com.djrapitops.plan.delivery.webserver.CacheStrategy;
3027
import com.djrapitops.plan.identification.Identifiers;
3128
import io.swagger.v3.oas.annotations.Operation;
3229
import io.swagger.v3.oas.annotations.Parameter;
@@ -37,7 +34,6 @@
3734
import io.swagger.v3.oas.annotations.responses.ApiResponse;
3835
import jakarta.ws.rs.GET;
3936
import jakarta.ws.rs.Path;
40-
import org.eclipse.jetty.http.HttpHeader;
4137

4238
import javax.inject.Inject;
4339
import javax.inject.Singleton;
@@ -52,14 +48,11 @@ public class PlayerJSONResolver implements Resolver {
5248

5349
private final Identifiers identifiers;
5450
private final PlayerJSONCreator jsonCreator;
55-
private final Formatter<Long> httpLastModifiedFormatter;
5651

5752
@Inject
58-
public PlayerJSONResolver(Identifiers identifiers, Formatters formatters, PlayerJSONCreator jsonCreator) {
53+
public PlayerJSONResolver(Identifiers identifiers, PlayerJSONCreator jsonCreator) {
5954
this.identifiers = identifiers;
6055
this.jsonCreator = jsonCreator;
61-
62-
httpLastModifiedFormatter = formatters.httpLastModifiedLong();
6356
}
6457

6558
@Override
@@ -99,34 +92,13 @@ public Optional<Response> resolve(Request request) {
9992
private Response getResponse(Request request) {
10093
UUID playerUUID = identifiers.getPlayerUUID(request); // Can throw BadRequestException
10194

102-
// User needs to be taken into account due to permissions.
103-
String userSpecific = request.getUser().map(WebUser::getUsername).orElse("");
104-
Optional<String> etag = Identifiers.getStringEtag(request);
105-
if (etag.isPresent()) {
106-
long lastSeen = jsonCreator.getLastSeen(playerUUID);
107-
if (etag.get().equals(lastSeen + userSpecific)) {
108-
return Response.builder()
109-
.setStatus(304)
110-
.setContent(new byte[0])
111-
.build();
112-
}
113-
}
114-
11595
Predicate<WebPermission> hasPermission = request.getUser()
11696
.map(user -> (Predicate<WebPermission>) user::hasPermission)
11797
.orElse(permission -> true); // No user means auth disabled inside resolve
11898
Map<String, Object> jsonAsMap = jsonCreator.createJSONAsMap(playerUUID, hasPermission);
119-
long lastSeenRawValue = Optional.ofNullable(jsonAsMap.get("info"))
120-
.map(Map.class::cast)
121-
.map(info -> info.get("last_seen_raw_value"))
122-
.map(Long.class::cast)
123-
.orElseGet(System::currentTimeMillis);
12499
return Response.builder()
125100
.setMimeType(MimeType.JSON)
126101
.setJSONContent(jsonAsMap)
127-
.setHeader(HttpHeader.CACHE_CONTROL.asString(), CacheStrategy.CHECK_ETAG_USER_SPECIFIC)
128-
.setHeader(HttpHeader.LAST_MODIFIED.asString(), httpLastModifiedFormatter.apply(lastSeenRawValue))
129-
.setHeader(HttpHeader.ETAG.asString(), lastSeenRawValue + userSpecific)
130102
.build();
131103
}
132104
}

0 commit comments

Comments
 (0)