[AB-137] fixing occurrences for templates in cases entities do not exist anymore

fixing feature mode retrieval to adapt to lowercase
fixing disable exp role creation and retrieval
removing ansible code
This commit is contained in:
Sheldan
2021-03-09 21:33:51 +01:00
parent d0c06538e3
commit e780b0e75c
29 changed files with 200 additions and 909 deletions

View File

@@ -55,7 +55,8 @@ public class UserNotesConverter {
public List<NoteEntryModel> loadFullNotes(Map<ServerSpecificId, CompletableFuture<Member>> futureHashMap) {
List<NoteEntryModel> entryModels = new ArrayList<>();
futureHashMap.keySet().forEach(serverSpecificId -> {
Member member = futureHashMap.get(serverSpecificId).join();
CompletableFuture<Member> memberFuture = futureHashMap.get(serverSpecificId);
Member member = !memberFuture.isCompletedExceptionally() ? memberFuture.join() : null;
UserNote note = userNoteManagementService.loadNote(serverSpecificId.getServerId(), serverSpecificId.getId());
FullUserInServer fullUser = FullUserInServer
.builder()

View File

@@ -57,25 +57,26 @@ public class WarnEntryConverter {
public List<WarnEntry> loadFullWarnEntries(Map<ServerSpecificId, FutureMemberPair> loadedWarnInfo) {
List<WarnEntry> entries = new ArrayList<>();
loadedWarnInfo.keySet().forEach(warning -> {
Warning warn = warnManagementService.findById(warning.getId(), warning.getServerId());
FutureMemberPair memberPair = loadedWarnInfo.get(warning);
Member warnedMember = memberPair.getSecondMember().join();
Member warnedMember = !memberPair.getSecondMember().isCompletedExceptionally() ? memberPair.getSecondMember().join() : null;
FullUserInServer warnedUser = FullUserInServer
.builder()
.member(warnedMember)
.aUserInAServer(userInServerManagementService.loadOrCreateUser(warnedMember))
.aUserInAServer(warn.getWarnedUser())
.build();
Member warningMember = memberPair.getFirstMember().join();
Member warningMember = !memberPair.getFirstMember().isCompletedExceptionally() ? memberPair.getFirstMember().join() : null;
FullUserInServer warningUser = FullUserInServer
.builder()
.member(warningMember)
.aUserInAServer(userInServerManagementService.loadOrCreateUser(warningMember))
.aUserInAServer(warn.getWarningUser())
.build();
WarnEntry entry = WarnEntry
.builder()
.warnedUser(warnedUser)
.warningUser(warningUser)
.warning(warnManagementService.findById(warning.getId(), warning.getServerId()))
.warning(warn)
.build();
entries.add(entry);
});

View File

@@ -339,11 +339,13 @@ public class MuteServiceBean implements MuteService {
public CompletableFuture<Void> sendUnmuteLog(Long muteId, Guild guild, CompletableFuture<Member> mutingMemberFuture, CompletableFuture<Member> mutedMemberFuture) {
Mute mute = muteManagementService.findMute(muteId, guild.getIdLong());
AServer mutingServer = serverManagementService.loadServer(guild.getIdLong());
Member mutingMember = !mutingMemberFuture.isCompletedExceptionally() ? mutingMemberFuture.join() : null;
Member mutedMember = !mutedMemberFuture.isCompletedExceptionally() ? mutedMemberFuture.join() : null;
UnMuteLog unMuteLog = UnMuteLog
.builder()
.mute(mute)
.mutingUser(mutingMemberFuture.join())
.unMutedUser(mutedMemberFuture.join())
.mutingUser(mutingMember)
.unMutedUser(mutedMember)
.guild(guild)
.build();
CompletableFuture<Void> notificationFuture = sendUnMuteLogMessage(unMuteLog, mutingServer);

View File

@@ -2,6 +2,7 @@ package dev.sheldan.abstracto.moderation.service;
import dev.sheldan.abstracto.core.models.FutureMemberPair;
import dev.sheldan.abstracto.core.models.ServerSpecificId;
import dev.sheldan.abstracto.core.models.ServerUser;
import dev.sheldan.abstracto.core.models.database.AServer;
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
import dev.sheldan.abstracto.core.service.*;
@@ -187,14 +188,25 @@ public class WarnServiceBean implements WarnService {
warningsToDecay.forEach(warning -> {
CompletableFuture<Member> warningMember = memberService.getMemberInServerAsync(warning.getWarningUser());
CompletableFuture<Member> warnedMember = memberService.getMemberInServerAsync(warning.getWarnedUser());
FutureMemberPair futurePair = FutureMemberPair.builder().firstMember(warningMember).secondMember(warnedMember).build();
FutureMemberPair futurePair = FutureMemberPair
.builder()
.firstMember(warningMember)
.secondMember(warnedMember)
.firstUser(ServerUser.fromAUserInAServer(warning.getWarningUser()))
.secondUser(ServerUser.fromAUserInAServer(warning.getWarnedUser()))
.build();
warningMembers.put(warning.getWarnId(), futurePair);
allFutures.add(warningMember);
allFutures.add(warnedMember);
});
CompletableFuture<Void> sendingFuture = new CompletableFuture<>();
FutureUtils.toSingleFutureGeneric(allFutures).handle((aVoid, throwable) -> {
self.renderAndSendWarnDecayLogs(serverId, warningMembers).thenAccept(aVoid1 ->
sendingFuture.complete(null)
);
).exceptionally(throwable1 -> {
sendingFuture.completeExceptionally(throwable1);
return null;
});
return null;
});
@@ -207,16 +219,23 @@ public class WarnServiceBean implements WarnService {
AServer server = serverManagementService.loadServer(serverId);
List<WarnDecayWarning> warnDecayWarnings = new ArrayList<>();
warningMembers.keySet().forEach(serverSpecificId -> {
Warning warning = warnManagementService.findById(serverSpecificId.getId(), serverSpecificId.getServerId());
FutureMemberPair pair = warningMembers.get(serverSpecificId);
// TODO add ids to render in case any member left the server
WarnDecayWarning warnDecayWarning = WarnDecayWarning
.builder()
.warningMember(pair.getFirstMember().join())
.warnedMember(pair.getSecondMember().join())
.warning(warning)
.build();
warnDecayWarnings.add(warnDecayWarning);
try {
Warning warning = warnManagementService.findById(serverSpecificId.getId(), serverSpecificId.getServerId());
FutureMemberPair pair = warningMembers.get(serverSpecificId);
Member warningMember = !pair.getFirstMember().isCompletedExceptionally() ? pair.getFirstMember().join() : null;
Member warnedMember = !pair.getSecondMember().isCompletedExceptionally() ? pair.getSecondMember().join() : null;
WarnDecayWarning warnDecayWarning = WarnDecayWarning
.builder()
.warningMember(warningMember)
.warningUser(pair.getFirstUser())
.warnedMember(warnedMember)
.warnedUser(pair.getSecondUser())
.warning(warning)
.build();
warnDecayWarnings.add(warnDecayWarning);
} catch (Exception ex) {
log.error("exception.", ex);
}
});
WarnDecayLogModel warnDecayLogModel = WarnDecayLogModel
.builder()

View File

@@ -85,8 +85,12 @@ public class WarnEntryConverterTest {
Warning warning2 = Mockito.mock(Warning.class);
ServerSpecificId firstWarnId = new ServerSpecificId(SERVER_ID, WARN_ID_1);
when(warning1.getWarnId()).thenReturn(firstWarnId);
when(warning1.getWarningUser()).thenReturn(warningUser);
when(warning1.getWarnedUser()).thenReturn(warnedUser);
ServerSpecificId secondWarnId = new ServerSpecificId(SERVER_ID, WARN_ID_2);
when(warning2.getWarnId()).thenReturn(secondWarnId);
when(warning2.getWarningUser()).thenReturn(warningUser);
when(warning2.getWarnedUser()).thenReturn(warnedUser);
HashMap<ServerSpecificId, FutureMemberPair> map = new HashMap<>();
FutureMemberPair memberPair = Mockito.mock(FutureMemberPair.class);
when(memberPair.getFirstMember()).thenReturn(CompletableFuture.completedFuture(warningMember));
@@ -95,8 +99,6 @@ public class WarnEntryConverterTest {
map.put(secondWarnId, memberPair);
when(warnManagementService.findById(WARN_ID_1, SERVER_ID)).thenReturn(warning1);
when(warnManagementService.findById(WARN_ID_2, SERVER_ID)).thenReturn(warning2);
when(userInServerManagementService.loadOrCreateUser(warnedMember)).thenReturn(warnedUser);
when(userInServerManagementService.loadOrCreateUser(warningMember)).thenReturn(warningUser);
List<WarnEntry> models = testUnit.loadFullWarnEntries(map);
Assert.assertEquals(2, models.size());
WarnEntry firstEntry = models.get(0);

View File

@@ -2,6 +2,7 @@ package dev.sheldan.abstracto.moderation.service;
import dev.sheldan.abstracto.core.models.ServerSpecificId;
import dev.sheldan.abstracto.core.models.database.AServer;
import dev.sheldan.abstracto.core.models.database.AUser;
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
import dev.sheldan.abstracto.core.models.property.SystemConfigProperty;
import dev.sheldan.abstracto.core.service.*;
@@ -103,6 +104,15 @@ public class WarnServiceBeanTest {
@Mock
private AUserInAServer secondWarnedUser;
@Mock
private AUser firstAUser;
@Mock
private AUser secondAUser;
@Mock
private AUser thirdAUser;
@Mock
private Warning firstWarning;
@@ -225,9 +235,15 @@ public class WarnServiceBeanTest {
private void setupWarnings() {
when(firstWarning.getWarningUser()).thenReturn(warningUser);
when(secondWarning.getWarningUser()).thenReturn(warningUser);
when(warningUser.getServerReference()).thenReturn(server);
when(warningUser.getUserReference()).thenReturn(thirdAUser);
when(firstWarning.getWarnedUser()).thenReturn(firstWarnedUser);
when(firstWarnedUser.getServerReference()).thenReturn(server);
when(firstWarnedUser.getUserReference()).thenReturn(firstAUser);
when(secondWarning.getWarnedUser()).thenReturn(secondWarnedUser);
when(secondWarnedUser.getServerReference()).thenReturn(server);
when(secondWarnedUser.getUserReference()).thenReturn(secondAUser);
when(firstWarning.getWarnId()).thenReturn(new ServerSpecificId(SERVER_ID, WARN_ID));
when(secondWarning.getWarnId()).thenReturn(new ServerSpecificId(SERVER_ID, 9L));
when(server.getId()).thenReturn(SERVER_ID);

View File

@@ -1,5 +1,6 @@
package dev.sheldan.abstracto.moderation.models.template.job;
import dev.sheldan.abstracto.core.models.ServerUser;
import dev.sheldan.abstracto.moderation.models.database.Warning;
import lombok.Builder;
import lombok.Getter;
@@ -26,4 +27,14 @@ public class WarnDecayWarning {
* The user which casted the warn, is null if the user left the server
*/
private Member warningMember;
/**
* The {@link ServerUser serverUser} which was warned, can be used in case the {@link Member warningMember} is null
*/
private ServerUser warningUser;
/**
* The {@link ServerUser serverUser} who cast the warn, can be used in case the {@link Member warnedMember} is null
*/
private ServerUser warnedUser;
}