[AB-197] splitting utility maven module into separate maven modules

aligning some package names
removing some unnecessary computed values from liquibase
This commit is contained in:
Sheldan
2021-03-12 17:29:49 +01:00
parent e2da800d84
commit 2ed456c164
835 changed files with 12790 additions and 3310 deletions

View File

@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>link-embed</artifactId>
<groupId>dev.sheldan.abstracto.modules</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>link-embed-int</artifactId>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
</project>

View File

@@ -0,0 +1,22 @@
package dev.sheldan.abstracto.linkembed.config;
import dev.sheldan.abstracto.core.config.FeatureConfig;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import org.springframework.stereotype.Component;
import java.util.Arrays;
import java.util.List;
@Component
public class LinkEmbedFeature implements FeatureConfig {
@Override
public FeatureDefinition getFeature() {
return LinkEmbedFeatureDefinition.LINK_EMBEDS;
}
@Override
public List<String> getRequiredEmotes() {
return Arrays.asList("removeEmbed");
}
}

View File

@@ -0,0 +1,15 @@
package dev.sheldan.abstracto.linkembed.config;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import lombok.Getter;
@Getter
public enum LinkEmbedFeatureDefinition implements FeatureDefinition {
LINK_EMBEDS("linkEmbeds");
private String key;
LinkEmbedFeatureDefinition(String key) {
this.key = key;
}
}

View File

@@ -0,0 +1,9 @@
package dev.sheldan.abstracto.linkembed.exception;
import dev.sheldan.abstracto.core.exception.AbstractoRunTimeException;
public class CrossServerEmbedException extends AbstractoRunTimeException {
public CrossServerEmbedException(String message) {
super(message);
}
}

View File

@@ -0,0 +1,15 @@
package dev.sheldan.abstracto.linkembed.model;
import lombok.Builder;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
@Builder
public class MessageEmbedLink {
private Long serverId;
private Long channelId;
private Long messageId;
private String wholeUrl;
}

View File

@@ -0,0 +1,65 @@
package dev.sheldan.abstracto.linkembed.model.database;
import dev.sheldan.abstracto.core.models.database.AChannel;
import dev.sheldan.abstracto.core.models.database.AServer;
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
import lombok.*;
import javax.persistence.*;
import java.io.Serializable;
import java.time.Instant;
@Entity
@Table(name="embedded_message")
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Getter
@Setter
@EqualsAndHashCode
public class EmbeddedMessage implements Serializable {
@Getter
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "embedded_user_in_server_id", nullable = false)
private AUserInAServer embeddedUser;
@Getter
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "embedding_user_in_server_id", nullable = false)
private AUserInAServer embeddingUser;
@Getter
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "embedded_server_id", nullable = false)
private AServer embeddedServer;
@Getter
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "embedded_channel_id", nullable = false)
private AChannel embeddedChannel;
@Column(name = "embedded_message_id")
private Long embeddedMessageId;
@Getter
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "embedding_server_id", nullable = false)
private AServer embeddingServer;
@Getter
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "embedding_channel_id", nullable = false)
private AChannel embeddingChannel;
@Column(name = "embedding_message_id")
@Id
private Long embeddingMessageId;
@Column(name = "created")
private Instant created;
@Column(name = "updated")
private Instant updated;
}

View File

@@ -0,0 +1,15 @@
package dev.sheldan.abstracto.linkembed.service;
import dev.sheldan.abstracto.core.models.cache.CachedMessage;
import dev.sheldan.abstracto.linkembed.model.MessageEmbedLink;
import net.dv8tion.jda.api.entities.Message;
import net.dv8tion.jda.api.entities.TextChannel;
import java.util.List;
import java.util.concurrent.CompletableFuture;
public interface MessageEmbedService {
List<MessageEmbedLink> getLinksInMessage(String message);
void embedLinks(List<MessageEmbedLink> linksToEmbed, TextChannel target, Long userEmbeddingUserInServerId, Message embeddingMessage);
CompletableFuture<Void> embedLink(CachedMessage cachedMessage, TextChannel target, Long userEmbeddingUserInServerId, Message embeddingMessage);
}

View File

@@ -0,0 +1,14 @@
package dev.sheldan.abstracto.linkembed.service.management;
import dev.sheldan.abstracto.core.models.cache.CachedMessage;
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
import dev.sheldan.abstracto.linkembed.model.database.EmbeddedMessage;
import net.dv8tion.jda.api.entities.Message;
import java.util.Optional;
public interface MessageEmbedPostManagementService {
void createMessageEmbed(CachedMessage embeddedMessage, Message messageContainingEmbed, AUserInAServer cause);
Optional<EmbeddedMessage> findEmbeddedPostByMessageId(Long messageId);
void deleteEmbeddedMessage(EmbeddedMessage embeddedMessage);
}