Skip to content

Commit c657c38

Browse files
authored
Refactoring + Repackage (#80)
* Repackaging and refactoring * Added Update Application Role Connection Metadata API * Refactoring packages in tests to align with their counterpart code * Formatting * Added unit tests * Created unit test for `ThreadMember` and updated timestamps to `yyyy-MM-dd'T'HH:mm:ssX` * Added DiscordImageUtil
1 parent a495ea0 commit c657c38

File tree

184 files changed

+430
-279
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

184 files changed

+430
-279
lines changed

build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ dependencies {
1919
implementation 'com.fasterxml.jackson.core:jackson-core:2.17.0'
2020
implementation 'com.fasterxml.jackson.core:jackson-annotations:2.17.0'
2121
implementation 'com.fasterxml.jackson.core:jackson-databind:2.17.0'
22+
implementation 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.17.0'
2223

2324
implementation 'com.github.mizosoft.methanol:methanol:1.7.0'
2425

mocks/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ By leveraging either an OpenAPI spec or crafting scenarios, Imposter empowers de
44

55
## Leveraging Discord's OpenAPI Spec
66
Within this repository, we use the capabilities of Imposter by utilizing Discord's OpenAPI spec to automatically generate test endpoints.
7-
These endpoints serve as assets for composing integration tests for our bot.
7+
These endpoints serve as assets for composing integration tests for our framework.
88

99
## Getting Started
1010

@@ -28,7 +28,7 @@ imposter up
2828

2929
This will start a mock server at `http://localhost:8080`
3030

31-
Test everything is working by using a REST client such as Postman and make a call to `http://localhost:8080//api/v10/oauth2/applications/@me`.
31+
Test everything is working by using a REST client such as Postman and make a call to `http://localhost:8080/api/v10/oauth2/applications/@me`.
3232
You should see:
3333
```json
3434
{

src/main/java/com/javadiscord/jdi/core/Discord.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,11 @@ public class Discord {
3131
private static final Executor EXECUTOR = Executors.newCachedThreadPool();
3232
private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
3333
private static final String WEBSITE = "https://javadiscord.com/";
34+
3435
private static final String BASE_URL = System.getProperty("DISCORD_BASE_URL") != null
3536
? System.getProperty("DISCORD_BASE_URL")
3637
: "https://discord.com/api";
38+
3739
private final String botToken;
3840
private final IdentifyRequest identifyRequest;
3941
private final DiscordRequestDispatcher discordRequestDispatcher;

src/main/java/com/javadiscord/jdi/core/cache/Cache.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public Map<Long, CacheInterface> getCachedGuilds() {
2929
return cache;
3030
}
3131

32-
@SuppressWarnings("unchecked")
32+
@SuppressWarnings({ "unchecked", "rawtypes" })
3333
public void cacheGuild(Guild guild) {
3434
CacheInterface cacheInterface = getCacheForType();
3535
cacheInterface.add(guild.id(), guild);

src/main/java/com/javadiscord/jdi/core/processor/ClassFileUtil.java

Lines changed: 17 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -25,26 +25,8 @@ public static List<File> getClassesInClassPath() {
2525
return classes;
2626
}
2727

28-
private static List<File> getClasses(File file) {
29-
List<File> classes = new ArrayList<>();
30-
if (file.isDirectory()) {
31-
File[] files = file.listFiles();
32-
if (files != null) {
33-
for (File f : files) {
34-
classes.addAll(getClasses(f));
35-
}
36-
}
37-
} else {
38-
if (file.getName().endsWith(".class")) {
39-
classes.add(file);
40-
}
41-
}
42-
return classes;
43-
}
44-
4528
public static String getClassName(File file) throws IOException {
4629
String className = null;
47-
4830
try (
4931
FileInputStream fis = new FileInputStream(file);
5032
DataInputStream dis = new DataInputStream(fis)
@@ -63,10 +45,26 @@ public static String getClassName(File file) throws IOException {
6345
className = extractClassName(dis);
6446
}
6547
}
66-
6748
return className;
6849
}
6950

51+
private static List<File> getClasses(File file) {
52+
List<File> classes = new ArrayList<>();
53+
if (file.isDirectory()) {
54+
File[] files = file.listFiles();
55+
if (files != null) {
56+
for (File f : files) {
57+
classes.addAll(getClasses(f));
58+
}
59+
}
60+
} else {
61+
if (file.getName().endsWith(".class")) {
62+
classes.add(file);
63+
}
64+
}
65+
return classes;
66+
}
67+
7068
private static boolean isJarFile(File file) {
7169
return file.getName().toLowerCase().endsWith(".jar");
7270
}

src/main/java/com/javadiscord/jdi/internal/api/DiscordRequestBuilder.java

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,6 @@ public DiscordRequestBuilder putHeader(String name, Object value) {
2424
return this;
2525
}
2626

27-
public DiscordRequestBuilder putHeaders(Map<String, Object> headers) {
28-
this.headers.putAll(headers);
29-
return this;
30-
}
31-
3227
public DiscordRequestBuilder path(String path) {
3328
this.path = path;
3429
return this;
@@ -39,11 +34,6 @@ public DiscordRequestBuilder queryParam(String name, Object value) {
3934
return this;
4035
}
4136

42-
public DiscordRequestBuilder queryParams(Map<String, Object> queryParameters) {
43-
this.queryParameters.putAll(queryParameters);
44-
return this;
45-
}
46-
4737
/**
4838
* @param payload Commonly represented as an Map<String, Object>
4939
*/
Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,23 @@
1-
package com.javadiscord.jdi.internal.api.impl.application;
1+
package com.javadiscord.jdi.internal.api.application;
22

3+
import java.util.List;
34
import java.util.Map;
45

56
import com.javadiscord.jdi.internal.api.DiscordRequest;
67
import com.javadiscord.jdi.internal.api.DiscordRequestBuilder;
8+
import com.javadiscord.jdi.internal.models.application.ApplicationInstallParams;
79

810
public record EditCurrentApplicationRequest(
911
String customInstallUrl,
1012
String description,
1113
String roleConnectionsVerificationUrl,
12-
Object installParams, // TODO: Create Install Params object
14+
ApplicationInstallParams installParams,
1315
Map<String, Object> integrationTypesConfig,
1416
int flags,
15-
String icon, // Image data, set as String for now
16-
String coverImage, // Image data, set as String for now
17+
String icon,
18+
String coverImage,
1719
String interactionsEndpointUrl,
18-
String[] tags
20+
List<String> tags
1921
)
2022
implements DiscordRequest {
2123

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.javadiscord.jdi.internal.api.impl.application;
1+
package com.javadiscord.jdi.internal.api.application;
22

33
import com.javadiscord.jdi.internal.api.DiscordRequest;
44
import com.javadiscord.jdi.internal.api.DiscordRequestBuilder;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.javadiscord.jdi.internal.api.application_role_connection_metadata;
2+
3+
import com.javadiscord.jdi.internal.api.DiscordRequest;
4+
import com.javadiscord.jdi.internal.api.DiscordRequestBuilder;
5+
6+
public record GetApplicationRoleConnectionMetadataRecords(long applicationId) implements DiscordRequest {
7+
8+
@Override
9+
public DiscordRequestBuilder create() {
10+
return new DiscordRequestBuilder()
11+
.path("/applications/%s/role-connections/metadata".formatted(applicationId))
12+
.get();
13+
}
14+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package com.javadiscord.jdi.internal.api.application_role_connection_metadata;
2+
3+
import com.javadiscord.jdi.internal.api.DiscordRequest;
4+
import com.javadiscord.jdi.internal.api.DiscordRequestBuilder;
5+
import com.javadiscord.jdi.internal.models.application.ApplicationRoleConnectionMetadata;
6+
7+
public record UpdateApplicationRoleConnectionMetadataRecords(
8+
long applicationId,
9+
ApplicationRoleConnectionMetadata applicationRoleConnectionMetadata
10+
)
11+
implements DiscordRequest {
12+
13+
@Override
14+
public DiscordRequestBuilder create() {
15+
return new DiscordRequestBuilder()
16+
.path("/applications/%s/role-connections/metadata".formatted(applicationId))
17+
.put()
18+
.body(applicationRoleConnectionMetadata);
19+
}
20+
}

0 commit comments

Comments
 (0)