mirror of
https://github.com/Sheldan/abstracto.git
synced 2026-03-08 00:49:26 +00:00
[AB-62] adding server id to more tables for easier joins and fixing structure at more places
This commit is contained in:
@@ -12,6 +12,7 @@ import dev.sheldan.abstracto.assignableroles.models.templates.*;
|
||||
import dev.sheldan.abstracto.assignableroles.service.management.AssignableRoleManagementService;
|
||||
import dev.sheldan.abstracto.assignableroles.service.management.AssignableRolePlaceManagementService;
|
||||
import dev.sheldan.abstracto.assignableroles.service.management.AssignableRolePlacePostManagementService;
|
||||
import dev.sheldan.abstracto.assignableroles.service.management.AssignableRolePlacePostManagementServiceBean;
|
||||
import dev.sheldan.abstracto.core.command.exception.AbstractoTemplatedException;
|
||||
import dev.sheldan.abstracto.core.command.exception.CommandParameterKeyValueWrongTypeException;
|
||||
import dev.sheldan.abstracto.core.exception.ChannelNotInGuildException;
|
||||
@@ -92,6 +93,9 @@ public class AssignableRolePlaceServiceBean implements AssignableRolePlaceServic
|
||||
@Autowired
|
||||
private AssignableRoleService roleService;
|
||||
|
||||
@Autowired
|
||||
private AssignableRolePlacePostManagementServiceBean assignableRolePlacePostManagementServiceBean;
|
||||
|
||||
@Override
|
||||
public void createAssignableRolePlace(AServer server, String name, AChannel channel, String text) {
|
||||
if(rolePlaceManagementService.doesPlaceExist(server, name)) {
|
||||
@@ -241,14 +245,7 @@ public class AssignableRolePlaceServiceBean implements AssignableRolePlaceServic
|
||||
emote.setChangeable(false);
|
||||
log.trace("Setting emote {} to not changeable, because it is part of an assignable role place {} in server {}.", emote.getId(), placeId, serverId);
|
||||
|
||||
AssignableRolePlacePost newPost = AssignableRolePlacePost
|
||||
.builder()
|
||||
.id(message.getIdLong())
|
||||
.usedChannel(loadedPlace.getChannel())
|
||||
.assignablePlace(loadedPlace)
|
||||
.build();
|
||||
|
||||
loadedPlace.getMessagePosts().add(newPost);
|
||||
AssignableRolePlacePost newPost = assignableRolePlacePostManagementServiceBean.createAssignableRolePlacePost(loadedPlace, message.getIdLong());
|
||||
assignableRoleManagementServiceBean.addRoleToPlace(loadedPlace, emote, role, description, newPost);
|
||||
}
|
||||
|
||||
@@ -789,16 +786,10 @@ public class AssignableRolePlaceServiceBean implements AssignableRolePlaceServic
|
||||
log.trace("Storing post {} with {} fields.", message.getId(), embed.getFields().size());
|
||||
List<AssignableRole> firstRoles = rolesToAdd.subList(usedEmotes, usedEmotes + embed.getFields().size());
|
||||
usedEmotes += embed.getFields().size();
|
||||
AssignableRolePlacePost post = AssignableRolePlacePost
|
||||
.builder()
|
||||
.id(message.getIdLong())
|
||||
.usedChannel(updatedPlace.getChannel())
|
||||
.assignablePlace(updatedPlace)
|
||||
.build();
|
||||
AssignableRolePlacePost post = assignableRolePlacePostManagementServiceBean.createAssignableRolePlacePost(updatedPlace, message.getIdLong());
|
||||
firstRoles.forEach(assignableRole ->
|
||||
assignableRole.setAssignableRolePlacePost(post)
|
||||
);
|
||||
updatedPlace.getMessagePosts().add(post);
|
||||
} catch (Exception e) {
|
||||
log.error("Failed to get future.", e);
|
||||
}
|
||||
|
||||
@@ -51,6 +51,7 @@ public class AssignableRoleManagementServiceBean implements AssignableRoleManage
|
||||
.emote(emote)
|
||||
.role(role)
|
||||
.requiredLevel(0)
|
||||
.server(place.getServer())
|
||||
.position(maxPosition)
|
||||
.description(description)
|
||||
.assignableRolePlacePost(post)
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package dev.sheldan.abstracto.assignableroles.service.management;
|
||||
|
||||
import dev.sheldan.abstracto.assignableroles.exceptions.AssignablePlacePostNotFoundException;
|
||||
import dev.sheldan.abstracto.assignableroles.models.database.AssignableRolePlace;
|
||||
import dev.sheldan.abstracto.assignableroles.models.database.AssignableRolePlacePost;
|
||||
import dev.sheldan.abstracto.assignableroles.repository.AssignableRolePlacePostRepository;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -14,7 +15,6 @@ public class AssignableRolePlacePostManagementServiceBean implements AssignableR
|
||||
@Autowired
|
||||
private AssignableRolePlacePostRepository repository;
|
||||
|
||||
|
||||
@Override
|
||||
public Optional<AssignableRolePlacePost> findByMessageIdOptional(Long messageId) {
|
||||
return repository.findById(messageId);
|
||||
@@ -25,4 +25,17 @@ public class AssignableRolePlacePostManagementServiceBean implements AssignableR
|
||||
return findByMessageIdOptional(messageId).orElseThrow(() -> new AssignablePlacePostNotFoundException(messageId));
|
||||
}
|
||||
|
||||
@Override
|
||||
public AssignableRolePlacePost createAssignableRolePlacePost(AssignableRolePlace updatedPlace, Long messageId) {
|
||||
AssignableRolePlacePost post = AssignableRolePlacePost
|
||||
.builder()
|
||||
.id(messageId)
|
||||
.usedChannel(updatedPlace.getChannel())
|
||||
.server(updatedPlace.getServer())
|
||||
.assignablePlace(updatedPlace)
|
||||
.build();
|
||||
repository.save(post);
|
||||
return post;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -20,6 +20,9 @@
|
||||
<column name="assignable_place_id" type="BIGINT">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
<column name="server_id" type="BIGINT">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
<column name="place_post_id" type="BIGINT">
|
||||
<constraints nullable="true"/>
|
||||
</column>
|
||||
@@ -37,6 +40,7 @@
|
||||
<addForeignKeyConstraint baseColumnNames="role_id" baseTableName="assignable_role" constraintName="fk_assignable_role_role" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="role" validate="true"/>
|
||||
<addForeignKeyConstraint baseColumnNames="assignable_place_id" baseTableName="assignable_role" constraintName="fk_assignable_role_place" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="assignable_role_place" validate="true"/>
|
||||
<addForeignKeyConstraint baseColumnNames="place_post_id" baseTableName="assignable_role" constraintName="fk_assignable_role_post" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="assignable_role_place_post" validate="true"/>
|
||||
<addForeignKeyConstraint baseColumnNames="server_id" baseTableName="assignable_role" constraintName="fk_assignable_role_server" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="server" validate="true"/>
|
||||
<sql>
|
||||
DROP TRIGGER IF EXISTS assignable_role_update_trigger ON assignable_role;
|
||||
CREATE TRIGGER assignable_role_update_trigger BEFORE UPDATE ON assignable_role FOR EACH ROW EXECUTE PROCEDURE update_trigger_procedure();
|
||||
|
||||
@@ -17,12 +17,16 @@
|
||||
<column name="channel_id" type="BIGINT">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
<column name="server_id" type="BIGINT">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
<column name="created" type="TIMESTAMP WITHOUT TIME ZONE">
|
||||
<constraints nullable="true"/>
|
||||
</column>
|
||||
<column name="updated" type="TIMESTAMP WITHOUT TIME ZONE"/>
|
||||
</createTable>
|
||||
<addForeignKeyConstraint baseColumnNames="assignable_place_id" baseTableName="assignable_role_place_post" constraintName="fk_assignable_role_place_post_place_id" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="assignable_role_place" validate="true"/>
|
||||
<addForeignKeyConstraint baseColumnNames="server_id" baseTableName="assignable_role_place_post" constraintName="fk_assignable_role_place_post_server" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="server" validate="true"/>
|
||||
<addForeignKeyConstraint baseColumnNames="channel_id" baseTableName="assignable_role_place_post" constraintName="fk_assignable_role_place_post_channel" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="channel" validate="true"/>
|
||||
<sql>
|
||||
DROP TRIGGER IF EXISTS assignable_role_place_post_update_trigger ON assignable_role_place_post;
|
||||
|
||||
@@ -31,12 +31,12 @@
|
||||
<column name="assigned_role_id" type="BIGINT">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
<column name="user_id" type="BIGINT">
|
||||
<column name="user_in_server_id" type="BIGINT">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
</createTable>
|
||||
<addForeignKeyConstraint baseColumnNames="assigned_role_id" baseTableName="assigned_role_in_user" constraintName="fk_assigned_role_in_user_assignable_role" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="assignable_role" validate="true"/>
|
||||
<addForeignKeyConstraint baseColumnNames="user_id" baseTableName="assigned_role_in_user" constraintName="fk_assigned_role_in_user_assigned_user" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="assigned_role_user" validate="true"/>
|
||||
<addForeignKeyConstraint baseColumnNames="user_in_server_id" baseTableName="assigned_role_in_user" constraintName="fk_assigned_role_in_user_assigned_user" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="assigned_role_user" validate="true"/>
|
||||
</changeSet>
|
||||
|
||||
</databaseChangeLog>
|
||||
Reference in New Issue
Block a user