Change user level only updating when points change

pull/4/head
trivernis 5 years ago
parent c01d37e355
commit 6fda95f735

@ -1,5 +1,6 @@
import * as sqz from "sequelize";
import {
BeforeCreate,
BeforeUpdate,
BelongsTo,
BelongsToMany,
@ -42,13 +43,16 @@ export class User extends Model<User> {
* It assigns the corresponding level to the user
* @param instance
*/
@BeforeCreate
@BeforeUpdate
public static async assignLevel(instance: User) {
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);
}
}
}
/**
* The name of the user

Loading…
Cancel
Save