コード例 #1
0
def register():
    # get user infos from request
    user_infos = dict()
    user_infos["email"] = request.json["email"]
    hash = hashlib.sha256()
    hash.update(request.json["password"].encode())
    password = hash.hexdigest()
    user_infos["password"] = password
    user_infos["first_name"] = request.json["first_name"]
    user_infos["last_name"] = request.json["last_name"]
    user_infos["phone"] = request.json.get("phone")

    session = Session()
    try:
        # create user
        user = User(**user_infos)
        session.add(user)
        session.query(User).filter(User.email == user_infos["email"]).one()
        # create access token from user infos
        user_data = user.get_small_data()
        access_token = create_access_token(identity=user_data)
        user_data["access_token"] = access_token
        session.commit()
    except IntegrityError:
        session.rollback()
        return jsonify({"error":
                        f"User {user_infos['email']} already exists"}), 400
    except:
        session.rollback()
        return jsonify({"error": "An unexpected error occured"}), 500
    finally:
        session.close()

    return jsonify(**user_data), 200
コード例 #2
0
def create_company(name: str, siren: str, email: str, phone: str, made_by_id: int):
    session = Session()
    try:
        creator = session.query(User).get(made_by_id)
        if creator is None:
            raise Exception("Company creator not found")
        company = Company(name=name, siren=siren, email=email, phone=phone)
        session.add(company)
        session.query(Company).filter(
            CompanyRestaurateur.siren == siren,
        ).one()  # update company instance with id from database
        creator.company_id = company.id
        session.commit()
        return company.get_small_data()
    except:
        session.rollback()
        return False
    finally:
        session.close()