[SONAR] fixing major sonar issues

This commit is contained in:
Sheldan
2020-09-30 01:31:21 +02:00
parent 8e05bc90ea
commit f0d517af22
3 changed files with 26 additions and 36 deletions

View File

@@ -685,35 +685,29 @@ public class AssignableRolePlaceServiceBean implements AssignableRolePlaceServic
@Transactional @Transactional
public CompletableFuture<Void> addEmotes(List<CompletableFuture<Message>> assignablePlacePostsMessageFutures, String placeKey) { public CompletableFuture<Void> addEmotes(List<CompletableFuture<Message>> assignablePlacePostsMessageFutures, String placeKey) {
try { Message firstMessage = assignablePlacePostsMessageFutures.get(0).join();
Message firstMessage = assignablePlacePostsMessageFutures.get(0).get(); Long serverId = firstMessage.getGuild().getIdLong();
Long serverId = firstMessage.getGuild().getIdLong();
AServer innerServer = serverManagementService.loadOrCreate(serverId); AServer innerServer = serverManagementService.loadOrCreate(serverId);
AssignableRolePlace innerRolePlace = rolePlaceManagementService.findByServerAndKey(innerServer, placeKey); AssignableRolePlace innerRolePlace = rolePlaceManagementService.findByServerAndKey(innerServer, placeKey);
List<AssignableRole> roleStream = innerRolePlace.getAssignableRoles().stream().sorted(Comparator.comparingInt(AssignableRole::getPosition)).collect(Collectors.toList()); List<AssignableRole> roleStream = innerRolePlace.getAssignableRoles().stream().sorted(Comparator.comparingInt(AssignableRole::getPosition)).collect(Collectors.toList());
List<CompletableFuture<Void>> reactionFutures = new ArrayList<>(); List<CompletableFuture<Void>> reactionFutures = new ArrayList<>();
int usedEmotes = 0; int usedEmotes = 0;
for (CompletableFuture<Message> messageCompletableFuture : assignablePlacePostsMessageFutures) { for (CompletableFuture<Message> messageCompletableFuture : assignablePlacePostsMessageFutures) {
Message sentMessage = messageCompletableFuture.get(); Message sentMessage = messageCompletableFuture.join();
// this uses the actual embed count as a limit, so this relies on fields to be used for description, if this changes, this needs to be changed // this uses the actual embed count as a limit, so this relies on fields to be used for description, if this changes, this needs to be changed
MessageEmbed embed = sentMessage.getEmbeds().get(0); MessageEmbed embed = sentMessage.getEmbeds().get(0);
List<AssignableRole> firstRoles = roleStream.subList(usedEmotes, usedEmotes + embed.getFields().size()); List<AssignableRole> firstRoles = roleStream.subList(usedEmotes, usedEmotes + embed.getFields().size());
usedEmotes += embed.getFields().size(); usedEmotes += embed.getFields().size();
List<Integer> usedEmoteIds = firstRoles.stream().map(assignableRole -> assignableRole.getEmote().getId()).collect(Collectors.toList()); List<Integer> usedEmoteIds = firstRoles.stream().map(assignableRole -> assignableRole.getEmote().getId()).collect(Collectors.toList());
CompletableFuture<Void> firstMessageFuture = createAssignableRolePlacePost(sentMessage, serverId, usedEmoteIds); CompletableFuture<Void> firstMessageFuture = createAssignableRolePlacePost(sentMessage, serverId, usedEmoteIds);
reactionFutures.add(firstMessageFuture); reactionFutures.add(firstMessageFuture);
}
return CompletableFuture.allOf(reactionFutures.toArray(new CompletableFuture[0])).thenCompose(aVoid -> {
self.storeCreatedAssignableRolePlacePosts(placeKey, serverId, assignablePlacePostsMessageFutures);
return CompletableFuture.completedFuture(null);
});
} catch (InterruptedException | ExecutionException e) {
log.error("Failed to process future from sending assignable place posts messages.", e);
throw new AbstractoRunTimeException(e);
} }
return CompletableFuture.allOf(reactionFutures.toArray(new CompletableFuture[0])).thenCompose(aVoid -> {
self.storeCreatedAssignableRolePlacePosts(placeKey, serverId, assignablePlacePostsMessageFutures);
return CompletableFuture.completedFuture(null);
});
} }
@Transactional @Transactional

View File

@@ -30,11 +30,8 @@ public class ServerManagementServiceBean implements ServerManagementService {
@Override @Override
public AServer loadOrCreate(Long id) { public AServer loadOrCreate(Long id) {
if(repository.existsById(id)) { Optional<AServer> optional = repository.findById(id);
return repository.findById(id).get(); return optional.orElseGet(() -> createServer(id));
} else {
return createServer(id);
}
} }
@Override @Override

View File

@@ -7,6 +7,8 @@ import net.dv8tion.jda.api.entities.Member;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.Optional;
@Component @Component
@Slf4j @Slf4j
public class UserManagementServiceBean implements UserManagementService { public class UserManagementServiceBean implements UserManagementService {
@@ -29,10 +31,7 @@ public class UserManagementServiceBean implements UserManagementService {
@Override @Override
public AUser loadUser(Long userId) { public AUser loadUser(Long userId) {
if(userRepository.existsById(userId)) { Optional<AUser> optional = userRepository.findById(userId);
return userRepository.findById(userId).get(); return optional.orElseGet(() -> this.createUser(userId));
} else {
return this.createUser(userId);
}
} }
} }