diff --git a/src/lib/models/User.ts b/src/lib/models/User.ts index 87b3f9c..dd4dfcf 100644 --- a/src/lib/models/User.ts +++ b/src/lib/models/User.ts @@ -1,5 +1,6 @@ import * as sqz from "sequelize"; import { + BeforeCreate, BeforeUpdate, BelongsTo, BelongsToMany, @@ -42,11 +43,14 @@ export class User extends Model { * It assigns the corresponding level to the user * @param instance */ + @BeforeCreate @BeforeUpdate public static async assignLevel(instance: User) { - const level = await Level.findOne({where: {points: {[sqz.Op.lte]: instance.rankpoints}}, order: [["points", "desc"]]}) as Level; - if (level) { - instance.$set("rLevel", level); + if (instance.changed("rankpoints") || instance.isNewRecord) { + const level = await Level.findOne({where: {points: {[sqz.Op.lte]: instance.rankpoints}}, order: [["points", "desc"]]}) as Level; + if (level) { + instance.$set("rLevel", level); + } } }