reducing code smells
This commit is contained in:
@@ -15,8 +15,10 @@ import codes.thischwa.cf.model.ZoneMultipleResponse;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
@@ -297,9 +299,9 @@ public class CfDnsClient extends CfBasicHttpClient {
|
||||
RecordSingleResponse resp = postRequest(endpoint, rec, RecordSingleResponse.class);
|
||||
checkResponse(resp);
|
||||
log.info("Record {} of type {} successful created.", rec.getSld(), rec.getType());
|
||||
RecordEntity record = resp.getResult();
|
||||
record.setZoneId(zone.getId());
|
||||
return record;
|
||||
RecordEntity retRec = resp.getResult();
|
||||
retRec.setZoneId(zone.getId());
|
||||
return retRec;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -433,7 +435,10 @@ public class CfDnsClient extends CfBasicHttpClient {
|
||||
throws CloudflareNotFoundException {
|
||||
List<RecordEntity> filtered;
|
||||
if (types != null && types.length > 0) {
|
||||
filtered = recs.stream().filter(rec -> Arrays.asList(types).contains(RecordType.valueOf(rec.getType()))).collect(Collectors.toList());
|
||||
Set<RecordType> allowedTypes = new HashSet<>(Arrays.asList(types));
|
||||
filtered = recs.stream()
|
||||
.filter(rec -> allowedTypes.contains(RecordType.valueOf(rec.getType())))
|
||||
.collect(Collectors.toList());;
|
||||
} else {
|
||||
filtered = new ArrayList<>(recs);
|
||||
}
|
||||
|
||||
@@ -46,17 +46,27 @@ class ResponseValidator {
|
||||
private void validateResultCount(AbstractResponse resp, boolean singleResultExpected)
|
||||
throws CloudflareApiException {
|
||||
if (resp instanceof RecordMultipleResponse respMulti) {
|
||||
if (singleResultExpected && respMulti.getResultInfo().totalCount() > 1) {
|
||||
throw new CloudflareApiException(
|
||||
"Unexpected result count: " + respMulti.getResultInfo().totalCount());
|
||||
}
|
||||
if (emptyResultThrowsException && respMulti.getResultInfo().totalCount() == 0) {
|
||||
throw new CloudflareNotFoundException("No result found");
|
||||
}
|
||||
validateMultipleResponse(respMulti, singleResultExpected);
|
||||
} else if (resp instanceof AbstractSingleResponse<?> respSingle) {
|
||||
if (emptyResultThrowsException && respSingle.getResult() == null) {
|
||||
throw new CloudflareNotFoundException("No result found");
|
||||
}
|
||||
validateSingleResponse(respSingle);
|
||||
}
|
||||
}
|
||||
|
||||
private void validateMultipleResponse(RecordMultipleResponse response, boolean singleResultExpected)
|
||||
throws CloudflareApiException {
|
||||
int totalCount = response.getResultInfo().totalCount();
|
||||
if (singleResultExpected && totalCount > 1) {
|
||||
throw new CloudflareApiException("Unexpected result count: " + totalCount);
|
||||
}
|
||||
if (emptyResultThrowsException && totalCount == 0) {
|
||||
throw new CloudflareNotFoundException("No result found");
|
||||
}
|
||||
}
|
||||
|
||||
private void validateSingleResponse(AbstractSingleResponse<?> response)
|
||||
throws CloudflareNotFoundException {
|
||||
if (emptyResultThrowsException && response.getResult() == null) {
|
||||
throw new CloudflareNotFoundException("No result found");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -45,16 +45,16 @@ public class RecordOperationsImpl implements RecordOperations {
|
||||
|
||||
@Override
|
||||
public RecordEntity update(String newContent) throws CloudflareApiException {
|
||||
List<RecordEntity> records = get();
|
||||
if (records.isEmpty()) {
|
||||
throw new CloudflareApiException("No records found to update for subdomain: " + sld);
|
||||
List<RecordEntity> recs = get();
|
||||
if (recs.isEmpty()) {
|
||||
throw new CloudflareApiException("No recs found to update for subdomain: " + sld);
|
||||
}
|
||||
if (records.size() > 1) {
|
||||
throw new CloudflareApiException("Multiple records found. Please use recordUpdate() directly for precise control.");
|
||||
if (recs.size() > 1) {
|
||||
throw new CloudflareApiException("Multiple recs found. Please use recordUpdate() directly for precise control.");
|
||||
}
|
||||
RecordEntity record = records.get(0);
|
||||
record.setContent(newContent);
|
||||
return client.recordUpdate(zone, record);
|
||||
RecordEntity rec = recs.get(0);
|
||||
rec.setContent(newContent);
|
||||
return client.recordUpdate(zone, rec);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user