Refactor church career validation in FalukantService
- Moved church career checks to a more logical position in the transaction flow. - Improved error handling by ensuring character existence is validated before checking for church office. - Cleaned up commented code for better readability and maintainability.
This commit is contained in:
@@ -1769,20 +1769,17 @@ class FalukantService extends BaseService {
|
||||
return await sequelize.transaction(async (t) => {
|
||||
const user = await getFalukantUserOrFail(hashedUserId, { transaction: t });
|
||||
|
||||
// Prüfe, ob User eine kirchliche Karriere hat (dann nur Direktoren können verkaufen)
|
||||
const character = await FalukantCharacter.findOne({ where: { userId: user.id }, transaction: t });
|
||||
if (character) {
|
||||
const churchOffice = await ChurchOffice.findOne({ where: { characterId: character.id }, transaction: t });
|
||||
if (churchOffice) {
|
||||
throw new Error('churchCareerNoDirectTransactions');
|
||||
}
|
||||
}
|
||||
|
||||
const branch = await getBranchOrFail(user.id, branchId);
|
||||
|
||||
// Prüfe, ob User eine kirchliche Karriere hat (dann nur Direktoren können verkaufen)
|
||||
const character = await FalukantCharacter.findOne({ where: { userId: user.id }, transaction: t });
|
||||
if (!character) throw new Error('No character found for user');
|
||||
|
||||
const churchOffice = await ChurchOffice.findOne({ where: { characterId: character.id }, transaction: t });
|
||||
if (churchOffice) {
|
||||
throw new Error('churchCareerNoDirectTransactions');
|
||||
}
|
||||
|
||||
const stocks = await FalukantStock.findAll({
|
||||
where: { branchId: branch.id },
|
||||
attributes: ['id'],
|
||||
@@ -1880,15 +1877,6 @@ class FalukantService extends BaseService {
|
||||
return await sequelize.transaction(async (t) => {
|
||||
const falukantUser = await getFalukantUserOrFail(hashedUserId, { transaction: t });
|
||||
|
||||
// Prüfe, ob User eine kirchliche Karriere hat (dann nur Direktoren können verkaufen)
|
||||
const character = await FalukantCharacter.findOne({ where: { userId: falukantUser.id }, transaction: t });
|
||||
if (character) {
|
||||
const churchOffice = await ChurchOffice.findOne({ where: { characterId: character.id }, transaction: t });
|
||||
if (churchOffice) {
|
||||
throw new Error('churchCareerNoDirectTransactions');
|
||||
}
|
||||
}
|
||||
|
||||
const branch = await Branch.findOne({
|
||||
where: { id: branchId, falukantUserId: falukantUser.id },
|
||||
include: [{ model: FalukantStock, as: 'stocks' }],
|
||||
@@ -1896,8 +1884,15 @@ class FalukantService extends BaseService {
|
||||
});
|
||||
if (!branch) throw new Error('Branch not found');
|
||||
const stockIds = branch.stocks.map(s => s.id);
|
||||
|
||||
// Prüfe, ob User eine kirchliche Karriere hat (dann nur Direktoren können verkaufen)
|
||||
const character = await FalukantCharacter.findOne({ where: { userId: falukantUser.id }, transaction: t });
|
||||
if (!character) throw new Error('No character for user');
|
||||
|
||||
const churchOffice = await ChurchOffice.findOne({ where: { characterId: character.id }, transaction: t });
|
||||
if (churchOffice) {
|
||||
throw new Error('churchCareerNoDirectTransactions');
|
||||
}
|
||||
const inventory = await Inventory.findAll({
|
||||
where: { stockId: stockIds },
|
||||
include: [
|
||||
|
||||
Reference in New Issue
Block a user