fixed initial setup for mod mail category

fixed setup for locking
added exception message in case the modmail post target is not defined
This commit is contained in:
Sheldan
2020-05-08 23:22:23 +02:00
parent d1f307837d
commit 271ea7364a
8 changed files with 68 additions and 10 deletions

View File

@@ -0,0 +1,21 @@
package dev.sheldan.abstracto.core.listener;
import dev.sheldan.abstracto.core.service.LockService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.event.ContextRefreshedEvent;
import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
@Component
public class LockStartupListener {
@Autowired
private LockService lockService;
@EventListener
@Transactional
public void handleContextRefreshEvent(ContextRefreshedEvent ctxStartEvt) {
lockService.setupLocks();
}
}

View File

@@ -16,6 +16,5 @@ import javax.persistence.*;
public class ALock {
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
}

View File

@@ -1,6 +1,7 @@
package dev.sheldan.abstracto.core.service;
import dev.sheldan.abstracto.core.command.models.TableLocks;
import dev.sheldan.abstracto.core.model.database.ALock;
import dev.sheldan.abstracto.core.repository.LockRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -16,4 +17,17 @@ public class LockServiceBean implements LockService {
int ordinal = toLock.ordinal();
lockRepository.findArticleForRead((long) ordinal);
}
@Override
public void setupLocks() {
for (TableLocks lo :TableLocks.values()) {
if(!lockRepository.existsById((long)lo.ordinal())) {
ALock build = ALock
.builder()
.id((long) lo.ordinal())
.build();
lockRepository.save(build);
}
}
}
}

View File

@@ -3,6 +3,7 @@ package dev.sheldan.abstracto.core.service;
import dev.sheldan.abstracto.core.config.DynamicKeyLoader;
import dev.sheldan.abstracto.core.exception.ChannelException;
import dev.sheldan.abstracto.core.exception.GuildException;
import dev.sheldan.abstracto.core.exception.PostTargetException;
import dev.sheldan.abstracto.core.service.management.PostTargetManagement;
import dev.sheldan.abstracto.core.models.database.PostTarget;
import dev.sheldan.abstracto.templating.model.MessageToSend;
@@ -70,7 +71,7 @@ public class PostTargetServiceBean implements PostTargetService {
return postTarget;
} else {
log.error("PostTarget {} in server {} was not found!", postTargetName, serverId);
throw new ChannelException(String.format("Incorrect post target configuration: Post target %s was not found.", postTargetName));
throw new PostTargetException(String.format("Incorrect post target configuration: Post target %s was not found.", postTargetName));
}
}