Skip to content

Commit 13aa4f7

Browse files
committed
chore: simplify error reasons to use ErrorMessage enum
1 parent c3f575a commit 13aa4f7

File tree

3 files changed

+32
-14
lines changed

3 files changed

+32
-14
lines changed

src/main/java/com/devcycle/sdk/server/cloud/api/DevCycleCloudClient.java

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -117,13 +117,11 @@ public <T> Variable<T> variable(DevCycleUser user, String key, T defaultValue) {
117117
validateUser(user);
118118

119119
if (key == null || key.equals("")) {
120-
ErrorResponse errorResponse = new ErrorResponse(500, "Missing parameter: key", null);
121-
throw new IllegalArgumentException("Missing parameter: key");
120+
throw new IllegalArgumentException(ErrorResponse.ErrorMessage.MISSING_PARAMETER.getMessage("key"));
122121
}
123122

124123
if (defaultValue == null) {
125-
ErrorResponse errorResponse = new ErrorResponse(500, "Missing parameter: defaultValue", null);
126-
throw new IllegalArgumentException("Missing parameter: defaultValue");
124+
throw new IllegalArgumentException(ErrorResponse.ErrorMessage.MISSING_PARAMETER.getMessage("defaultValue"));
127125
}
128126

129127
TypeEnum variableType = TypeEnum.fromClass(defaultValue.getClass());
@@ -145,7 +143,7 @@ public <T> Variable<T> variable(DevCycleUser user, String key, T defaultValue) {
145143
Call<Variable> response = api.getVariableByKey(user, key, dvcOptions.getEnableEdgeDB());
146144
variable = getResponseWithRetries(response, 5);
147145
if (variable.getType() != variableType) {
148-
throw new IllegalArgumentException("Variable type mismatch, returning default value");
146+
throw new IllegalArgumentException(ErrorResponse.ErrorMessage.VARIABLE_TYPE_MISMATCH.getMessage());
149147
}
150148
if (beforeError != null) {
151149
throw beforeError;
@@ -163,7 +161,7 @@ public <T> Variable<T> variable(DevCycleUser user, String key, T defaultValue) {
163161
.isDefaulted(true)
164162
.build();
165163

166-
if (exception.getMessage().equals("Variable type mismatch, returning default value")) {
164+
if (exception.getMessage().equals(ErrorResponse.ErrorMessage.VARIABLE_TYPE_MISMATCH.getMessage())) {
167165
variable.setEval(EvalReason.defaultReason(EvalReason.DefaultReasonDetailsEnum.VARIABLE_TYPE_MISMATCH));
168166
} else {
169167
variable.setEval(EvalReason.defaultReason(EvalReason.DefaultReasonDetailsEnum.ERROR));
@@ -227,7 +225,7 @@ public void track(DevCycleUser user, DevCycleEvent event) throws DevCycleExcepti
227225
validateUser(user);
228226

229227
if (event == null || event.getType() == null || event.getType().equals("")) {
230-
throw new IllegalArgumentException("Invalid DevCycleEvent");
228+
throw new IllegalArgumentException(ErrorResponse.ErrorMessage.INVALID_EVENT.getMessage());
231229
}
232230

233231
DevCycleUserAndEvents userAndEvents = DevCycleUserAndEvents.builder()
@@ -338,10 +336,10 @@ private boolean isValidServerKey(String serverKey) {
338336

339337
private void validateUser(DevCycleUser user) {
340338
if (user == null) {
341-
throw new IllegalArgumentException("DevCycleUser cannot be null");
339+
throw new IllegalArgumentException(ErrorResponse.ErrorMessage.NULL_USER.getMessage());
342340
}
343341
if (user.getUserId().equals("")) {
344-
throw new IllegalArgumentException("userId cannot be empty");
342+
throw new IllegalArgumentException(ErrorResponse.ErrorMessage.USER_ID_MISSING.getMessage());
345343
}
346344
}
347345
}

src/main/java/com/devcycle/sdk/server/common/model/ErrorResponse.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
package com.devcycle.sdk.server.common.model;
1414

1515
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
16+
1617
import io.swagger.v3.oas.annotations.media.Schema;
1718
import lombok.AllArgsConstructor;
1819
import lombok.Builder;
@@ -33,4 +34,22 @@ public class ErrorResponse {
3334

3435
@Schema(description = "Additional error information detailing the error reasoning")
3536
private Object data;
37+
38+
public enum ErrorMessage {
39+
MISSING_PARAMETER("Missing parameter: %s"),
40+
NULL_USER("DevCycleUser cannot be null"),
41+
USER_ID_MISSING("userId cannot be empty"),
42+
INVALID_EVENT("Invalid DevCycleEvent"),
43+
VARIABLE_TYPE_MISMATCH("Variable type mismatch, returning default value");
44+
45+
private final String message;
46+
47+
ErrorMessage(String message) {
48+
this.message = message;
49+
}
50+
51+
public String getMessage(String... args) {
52+
return String.format(message, args);
53+
}
54+
}
3655
}

src/main/java/com/devcycle/sdk/server/local/api/DevCycleLocalClient.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import com.devcycle.sdk.server.common.model.BaseVariable;
1313
import com.devcycle.sdk.server.common.model.DevCycleEvent;
1414
import com.devcycle.sdk.server.common.model.DevCycleUser;
15+
import com.devcycle.sdk.server.common.model.ErrorResponse;
1516
import com.devcycle.sdk.server.common.model.EvalHook;
1617
import com.devcycle.sdk.server.common.model.EvalHooksRunner;
1718
import com.devcycle.sdk.server.common.model.EvalReason;
@@ -137,11 +138,11 @@ public <T> Variable<T> variable(DevCycleUser user, String key, T defaultValue) {
137138
validateUser(user);
138139

139140
if (key == null || key.equals("")) {
140-
throw new IllegalArgumentException("Missing parameter: key");
141+
throw new IllegalArgumentException(ErrorResponse.ErrorMessage.MISSING_PARAMETER.getMessage("key"));
141142
}
142143

143144
if (defaultValue == null) {
144-
throw new IllegalArgumentException("Missing parameter: defaultValue");
145+
throw new IllegalArgumentException(ErrorResponse.ErrorMessage.MISSING_PARAMETER.getMessage("defaultValue"));
145146
}
146147

147148
TypeEnum variableType = TypeEnum.fromClass(defaultValue.getClass());
@@ -266,7 +267,7 @@ public void track(DevCycleUser user, DevCycleEvent event) {
266267
validateUser(user);
267268

268269
if (event == null || event.getType().equals("")) {
269-
throw new IllegalArgumentException("Invalid DevCycleEvent");
270+
throw new IllegalArgumentException(ErrorResponse.ErrorMessage.INVALID_EVENT.getMessage());
270271
}
271272

272273
try {
@@ -347,10 +348,10 @@ public String getSDKPlatform() {
347348

348349
private void validateUser(DevCycleUser user) {
349350
if (user == null) {
350-
throw new IllegalArgumentException("DevCycleUser cannot be null");
351+
throw new IllegalArgumentException(ErrorResponse.ErrorMessage.NULL_USER.getMessage());
351352
}
352353
if (user.getUserId().equals("")) {
353-
throw new IllegalArgumentException("userId cannot be empty");
354+
throw new IllegalArgumentException(ErrorResponse.ErrorMessage.USER_ID_MISSING.getMessage());
354355
}
355356
}
356357

0 commit comments

Comments
 (0)