Exemplo n.º 1
0
    def post(self):
        email = request.form.get('email', None)
        username = request.form.get('username', None)
        password = request.form.get('password', None)

        form = usersValidate.RegistrationForm(request.form)

        if form.validate():
            # add youngtip
            new_userId = ''
            try:
                user = UserModel(username=username,
                                 password=generate_password_hash(password),
                                 email=email)

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

                # add youngtip - check push
                new_userId = user.id

            except IntegrityError as e:
                field, value = get_exists_error(e)

                _return = {
                    'message': "'" + value + "' is already exists.",
                    'field': getattr(form, field).label.text
                }

                return _return, status.HTTP_400_BAD_REQUEST

            # modify youngtip
            # return None, status.HTTP_201_CREATED
            return {'id': new_userId}, status.HTTP_201_CREATED

        for field, errors in form.errors.items():
            for error in errors:
                _return = {
                    'message': error,
                    'field': getattr(form, field).label.text
                }

                return _return, status.HTTP_400_BAD_REQUEST
Exemplo n.º 2
0
    def post(self):
        email = request.form.get('email', None)
        username = request.form.get('username', None)
        password = request.form.get('password', None)

        form = usersValidate.RegistrationForm(request.form)

        if form.validate():
            try:
                user = UserModel(
                    username=username,
                    password=generate_password_hash(password),
                    email=email
                )
                db.session.add(user)
                db.session.commit()
            except IntegrityError as e:
                field, value = get_exists_error(e)

                _return = {
                    'message': "'" + value + "' is already exists.",
                    'field': {
                        'label': getattr(form, field).label.text,
                        'name': field
                    }
                }

                return _return, status.HTTP_400_BAD_REQUEST

            return None, status.HTTP_201_CREATED

        for field, errors in form.errors.items():
            for error in errors:
                _return = {
                    'message': error,
                    'field': getattr(form, field).label.text
                }

                return _return, status.HTTP_400_BAD_REQUEST
Exemplo n.º 3
0
    def put(self, prefix):
        try:
            if prefix == 'me':
                user_id = token_load_with_auth(
                    request.headers['Authorization'])['user_id']
            else:
                user_id = int(prefix)

            user_query = UserModel.query \
                .filter(UserModel.id == user_id)

            if token_is_auth(request.headers['Authorization'], user_id):
                user_permission = token_load_with_auth(
                    request.headers['Authorization'])['permission']

                if user_permission != 'ADMIN' and request.form.get(
                        'permission') is not None:
                    return "You don't have permission.", status.HTTP_401_UNAUTHORIZED

                form = userValidate.modificationForm(request.form)

                if form.validate():
                    if user_query.count():
                        user = user_query.first()

                        try:
                            for key, value in request.form.items():
                                if value is not None and value != '':
                                    if key == 'password':
                                        value = generate_password_hash(value)
                                        token_expire_all(user.id)

                                    setattr(user, key, value)

                            user.updated_at = datetime.datetime.now()
                            db.session.commit()
                        except IntegrityError as e:
                            field, value = get_exists_error(e)

                            _return = {
                                'message':
                                "'" + value + "' is already exists.",
                                'field': {
                                    'label': getattr(form, field).label.text,
                                    'name': field
                                }
                            }

                            return _return, status.HTTP_400_BAD_REQUEST

                        return None, status.HTTP_200_OK
                    else:
                        return "The user does not exist.", status.HTTP_404_NOT_FOUND

                for field, errors in form.errors.items():
                    for error in errors:
                        _return = {
                            'message': error,
                            'field': getattr(form, field).label.text
                        }

                        return _return, status.HTTP_400_BAD_REQUEST
            else:
                return "You don't have permission.", status.HTTP_401_UNAUTHORIZED

        except ValueError:
            return "Prefix can only be me or a number.", status.HTTP_400_BAD_REQUEST
Exemplo n.º 4
0
    def put(self, prefix):
        try:
            if prefix == 'me':
                user_id = token_load_with_auth(request.headers['Authorization'])['user_id']
            else:
                user_id = int(prefix)

            user_query = UserModel.query \
                .filter(UserModel.id == user_id)

            if token_is_auth(request.headers['Authorization'], user_id):
                user_permission = token_load_with_auth(request.headers['Authorization'])['permission']

                if user_permission != 'ADMIN' and request.form.get('permission') is not None:
                    return "You don't have permission.", status.HTTP_401_UNAUTHORIZED

                form = userValidate.modificationForm(request.form)

                if form.validate():
                    if user_query.count():
                        user = user_query.first()

                        try:
                            for key, value in request.form.items():
                                if value is not None and value != '':
                                    if key == 'password':
                                        value = generate_password_hash(value)
                                        token_expire_all(user.id)

                                    setattr(user, key, value)

                            user.updated_at = datetime.datetime.now()
                            db.session.commit()
                        except IntegrityError as e:
                            field, value = get_exists_error(e)

                            _return = {
                                'message': "'" + value + "' is already exists.",
                                'field': {
                                    'label': getattr(form, field).label.text,
                                    'name': field
                                }
                            }

                            return _return, status.HTTP_400_BAD_REQUEST

                        return None, status.HTTP_200_OK
                    else:
                        return "The user does not exist.", status.HTTP_404_NOT_FOUND

                for field, errors in form.errors.items():
                    for error in errors:
                        _return = {
                            'message': error,
                            'field': getattr(form, field).label.text
                        }

                        return _return, status.HTTP_400_BAD_REQUEST
            else:
                return "You don't have permission.", status.HTTP_401_UNAUTHORIZED

        except ValueError:
            return "Prefix can only be me or a number.", status.HTTP_400_BAD_REQUEST