Skip to content

Commit 242fbc6

Browse files
authored
[CHA-0] Add getter methods, equals and hashCode to most request classes for better testability (#205)
* add getters and equals and hashCode to most request classes for better testablity also fixed getter missing in javadoc * update deprecated code * add @Getter and @EqualsAndHashCode to request classes * remove callSuper from request objects
1 parent 4dcd6e0 commit 242fbc6

29 files changed

+347
-73
lines changed

build.gradle

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ plugins {
44
id 'com.diffplug.spotless' version '6.25.0'
55
id 'org.barfuin.gradle.jacocolog' version '3.1.0'
66
id 'com.github.johnrengelman.shadow' version '8.1.1'
7+
id 'io.freefair.lombok' version '8.4'
78
}
89

910
group = 'io.getstream'
@@ -39,12 +40,7 @@ dependencies {
3940
runtimeOnly 'io.jsonwebtoken:jjwt-jackson:0.12.5'
4041
testImplementation 'org.junit.jupiter:junit-jupiter-engine:5.8.2'
4142
testImplementation 'org.apache.commons:commons-lang3:3.12.0'
42-
compileOnly 'org.projectlombok:lombok:1.18.32'
43-
annotationProcessor 'org.projectlombok:lombok:1.18.32'
4443
compileOnly 'org.jetbrains:annotations:24.1.0'
45-
46-
testCompileOnly 'org.projectlombok:lombok:1.18.32'
47-
testAnnotationProcessor 'org.projectlombok:lombok:1.18.32'
4844
}
4945

5046
def localProperties = new Properties()
@@ -110,4 +106,11 @@ shadowJar {
110106
mergeServiceFiles()
111107
}
112108

109+
// Configure javadoc to use delomboked sources
110+
javadoc {
111+
dependsOn delombok
112+
source = delombok.target
113+
options.addStringOption('Xdoclint:none', '-quiet')
114+
}
115+
113116
apply from: "publish.gradle"

src/main/java/io/getstream/chat/java/models/App.java

Lines changed: 34 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
import java.security.InvalidKeyException;
2828
import java.security.Key;
2929
import java.security.NoSuchAlgorithmException;
30-
import java.util.ArrayList;
3130
import java.util.Date;
3231
import java.util.List;
3332
import java.util.Map;
@@ -586,7 +585,8 @@ public static class DeviceError {
586585
}
587586

588587
@Builder
589-
@Setter
588+
@Getter
589+
@EqualsAndHashCode
590590
public static class AsyncModerationCallback {
591591
@Nullable
592592
@JsonProperty("mode")
@@ -598,7 +598,8 @@ public static class AsyncModerationCallback {
598598
}
599599

600600
@Builder
601-
@Setter
601+
@Getter
602+
@EqualsAndHashCode
602603
public static class AsyncModerationConfigRequestObject {
603604
@Nullable
604605
@JsonProperty("callback")
@@ -610,7 +611,8 @@ public static class AsyncModerationConfigRequestObject {
610611
}
611612

612613
@Builder
613-
@Setter
614+
@Getter
615+
@EqualsAndHashCode
614616
public static class FileUploadConfigRequestObject {
615617

616618
@Nullable
@@ -641,7 +643,8 @@ public static FileUploadConfigRequestObject buildFrom(
641643
}
642644

643645
@Builder
644-
@Setter
646+
@Getter
647+
@EqualsAndHashCode
645648
public static class APNConfigRequestObject {
646649
@Nullable
647650
@JsonProperty("development")
@@ -686,9 +689,9 @@ public static APNConfigRequestObject buildFrom(@Nullable APNConfig aPNConfig) {
686689
}
687690

688691
@Builder
689-
@Setter
692+
@Getter
693+
@EqualsAndHashCode
690694
public static class FirebaseConfigRequestObject {
691-
692695
@Nullable
693696
@JsonProperty("server_key")
694697
private String serverKey;
@@ -716,7 +719,8 @@ public static FirebaseConfigRequestObject buildFrom(@Nullable FirebaseConfig fir
716719
}
717720

718721
@Builder
719-
@Setter
722+
@Getter
723+
@EqualsAndHashCode
720724
public static class HuaweiConfigRequestObject {
721725
@Nullable
722726
@JsonProperty("id")
@@ -728,7 +732,8 @@ public static class HuaweiConfigRequestObject {
728732
}
729733

730734
@Builder
731-
@Setter
735+
@Getter
736+
@EqualsAndHashCode
732737
public static class PushConfigRequestObject {
733738
@Nullable
734739
@JsonProperty("version")
@@ -758,6 +763,8 @@ protected Call<ListPushProviderResponse> generateCall(Client client) {
758763
}
759764
}
760765

766+
@Getter
767+
@EqualsAndHashCode
761768
public static class DeletePushProviderRequest extends StreamRequest<StreamResponseObject> {
762769
private String providerType;
763770
private String name;
@@ -777,6 +784,8 @@ protected Call<StreamResponseObject> generateCall(Client client) {
777784
builderClassName = "AppUpdateRequest",
778785
builderMethodName = "",
779786
buildMethodName = "internalBuild")
787+
@Getter
788+
@EqualsAndHashCode
780789
public static class AppUpdateRequestData {
781790
@Nullable
782791
@JsonProperty("disable_auth_checks")
@@ -965,6 +974,11 @@ public boolean equals(Object o) {
965974
}
966975
}
967976

977+
@Builder
978+
@Getter
979+
@EqualsAndHashCode
980+
@NoArgsConstructor
981+
@AllArgsConstructor
968982
public static class AppGetRateLimitsRequest extends StreamRequest<AppGetRateLimitsResponse> {
969983
@Nullable private Boolean serverSide;
970984

@@ -974,43 +988,7 @@ public static class AppGetRateLimitsRequest extends StreamRequest<AppGetRateLimi
974988

975989
@Nullable private Boolean web;
976990

977-
@Nullable private List<String> endpoints = new ArrayList<>();
978-
979-
@NotNull
980-
public AppGetRateLimitsRequest serverSide(@NotNull Boolean serverSide) {
981-
this.serverSide = serverSide;
982-
return this;
983-
}
984-
985-
@NotNull
986-
public AppGetRateLimitsRequest android(@NotNull Boolean android) {
987-
this.android = android;
988-
return this;
989-
}
990-
991-
@NotNull
992-
public AppGetRateLimitsRequest ios(@NotNull Boolean ios) {
993-
this.ios = ios;
994-
return this;
995-
}
996-
997-
@NotNull
998-
public AppGetRateLimitsRequest web(@NotNull Boolean web) {
999-
this.web = web;
1000-
return this;
1001-
}
1002-
1003-
@NotNull
1004-
public AppGetRateLimitsRequest endpoints(@NotNull List<String> endpoints) {
1005-
this.endpoints = endpoints;
1006-
return this;
1007-
}
1008-
1009-
@NotNull
1010-
public AppGetRateLimitsRequest endpoint(@NotNull String endpoint) {
1011-
this.endpoints.add(endpoint);
1012-
return this;
1013-
}
991+
@Singular @Nullable private List<String> endpoints;
1014992

1015993
@Override
1016994
protected Call<AppGetRateLimitsResponse> generateCall(Client client) {
@@ -1029,6 +1007,8 @@ protected Call<AppGetRateLimitsResponse> generateCall(Client client) {
10291007
builderClassName = "AppCheckSqsRequest",
10301008
builderMethodName = "",
10311009
buildMethodName = "internalBuild")
1010+
@Getter
1011+
@EqualsAndHashCode
10321012
public static class AppCheckSqsRequestData {
10331013
@Nullable
10341014
@JsonProperty("sqs_url")
@@ -1054,6 +1034,8 @@ protected Call<AppCheckSqsResponse> generateCall(Client client) {
10541034
builderClassName = "AppCheckSnsRequest",
10551035
builderMethodName = "",
10561036
buildMethodName = "internalBuild")
1037+
@Getter
1038+
@EqualsAndHashCode
10571039
public static class AppCheckSnsRequestData {
10581040
@Nullable
10591041
@JsonProperty("sns_topic_arn")
@@ -1079,6 +1061,8 @@ protected Call<AppCheckSnsResponse> generateCall(Client client) {
10791061
builderClassName = "AppCheckPushRequest",
10801062
builderMethodName = "",
10811063
buildMethodName = "internalBuild")
1064+
@Getter
1065+
@EqualsAndHashCode
10821066
public static class AppCheckPushRequestData {
10831067
@Nullable
10841068
@JsonProperty("message_id")
@@ -1125,6 +1109,8 @@ protected Call<AppCheckPushResponse> generateCall(Client client) {
11251109
}
11261110

11271111
@AllArgsConstructor
1112+
@Getter
1113+
@EqualsAndHashCode
11281114
public static class AppRevokeTokensRequest extends StreamRequest<StreamResponseObject> {
11291115
@Nullable private Date revokeTokensIssuedBefore;
11301116

@@ -1212,6 +1198,8 @@ public static class PushProvider {
12121198
builderClassName = "PushProviderRequest",
12131199
builderMethodName = "",
12141200
buildMethodName = "internalBuild")
1201+
@Getter
1202+
@EqualsAndHashCode
12151203
public static class PushProviderRequestData {
12161204
@JsonProperty("push_provider")
12171205
private PushProvider pushProvider;

src/main/java/io/getstream/chat/java/models/BlockUser.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ public class BlockUser {
1919
builderClassName = "BlockUserRequest",
2020
builderMethodName = "",
2121
buildMethodName = "internalBuild")
22+
@Getter
23+
@EqualsAndHashCode
2224
public static class BlockUserRequestData {
2325
@NotNull
2426
@JsonProperty("blocked_user_id")
@@ -41,6 +43,8 @@ protected Call<BlockUserResponse> generateCall(Client client) {
4143
builderClassName = "UnblockUserRequest",
4244
builderMethodName = "",
4345
buildMethodName = "internalBuild")
46+
@Getter
47+
@EqualsAndHashCode
4448
public static class UnblockUserRequestData {
4549
@NotNull
4650
@JsonProperty("blocked_user_id")
@@ -119,14 +123,14 @@ public static class BlockedUserResponse {
119123
builderClassName = "GetBlockedUsersRequest",
120124
builderMethodName = "",
121125
buildMethodName = "internalBuild")
126+
@Getter
127+
@EqualsAndHashCode
122128
public static class GetBlockedUsersRequestData {
123129
@NotNull
124130
@JsonProperty("user_id")
125131
private String blockedByUserID;
126132

127133
public static class GetBlockedUsersRequest extends StreamRequest<GetBlockedUsersResponse> {
128-
private String blockedByUserID;
129-
130134
public GetBlockedUsersRequest(String blockedByUserID) {
131135
this.blockedByUserID = blockedByUserID;
132136
}

src/main/java/io/getstream/chat/java/models/Blocklist.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ public class Blocklist {
3737
builderClassName = "BlocklistCreateRequest",
3838
builderMethodName = "",
3939
buildMethodName = "internalBuild")
40+
@Getter
41+
@EqualsAndHashCode
4042
public static class BlocklistCreateRequestData {
4143
@Nullable
4244
@JsonProperty("name")
@@ -55,6 +57,8 @@ protected Call<StreamResponseObject> generateCall(Client client) {
5557
}
5658

5759
@RequiredArgsConstructor
60+
@Getter
61+
@EqualsAndHashCode
5862
public static class BlocklistGetRequest extends StreamRequest<BlocklistGetResponse> {
5963
@NotNull private String name;
6064

@@ -68,6 +72,8 @@ protected Call<BlocklistGetResponse> generateCall(Client client) {
6872
builderClassName = "BlocklistUpdateRequest",
6973
builderMethodName = "",
7074
buildMethodName = "internalBuild")
75+
@Getter
76+
@EqualsAndHashCode
7177
public static class BlocklistUpdateRequestData {
7278
@Nullable
7379
@JsonProperty("words")
@@ -88,6 +94,8 @@ protected Call<StreamResponseObject> generateCall(Client client) {
8894
}
8995

9096
@RequiredArgsConstructor
97+
@Getter
98+
@EqualsAndHashCode
9199
public static class BlocklistDeleteRequest extends StreamRequest<StreamResponseObject> {
92100
@NotNull private String name;
93101

0 commit comments

Comments
 (0)