Skip to content
This repository was archived by the owner on Jun 9, 2024. It is now read-only.

Commit dc396f8

Browse files
authored
Merge pull request #699 from nikammerlaan/add-add-guild-member-method
Add method to add user to guild
2 parents c317244 + 14e51dd commit dc396f8

File tree

2 files changed

+62
-0
lines changed

2 files changed

+62
-0
lines changed
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
package com.mewna.catnip.rest.guild;
2+
3+
import com.grack.nanojson.JsonArray;
4+
import com.grack.nanojson.JsonObject;
5+
import com.mewna.catnip.util.JsonConvertible;
6+
import lombok.Getter;
7+
import lombok.Setter;
8+
import lombok.experimental.Accessors;
9+
10+
import javax.annotation.CheckReturnValue;
11+
import javax.annotation.Nonnull;
12+
import java.util.List;
13+
14+
@Accessors(fluent = true)
15+
@Getter
16+
@Setter
17+
public class MemberAddOptions implements JsonConvertible {
18+
19+
private String accessToken;
20+
private String nickname;
21+
private List<String> roles;
22+
private Boolean mute;
23+
private Boolean deaf;
24+
25+
@Nonnull
26+
@CheckReturnValue
27+
public static MemberAddOptions create() {
28+
return new MemberAddOptions();
29+
}
30+
31+
@Nonnull
32+
@Override
33+
public JsonObject toJson() {
34+
final JsonObject object = new JsonObject();
35+
object.put("access_token", accessToken);
36+
if(roles != null) {
37+
final JsonArray array = new JsonArray();
38+
array.addAll(roles);
39+
object.put("roles", array);
40+
}
41+
if(nickname != null) {
42+
object.put("nick", nickname);
43+
}
44+
if(mute != null) {
45+
object.put("mute", mute);
46+
}
47+
if(deaf != null) {
48+
object.put("deaf", deaf);
49+
}
50+
return object;
51+
}
52+
}

src/main/java/com/mewna/catnip/rest/handler/RestGuild.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,16 @@ public RestGuild(final CatnipImpl catnip) {
7575
super(catnip);
7676
}
7777

78+
@Nonnull
79+
@CheckReturnValue
80+
public Observable<Member> addGuildMember(@Nonnull final String guildId, @Nonnull final String memberId,
81+
@Nonnull final MemberAddOptions options) {
82+
return catnip().requester()
83+
.queue(new OutboundRequest(Routes.ADD_GUILD_MEMBER.withMajorParam(guildId),
84+
Map.of("user", memberId), options.toJson()))
85+
.map(payload -> entityBuilder().createMember(guildId, payload.object()));
86+
}
87+
7888
@Nonnull
7989
@CheckReturnValue
8090
public Completable modifyGuildMember(@Nonnull final String guildId, @Nonnull final String memberId,

0 commit comments

Comments
 (0)