diff --git a/models/src/main/java/com/javadiscord/jdi/core/models/guild/Integration.java b/models/src/main/java/com/javadiscord/jdi/core/models/guild/Integration.java index 9b1b7e42..f4542c3b 100644 --- a/models/src/main/java/com/javadiscord/jdi/core/models/guild/Integration.java +++ b/models/src/main/java/com/javadiscord/jdi/core/models/guild/Integration.java @@ -1,6 +1,7 @@ package com.javadiscord.jdi.core.models.guild; import java.time.OffsetDateTime; +import java.util.List; import com.javadiscord.jdi.core.models.user.User; @@ -8,13 +9,11 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; -// TODO: finish implementation -// https://discord.com/developers/docs/resources/guild#integration-object @JsonIgnoreProperties(ignoreUnknown = true) public record Integration( @JsonProperty("id") long id, @JsonProperty("name") String name, - @JsonProperty("type") String type, + @JsonProperty("type") IntegrationType type, @JsonProperty("enabled") boolean enabled, @JsonProperty("syncing") boolean syncing, @JsonProperty("role_id") long roleId, @@ -28,5 +27,6 @@ public record Integration( ) OffsetDateTime syncedAt, @JsonProperty("subscriber_count") int subscriberCount, @JsonProperty("revoked") boolean revoked, - @JsonProperty("application") IntegrationApplication application + @JsonProperty("application") IntegrationApplication application, + @JsonProperty("scopes") List scopes ) {} diff --git a/models/src/main/java/com/javadiscord/jdi/core/models/guild/IntegrationType.java b/models/src/main/java/com/javadiscord/jdi/core/models/guild/IntegrationType.java new file mode 100644 index 00000000..e13527f0 --- /dev/null +++ b/models/src/main/java/com/javadiscord/jdi/core/models/guild/IntegrationType.java @@ -0,0 +1,21 @@ +package com.javadiscord.jdi.core.models.guild; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +public enum IntegrationType { + TWITCH, + YOUTUBE, + DISCORD, + GUILD_SUBSCRIPTION; + + @JsonCreator + public static IntegrationType forValue(String value) { + return IntegrationType.valueOf(value.toUpperCase()); + } + + @JsonValue + public String toValue() { + return name().toLowerCase(); + } +}