def post(self): item = request.get_json() if request.get_json() else request.form try: if item: if UserModel().get_by_email(item['email']): return f'The email "{item["email"]}" is already in use.', 400 model = UserModel() model.first_name = item['first_name'] model.last_name = item['last_name'] model.email = item['email'] model.active = item['active'] if 'active' in item else True model.role = item['role'] if 'role' in item else 'client' model.password = item['password'] model.timestamp = date.today() model.save() user = model.get_by_email(item['email']) return {'status': 'created', 'id': user.id}, 201 else: return 'not created, invalid payload', 400 except Exception as e: print(e) return f"{e}", 500
def post(self): attributes = reqparse.RequestParser() attributes.add_argument('email', type=str, required=True, help="The field 'email' cannot be left blank.") attributes.add_argument( 'password', type=str, required=True, help="The field 'password' cannot be left blank.") attributes.add_argument('active', type=bool) data = attributes.parse_args() if UserModel.find_by_email(data['email']): return { 'message': f"The email '{data['email']}' already exists." }, 400 user = UserModel(**data) user.active = False # Security try: user_id = user.save_user() user.send_confirmation_email() return {'message': f'User {user_id} created successfully!'}, 201 except Exception as ex: user.delete_user() traceback.print_exc() return { 'message': f'An internal server error has occured: {ex}.' }, 500
def migration(): # aqui alteramos o banco engine = create_engine(environ.get('SQLALCHEMY_DATABASE_URI')) # <ClassModelName>.__table__.drop(engine) db.create_all() if not UserModel.get_by_email('*****@*****.**'): admin = UserModel() admin.first_name = "Admin" admin.last_name = "" admin.role = "admin" admin.email = "*****@*****.**" admin.password = "******" admin.active = True admin.timestamp = date.today() admin.save()
def post(self): item = request.get_json() if request.get_json() else request.form try: if item: model = UserModel() model.first_name = item['first_name'] model.last_name = item['last_name'] model.email = item['email'] model.active = item['active'] if 'active' in item else True model.password = encrypt(item['password']) model.timestamp = date.today() model.save() return 'created', 201 else: return 'not created, invalid payload', 400 except Exception as e: return f"{e}", 500
def post(self): item = request.get_json() if request.get_json() else request.form try: if item: # valida os dados de inserção if not user_validate(item)['success']: return user_validate(item), 400 # insere os itens de usuario user = UserModel() user.email = item['email'] user.password = encrypt(item['password']) user.type_user = item['type_user'] user.active = item['active'] if 'active' in item else True user.created_date = date.today() user.save() user_inserted = UserModel.get_by_email(item['email']) phone_inserted = insert_into_phone(item['tel'], user_inserted) # checa o tipo de usuario if str(item["type_user"]) == "insured": insured_validate(item) # insere as info do usuario na tabela de acordo com o tipo response = insert_into_insured(item, user_inserted) elif str(item["type_user"]) == "provider": provider_validate(item) # insere as info do usuario na tabela de acordo com o tipo response = insert_into_provider(item, user_inserted) else: collaborator_validate(item) # insere as info do usuario na tabela de acordo com o tipo response = insert_into_collaborator(item, user_inserted) return response, 201 else: return 'not created, invalid payload', 400 except Exception as e: user.delete() return f"{e}", 500