Skip to content

81 implement guild template api #90

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 8 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

revert

Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.javadiscord.jdi.internal.api.channel;

import com.javadiscord.jdi.core.models.guild.ForumMediaThreadMessageParam;
import com.javadiscord.jdi.internal.api.DiscordRequest;
import com.javadiscord.jdi.internal.api.DiscordRequestBuilder;

Expand All @@ -13,7 +14,7 @@ public record StartThreadInForumOrMediaChannelRequest(
String name,
Optional<Integer> autoArchiveDuration,
Optional<Integer> rateLimitPerUser,
Object message, // TODO: Create Forum and Media Thread Message Params Object
ForumMediaThreadMessageParam message,
Optional<List<Long>> appliedTags,
Optional<Object> files, // TODO: Create Files object
Optional<String> payloadJson)
Expand Down
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

revert

Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
package com.javadiscord.jdi.internal.api.guild;

import com.javadiscord.jdi.core.models.guild.WidgetStyle;
import com.javadiscord.jdi.internal.api.DiscordRequest;
import com.javadiscord.jdi.internal.api.DiscordRequestBuilder;

import java.util.Optional;

public record GetGuildWidgetImageRequest(long guildId, Optional<String> style // TODO:
// https://discord.com/developers/docs/resources/guild#get-guild-widget-image-widget-style-options
) implements DiscordRequest {
public record GetGuildWidgetImageRequest(long guildId, Optional<WidgetStyle> style)
implements DiscordRequest {

@Override
public DiscordRequestBuilder create() {
DiscordRequestBuilder discordRequestBuilder =
new DiscordRequestBuilder().get().path("/guilds/%s/widget.png".formatted(guildId));

style.ifPresent(val -> discordRequestBuilder.queryParam("style", val));
style.ifPresent(val -> discordRequestBuilder.queryParam("style", val.name().toLowerCase()));

return discordRequestBuilder;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ public record ModifyGuildMemberRequest(
Optional<Boolean> mute,
Optional<Boolean> deafen,
Optional<Long> channelId,
// TODO: figure out how to correctly pass a timestamp to discord via the request
Optional<OffsetDateTime> communicationDisabledUntil,
Optional<Integer> flags)
implements DiscordRequest {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ public DiscordRequestBuilder create() {
// entityMetadata (entity_metadata), scheduledEndTime are all required
if (entityType.isPresent() && entityType.get() == 3) {
if (entityMetadata.isEmpty() || scheduledEndTime.isEmpty()) {
// TODO: replace with custom exceptions when implemented
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

dont remove this todo

throw new IllegalArgumentException(
"When entityType is EXTERNAL, both entityMetadata and scheduledEndTime must"
+ " be provided");
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package com.javadiscord.jdi.internal.api.guild_template;

import com.javadiscord.jdi.internal.api.DiscordRequest;
import com.javadiscord.jdi.internal.api.DiscordRequestBuilder;

import java.util.HashMap;
import java.util.Map;
import java.util.Optional;

public record CreateGuildFromTemplateRequest(
String templateCode, String name, Optional<String> icon) implements DiscordRequest {

@Override
public DiscordRequestBuilder create() {
Map<String, String> body = new HashMap<>();
body.put("name", name);
icon.ifPresent(it -> body.put("icon", it));

return new DiscordRequestBuilder()
.post()
.path("/guilds/templates/%s".formatted(templateCode))
.body(body);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package com.javadiscord.jdi.internal.api.guild_template;

import com.javadiscord.jdi.internal.api.DiscordRequest;
import com.javadiscord.jdi.internal.api.DiscordRequestBuilder;

import java.util.HashMap;
import java.util.Map;
import java.util.Optional;

public record CreateGuildTemplateRequest(long guildId, String name, Optional<String> description)
implements DiscordRequest {

@Override
public DiscordRequestBuilder create() {
Map<String, String> body = new HashMap<>();
body.put("name", name);
description.ifPresent(d -> body.put("description", d));

return new DiscordRequestBuilder()
.post()
.path("/guilds/%s/templates".formatted(guildId))
.body(body);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package com.javadiscord.jdi.internal.api.guild_template;

import com.javadiscord.jdi.internal.api.DiscordRequest;
import com.javadiscord.jdi.internal.api.DiscordRequestBuilder;

public record DeleteGuildTemplateRequest(long guildId, String templateCode)
implements DiscordRequest {

@Override
public DiscordRequestBuilder create() {
return new DiscordRequestBuilder()
.delete()
.path("/guilds/%s/templates/%s".formatted(guildId, templateCode));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.javadiscord.jdi.internal.api.guild_template;

import com.javadiscord.jdi.internal.api.DiscordRequest;
import com.javadiscord.jdi.internal.api.DiscordRequestBuilder;

public record GetGuildTemplateRequest(String templateCode) implements DiscordRequest {

@Override
public DiscordRequestBuilder create() {
return new DiscordRequestBuilder()
.get()
.path("/guilds/templates/%s".formatted(templateCode));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com.javadiscord.jdi.internal.api.guild_template;

import com.javadiscord.jdi.internal.api.DiscordRequest;
import com.javadiscord.jdi.internal.api.DiscordRequestBuilder;

public record GetGuildTemplatesRequest(long guildId) implements DiscordRequest {

@Override
public DiscordRequestBuilder create() {
return new DiscordRequestBuilder().get().path("/guilds/%s/templates".formatted(guildId));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package com.javadiscord.jdi.internal.api.guild_template;

import com.javadiscord.jdi.internal.api.DiscordRequest;
import com.javadiscord.jdi.internal.api.DiscordRequestBuilder;

import java.util.HashMap;
import java.util.Map;
import java.util.Optional;

public record ModifyGuildTemplateRequest(
long guildId, String templateCode, Optional<String> name, Optional<String> description)
implements DiscordRequest {

@Override
public DiscordRequestBuilder create() {
Map<String, String> body = new HashMap<>();
name.ifPresent(n -> body.put("name", n));
description.ifPresent(desc -> body.put("description", desc));

return new DiscordRequestBuilder()
.patch()
.path("/guilds/%s/templates/%s".formatted(guildId, templateCode))
.body(body);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package com.javadiscord.jdi.internal.api.guild_template;

import com.javadiscord.jdi.internal.api.DiscordRequest;
import com.javadiscord.jdi.internal.api.DiscordRequestBuilder;

public record SyncGuildTemplateRequest(long guildId, String templateCode)
implements DiscordRequest {

@Override
public DiscordRequestBuilder create() {
return new DiscordRequestBuilder()
.put()
.path("/guilds/%s/templates/%s".formatted(guildId, templateCode));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,19 +12,26 @@ public record CreateStageRequest(
String topic,
int privacyLevel,
Optional<Boolean> sendStartNotification,
Optional<Long> guildScheduledEventId)
Optional<Long> guildScheduledEventId,
Optional<String> auditLogeReason)
implements DiscordRequest {

@Override
public DiscordRequestBuilder create() {
// TODO: X-Audit-Log-Reason header
Map<String, Object> body = new HashMap<>();
body.put("channel_id", channelId);
body.put("topic", topic);
body.put("privacy_level", privacyLevel);
sendStartNotification.ifPresent(val -> body.put("send_start_notification", val));
guildScheduledEventId.ifPresent(val -> body.put("guild_scheduled_event_id", val));

return new DiscordRequestBuilder().post().path("/stage-instances").body(body);
DiscordRequestBuilder builder = new DiscordRequestBuilder();
builder.post();
builder.path("/stage-instances");
builder.body(body);

auditLogeReason.ifPresent(val -> builder.putHeader("X-Audit-Log-Reason", val));

return builder;
}
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

revert

Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.javadiscord.jdi.core.models.guild;

public enum AllowedMentionType {
ROLES,
USERS,
EVERYONE
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

revert

Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.javadiscord.jdi.core.models.guild;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;

import java.util.List;

@JsonIgnoreProperties(ignoreUnknown = true)
public record AllowedMentions(
@JsonProperty("parse") List<AllowedMentionType> mentionTypes,
@JsonProperty("roles") List<Long> roles,
@JsonProperty("users") List<Long> users,
@JsonProperty("replied_user") boolean repliedUser) {}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

revert

Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package com.javadiscord.jdi.core.models.guild;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.javadiscord.jdi.core.models.message.MessageAttachment;
import com.javadiscord.jdi.core.models.message.embed.Embed;

import java.util.List;

@JsonIgnoreProperties(ignoreUnknown = true)
public record ForumMediaThreadMessageParam(
@JsonProperty("content") String content,
@JsonProperty("embeds") List<Embed> embeds,
@JsonProperty("allowed_mentions") List<AllowedMentions> allowedMentions,
@JsonProperty("components") List<Object> components,
@JsonProperty("sticker_ids") List<Long> stickerIds,
@JsonProperty("attachments") List<MessageAttachment> attachments,
@JsonProperty("flags") int flags) {}
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@

import java.time.OffsetDateTime;

// TODO: finish implementation
// https://discord.com/developers/docs/resources/guild#integration-object
Comment on lines -10 to -11
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is not done add it back

@JsonIgnoreProperties(ignoreUnknown = true)
public record Integration(
@JsonProperty("id") long id,
Expand Down
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

revert

Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package com.javadiscord.jdi.core.models.guild;

public enum WidgetStyle {
SHIELD,
BANNER1,
BANNER2,
BANNER3,
BANNER4,
}