예제 #1
0
def register():
    if request.method == "POST":
        email = request.json.get("email", None)
        name = request.json.get("name", None)
        first_lastname = request.json.get("lastname1", None)
        second_lastname = request.json.get("lastname2", None)
        password = request.json.get("password", None)

        if not email or email == "":
            return jsonify({"msg": "El email es requerido"}), 400

        if not name or name == "":
            return jsonify({"msg": "Debes indicar tu nombre"}), 400

        if not first_lastname or first_lastname == "":
            return jsonify({"msg": "Debes indicar tu apellido paterno"}), 400

        if not second_lastname or second_lastname == "":
            return jsonify({"msg": "Debes indicar tu apellido materno"}), 400

        if not password or password == "":
            return jsonify({"msg": "La contrasena es requerida"}), 400

        user = Users.query.filter_by(email=email).first()
        if user:
            return jsonify({"msg": "El email ya existe"}), 400

        if "avatar" in request.files:
            avatar = request.files["avatar"]
            if avatar.filename != "":
                if allowed_images_file(avatar.filename):
                    filename = secure_filename(avatar.filename)
                    avatar.save(
                        os.path.join(
                            os.path.join(app.config['UPLOAD_FOLDER'],
                                         "img/avatar"), filename))
                else:
                    return jsonify({"msg": "Image not allowed"})

        user = Users()
        user.email = email
        user.name = name
        user.first_lastname = first_lastname
        user.second_lastname = second_lastname
        user.password = bcrypt.generate_password_hash(password)

        if "avatar" in request.files:
            user.avatar = filename

        db.session.add(user)
        db.session.commit()

        html = render_template("emails/email-register.html", user=user)

        #send_mail("Registro de usuario", user.email, user.username, html)

        access_token = create_access_token(identity=user.email)
        data = {"access_token": access_token, "user": user.serialize()}
        return jsonify(data), 200