Refactor director data processing in FalukantService: Improved handling of null character references and added default values for character properties. This enhances data integrity and prevents potential runtime errors when processing director information.
This commit is contained in:
@@ -2567,28 +2567,28 @@ class FalukantService extends BaseService {
|
|||||||
],
|
],
|
||||||
attributes: ['id', 'satisfaction', 'income'],
|
attributes: ['id', 'satisfaction', 'income'],
|
||||||
});
|
});
|
||||||
return directors.map(director => {
|
return directors
|
||||||
// 1) avgKnowledge berechnen
|
.filter(director => director.character != null)
|
||||||
const knowledges = director.character.knowledges || [];
|
.map(director => {
|
||||||
const avgKnowledge = knowledges.length
|
const char = director.character;
|
||||||
? knowledges.reduce((sum, k) => sum + k.knowledge, 0) / knowledges.length
|
const knowledges = char.knowledges || [];
|
||||||
: 0;
|
const avgKnowledge = knowledges.length
|
||||||
|
? knowledges.reduce((sum, k) => sum + (k.knowledge || 0), 0) / knowledges.length
|
||||||
// 2) wishedIncome anhand der JS-Formel
|
: 0;
|
||||||
const wishedIncome = Math.round(
|
const nobleLevel = char.nobleTitle?.level ?? 1;
|
||||||
director.character.nobleTitle.level * Math.pow(1.231, avgKnowledge / 1.5)
|
const wishedIncome = Math.round(
|
||||||
);
|
nobleLevel * Math.pow(1.231, avgKnowledge / 1.5)
|
||||||
|
);
|
||||||
return {
|
return {
|
||||||
id: director.id,
|
id: director.id,
|
||||||
satisfaction: director.satisfaction,
|
satisfaction: director.satisfaction,
|
||||||
character: director.character,
|
character: char,
|
||||||
age: calcAge(director.character.birthdate),
|
age: calcAge(char.birthdate),
|
||||||
income: director.income,
|
income: director.income,
|
||||||
region: director.character.region.name,
|
region: char.region?.name ?? '',
|
||||||
wishedIncome,
|
wishedIncome,
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
async updateDirector(hashedUserId, directorId, income) {
|
async updateDirector(hashedUserId, directorId, income) {
|
||||||
|
|||||||
Reference in New Issue
Block a user