feat: internal API class for Guild Configs
Some checks failed
Java CI with Gradle / build (push) Has been cancelled

This commit is contained in:
Alyx D Batte 2025-10-15 16:35:39 -04:00
parent a915138828
commit 4d8d68af70

View File

@ -0,0 +1,59 @@
package dev.salmonllama.fsbot.endpoints.fashionscape.guildconfig;
import dev.salmonllama.fsbot.config.EnvManager;
import dev.salmonllama.fsbot.endpoints.ApiConnection;
import okhttp3.RequestBody;
import java.io.IOException;
import java.util.HashMap;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.CompletionException;
public class GuildConfigApi {
private static final String GUILD_CONFIG_URI = EnvManager.API_URI + "/guildconfig";
private final ApiConnection conn;
public GuildConfigApi() {
conn = new ApiConnection(GUILD_CONFIG_URI);
}
public CompletableFuture<Void> create(GuildConfig cfg) {
RequestBody body = ApiConnection.marshall(cfg);
return CompletableFuture.allOf(conn.post(body));
}
public CompletableFuture<GuildConfig> get(String guildId) {
HashMap<String, String> params = new HashMap<>();
params.put("guildid", guildId);
return conn.get(params).thenApplyAsync(response -> {
if (response.body() == null) {
throw new CompletionException(new RuntimeException("No response"));
}
try {
return ApiConnection.unmarshall(response.body(), GuildConfig.class);
} catch (IOException e) {
throw new CompletionException(e);
}
});
}
public CompletableFuture<Void> update(GuildConfig cfg) {
HashMap<String, String> params = new HashMap<>();
params.put("guildid", cfg.getGuildId());
RequestBody body = ApiConnection.marshall(cfg);
return CompletableFuture.allOf(conn.put(params, body));
}
public CompletableFuture<Void> delete(String guildId) {
HashMap<String, String> params = new HashMap<>();
params.put("guildid", guildId);
return CompletableFuture.allOf(conn.delete(params));
}
}