diff --git a/application/sissi-modules/debra/pom.xml b/application/sissi-modules/debra/pom.xml
index 36628291..043ebbfe 100644
--- a/application/sissi-modules/debra/pom.xml
+++ b/application/sissi-modules/debra/pom.xml
@@ -10,6 +10,13 @@
dev.sheldan.sissi.application.module
debra
+
+
+ com.google.code.gson
+ gson
+
+
+
diff --git a/application/sissi-modules/debra/src/main/java/dev/sheldan/sissi/module/debra/commands/Donations.java b/application/sissi-modules/debra/src/main/java/dev/sheldan/sissi/module/debra/commands/Donations.java
index 3d51cb9b..95335ed1 100644
--- a/application/sissi-modules/debra/src/main/java/dev/sheldan/sissi/module/debra/commands/Donations.java
+++ b/application/sissi-modules/debra/src/main/java/dev/sheldan/sissi/module/debra/commands/Donations.java
@@ -4,24 +4,32 @@ import dev.sheldan.abstracto.core.command.UtilityModuleDefinition;
import dev.sheldan.abstracto.core.command.condition.AbstractConditionableCommand;
import dev.sheldan.abstracto.core.command.config.CommandConfiguration;
import dev.sheldan.abstracto.core.command.config.HelpInfo;
+import dev.sheldan.abstracto.core.command.config.Parameter;
import dev.sheldan.abstracto.core.command.execution.CommandContext;
import dev.sheldan.abstracto.core.command.execution.CommandResult;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
+import dev.sheldan.abstracto.core.exception.AbstractoRunTimeException;
import dev.sheldan.abstracto.core.interaction.InteractionService;
import dev.sheldan.abstracto.core.interaction.slash.SlashCommandConfig;
+import dev.sheldan.abstracto.core.interaction.slash.parameter.SlashCommandParameterService;
import dev.sheldan.abstracto.core.service.ChannelService;
import dev.sheldan.abstracto.core.templating.model.MessageToSend;
import dev.sheldan.abstracto.core.templating.service.TemplateService;
import dev.sheldan.abstracto.core.utils.FutureUtils;
import dev.sheldan.sissi.module.debra.config.DebraFeatureDefinition;
import dev.sheldan.sissi.module.debra.config.DebraSlashCommandNames;
+import dev.sheldan.sissi.module.debra.converter.DonationConverter;
+import dev.sheldan.sissi.module.debra.model.api.DonationsResponse;
import dev.sheldan.sissi.module.debra.model.commands.DonationsModel;
import dev.sheldan.sissi.module.debra.service.DonationService;
import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
-import java.math.BigDecimal;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
import java.util.concurrent.CompletableFuture;
@@ -30,6 +38,8 @@ public class Donations extends AbstractConditionableCommand {
private static final String DONATIONS_COMMAND_NAME = "donations";
private static final String DONATIONS_RESPONSE_TEMPLATE_KEY = "donations_response";
+ private static final String SELECTION_PARAMETER = "type";
+ private static final String SELECTION_VALUE_PARAMETER = "parametervalue";
@Autowired
private ChannelService channelService;
@@ -43,26 +53,81 @@ public class Donations extends AbstractConditionableCommand {
@Autowired
private TemplateService templateService;
+ @Autowired
+ private DonationConverter donationConverter;
+
+ @Autowired
+ private SlashCommandParameterService slashCommandParameterService;
+
@Override
public CompletableFuture executeAsync(CommandContext commandContext) {
- MessageToSend messageToSend = getDonationMessageToSend();
+ List