Closed jabrena closed 1 month ago
public Either<List<GameItem>, Integer> claimAvatarRewards(int eventId) {
if (this.rewardEvents.isEmpty()) {
return Either.right(Retcode.RET_FAIL_VALUE);
}
var event = this.rewardEvents.remove(0);
if (event.getEventId() != eventId) {
return Either.right(Retcode.RET_FAIL_VALUE);
}
if (!this.homeOwner.getHome().onClaimAvatarRewards(eventId)) {
return Either.right(Retcode.RET_FAIL_VALUE);
}
return Either.left(event.giveRewards());
}
public Either<IOException, TaskResponse> getTaskResponse(final String taskId) {
try {
final var request = new Request(HttpGet.METHOD_NAME, "/" + TASKS_ENDPOINT + "/" + taskId);
final var response = esClient.getLowLevelClient().performRequest(request);
final var taskResponse =
objectMapper.readValue(response.getEntity().getContent(), TaskResponse.class);
return Either.right(taskResponse);
} catch (IOException e) {
return Either.left(e);
}
}
private Either<Throwable, Long> handleReindexResponse(
final ReindexResponse response,
final Throwable error,
final String sourceIndexName,
final String operation) {
if (error != null) {
final var message =
String.format(
"Exception occurred, while performing operation %s on source index %s. the documents: %s",
operation, sourceIndexName, error.getMessage());
return Either.left(new TasklistRuntimeException(message, error));
}
final var bulkFailures = response.failures();
if (bulkFailures.size() > 0) {
LOGGER.error(
"Failures occurred when performing operation: {} on source index {}. See details below.",
operation,
sourceIndexName);
bulkFailures.stream().forEach(f -> LOGGER.error(f.toString()));
return Either.left(new ArchiverException(String.format("Operation % failed", operation)));
}
LOGGER.debug(
"Operation {} succeded on source index {}. Response: {}",
operation,
sourceIndexName,
response.toString());
return Either.right(response.total());
}
A potential PR:
public DQRuleset parse(String dqdl) throws InvalidDataQualityRulesetException {
CharStream input = CharStreams.fromString(dqdl);
DQDLErrorListener errorListener = new DQDLErrorListener();
DataQualityDefinitionLanguageLexer lexer = new DataQualityDefinitionLanguageLexer(input);
lexer.removeErrorListeners();
lexer.addErrorListener(errorListener);
TokenStream tokens = new CommonTokenStream(lexer);
DataQualityDefinitionLanguageParser parser = new DataQualityDefinitionLanguageParser(tokens);
parser.removeErrorListeners();
parser.addErrorListener(errorListener);
DQDLParserListener listener = new DQDLParserListener(errorListener);
ParseTreeWalker.DEFAULT.walk(listener, parser.document());
Either<List<String>, DQRuleset> dqRulesetEither = listener.getParsedRuleset();
if (dqRulesetEither.isLeft()) {
throw new InvalidDataQualityRulesetException(generateExceptionMessage(dqRulesetEither.getLeft()));
} else {
return dqRulesetEither.getRight();
}
}
public Either<List<String>, DQRuleset> getParsedRuleset() {
if (errorMessages.isEmpty() && errorListener.getErrorMessages().isEmpty()) {
return Either.fromRight(new DQRuleset(metadata, primarySource, additionalSources, dqRules));
} else {
List<String> allErrorMessages = new ArrayList<>();
allErrorMessages.addAll(errorMessages);
allErrorMessages.addAll(errorListener.getErrorMessages());
return Either.fromLeft(allErrorMessages);
}
}