[AB-182] added member parameter to starStats to show the starboard statistics for an individual member

This commit is contained in:
Sheldan
2021-02-14 23:43:44 +01:00
parent 876fbc01d9
commit 909dc87d94
24 changed files with 393 additions and 140 deletions

View File

@@ -46,7 +46,7 @@ public class StarboardPost implements Serializable {
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "source_channel_id", nullable = false)
private AChannel sourceChanel;
private AChannel sourceChannel;
@Transient
private Integer reactionCount;

View File

@@ -9,7 +9,7 @@ import java.util.List;
@Getter
@Setter
@Builder
public class StarStatsModel {
public class GuildStarStatsModel {
private List<StarStatsPost> topPosts;
private List<StarStatsUser> starReceiver;
private List<StarStatsUser> starGiver;

View File

@@ -0,0 +1,19 @@
package dev.sheldan.abstracto.utility.models.template.commands.starboard;
import lombok.Builder;
import lombok.Getter;
import lombok.Setter;
import net.dv8tion.jda.api.entities.Member;
import java.util.List;
@Getter
@Setter
@Builder
public class MemberStarStatsModel {
private List<StarStatsPost> topPosts;
private Long receivedStars;
private Long givenStars;
private List<String> badgeEmotes;
private Member member;
}

View File

@@ -3,8 +3,10 @@ package dev.sheldan.abstracto.utility.service;
import dev.sheldan.abstracto.core.models.cache.CachedMessage;
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
import dev.sheldan.abstracto.utility.models.database.StarboardPost;
import dev.sheldan.abstracto.utility.models.template.commands.starboard.StarStatsModel;
import dev.sheldan.abstracto.utility.models.template.commands.starboard.GuildStarStatsModel;
import dev.sheldan.abstracto.utility.models.template.commands.starboard.MemberStarStatsModel;
import dev.sheldan.abstracto.utility.models.template.commands.starboard.StarStatsPost;
import net.dv8tion.jda.api.entities.Member;
import java.util.List;
import java.util.concurrent.CompletableFuture;
@@ -13,6 +15,7 @@ public interface StarboardService {
CompletableFuture<Void> createStarboardPost(CachedMessage message, List<AUserInAServer> userExceptAuthor, AUserInAServer userReacting, AUserInAServer starredUser);
CompletableFuture<Void> updateStarboardPost(StarboardPost post, CachedMessage message, List<AUserInAServer> userExceptAuthor);
void deleteStarboardMessagePost(StarboardPost message);
CompletableFuture<StarStatsModel> retrieveStarStats(Long serverId);
CompletableFuture<GuildStarStatsModel> retrieveStarStats(Long serverId);
MemberStarStatsModel retrieveStarStatsForMember(Member member);
StarStatsPost fromStarboardPost(StarboardPost starboardPost);
}

View File

@@ -12,6 +12,9 @@ public interface StarboardPostManagementService {
StarboardPost createStarboardPost(CachedMessage starredMessage, AUserInAServer starredUser, AServerAChannelMessage starboardPost);
void setStarboardPostMessageId(StarboardPost post, Long messageId);
List<StarboardPost> retrieveTopPosts(Long serverId, Integer count);
List<StarboardPost> retrieveTopPostsForUserInServer(Long serverId, Long userId, Integer count);
Long retrieveGivenStarsOfUserInServer(Long serverId, Long userId);
Long retrieveReceivedStarsOfUserInServer(Long serverId, Long userId);
List<StarboardPost> retrieveAllPosts(Long serverId);
Integer getPostCount(Long serverId);
Optional<StarboardPost> findByMessageId(Long messageId);