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
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()