#How hard would a migration to Spring be?

1 messages · Page 1 of 1 (latest)

craggy cave
#

currently i have a half abstracted system that looks like this:

        registerPathHandler("/v1/lobbies/advertise", "POST", (bytes, requestURI, query, path, discordData) -> {
            AuthDetails authDetails = getAuthDetails(bytes);
            if (authDetails == null) {
                return Response.error("403 Forbidden", 403);
            } else {
                String s = new String(bytes);
                JsonObject object = new Gson().fromJson(s, JsonObject.class);
                NewAdInfoObj adInfoObj;
                try {
                    adInfoObj = NewAdInfoObj.CODEC.parse(JsonOps.INSTANCE, object).resultOrPartial(System.err::println).orElseThrow();
                } catch (Throwable t) {
                    return Response.error("Bad request", 400);
                }

                String ipAddress = adInfoObj.ip();
                if (ipAddress.matches("^((25[0-5]|(2[0-4]|1\\d|[1-9]|)\\d)\\.?\\b){4}$")) {
                    return Lobbies.advertiseServer(authDetails.uuid(), ipAddress, adInfoObj.port(), adInfoObj.minecraftVersion(), adInfoObj.minimegaVersion(), adInfoObj.minecraftProtocolVersion(), adInfoObj.minimegaProtocolVersion(), adInfoObj.legacy4j(), adInfoObj._public(), adInfoObj.minigame(), adInfoObj.mode(), adInfoObj.playersOnline(), adInfoObj.maxPlayers());
                } else {
                    return Response.error("Malformed IP address", 400);
                }
            }
        });
        registerPathHandler("/v1/playable", "POST", (bytes, requestURI, query, path, discordData) -> {
            String s = new String(bytes);
            try {
                int i = Integer.parseInt(s);
                // 53 -> 0.0.1-alpha.17.3
                // 54 -> 0.0.1-alpha.17.4
                // 55 -> 0.0.1-alpha.17.5
                // 56 -> unreleased version
                // 57 -> unreleased version
                return Response.jsonSuccess(new SupportedObj(i == 53 || i == 54 || i == 55 || i == 56 || i == 57));
            } catch (NumberFormatException e) {
                return Response.error("Malformed protocol version", 400);
            }
        });
        registerPathHandler("/v1/auth/player-info", "POST", (bytes, requestURI, query, path, discordData) -> {
            AuthDetails authDetails = getAuthDetails(bytes);
            if (authDetails == null) {
                return Response.error("403 Forbidden", 403);
            } else {
                String s = new String(bytes);
                JsonObject object = new Gson().fromJson(s, JsonObject.class);
                C2SPlayerInfoObj playerInfoObj;
                try {
                    playerInfoObj = C2SPlayerInfoObj.CODEC.parse(JsonOps.INSTANCE, object).resultOrPartial(System.err::println).orElseThrow();
                } catch (Throwable t) {
                    return Response.error("Bad request", 400);
                }

                return Authentication.fetchPlayerInfo(playerInfoObj.uuid());
            }
        });

how hard would it be to switch to using spring? I am also doing authentication as part of the request body

winter skiffBOT
#

<@&1004656351647117403> please have a look, thanks.