Exemplo n.º 1
0
    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
Exemplo n.º 2
0
    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
Exemplo n.º 3
0
 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()
Exemplo n.º 4
0
    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
Exemplo n.º 5
0
    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