All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.venky.swf.plugins.mobilesignup.extensions.mails.BeforeSaveUserEmail Maven / Gradle / Ivy

package com.venky.swf.plugins.mobilesignup.extensions.mails;

import com.venky.core.util.ObjectUtil;
import com.venky.swf.db.extensions.BeforeModelSaveExtension;
import com.venky.swf.plugins.background.core.TaskManager;
import com.venky.swf.plugins.collab.agents.SendOtp;
import com.venky.swf.plugins.collab.db.model.user.Phone;
import com.venky.swf.plugins.collab.db.model.user.UserEmail;
import com.venky.swf.plugins.collab.db.model.user.UserPhone;
import com.venky.swf.plugins.mobilesignup.db.model.SignUp;
import com.venky.swf.plugins.mobilesignup.db.model.User;
import com.venky.swf.sql.Conjunction;
import com.venky.swf.sql.Expression;
import com.venky.swf.sql.Operator;
import com.venky.swf.sql.Select;

import java.util.List;

public class BeforeSaveUserEmail extends BeforeModelSaveExtension {

    static {
        registerExtension(new BeforeSaveUserEmail());
    }



    @Override
    public void beforeSave(UserEmail model) {

        if (!model.isValidated() && ObjectUtil.isVoid(model.getLastOtp())){
            TaskManager.instance().executeAsync(new SendOtp(model),false);
        }
        
        if (model.isValidated() && model.getRawRecord().isFieldDirty("VALIDATED")){
            Expression expression = new Expression(getPool(), Conjunction.AND);
            expression.add(new Expression(getPool(), "email", Operator.EQ, model.getEmail()));
            expression.add(new Expression(getPool(), "user_id", Operator.NE, model.getUserId()));

            Select select = new Select().from(UserEmail.class).where(expression);
            List r = select.execute(UserEmail.class);
            if (!r.isEmpty()) {
                for (UserEmail userEmail : r) {
                    userEmail.destroy();
                    User another = userEmail.getUser().getRawRecord().getAsProxy(User.class);
                    if (ObjectUtil.equals(another.getEmail(), userEmail.getEmail())){
                        another.setEmail(null);
                        another.save();
                    }
                }
            }
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy