Exemplo n.º 1
0
    def put(self):
        json = request.get_json()

        parser = reqparse.RequestParser()
        parser.add_argument('Magic-key', type=int, location='headers')
        parser.add_argument('tea_id', type=int, location='args')
        
        tea_id = parser.parse_args().get('tea_id')
        magic_key = parser.parse_args().get('Magic-key')

        if magic_key not in [1]:
            return Error.getError(401, "Unauthorized")

        tea = TeaModel.query.filter_by(id=tea_id).one_or_none()
        if tea == None:
            return Error.getError(404, "Tea not found")


        tea.country = json['country']
        tea.descryption = json['descryption']
        tea.name = json['name']
        tea.stock = json['stock']
        tea.price = json['price']
        tea.tea_type = json['teaType']

        try:
            db.session.add(tea)
            db.session.commit()
        except Exception as e:
            return Error.getError(500, "Internal server eroror in database while adding tea")


        response = jsonify(tea.serialize())
        response.status_code = 200
        return response
Exemplo n.º 2
0
    def post(self):
        json = request.get_json()

        user = UserModel()
        if 'loginOrEmail' in json:
            user = UserModel.query.filter(
                or_(UserModel.login == json['loginOrEmail'],
                    UserModel.email == json['loginOrEmail'])).one_or_none()
            if user == None:
                return Error.getError(401, "WrOnG LoGiN oR eMaIl!")
        else:
            return Error.getError(
                400,
                "How can I find user, when you not give login or name??????????"
            )

        if 'password' in json:
            if json['password'] != user.password:
                return Error.getError(401, "Bad password, silly tiny hacker!")
        else:
            return Error.getError(
                400,
                "Ok, I have a user, but now I need a password! I should made a limit for dump requests!!!"
            )

        response = jsonify({
            'key': user.user_type.id,
            'userType': user.user_type.user_type_name,
            "userId": user.id
        })
        response.status_code = 200
        return response
Exemplo n.º 3
0
    def put(self):
        parser = reqparse.RequestParser()
        parser.add_argument('order_id', type=int, location='args')
        parser.add_argument('Magic-key', type=int, location='headers')
        magic_key = parser.parse_args().get('Magic-key')
        if magic_key not in [1, 2]:
            return Error.getError(401, "Unauthorized")

        order_id = parser.parse_args().get('order_id')

        order = OrderModel.query.filter_by(id=order_id).one_or_none()
        if order == None:
            return Error.getError(404, "Order not found")

        json = request.get_json()
        order.status_id = json['status']

        try:
            db.session.add(order)
            db.session.commit()
        except Exception:
            return Error.getError(
                500, "Like others u know server database workin niht bleble")

        response = jsonify(order.serialize())
        response.status_code = 200
        return response
Exemplo n.º 4
0
    def post(self):
        json = request.get_json()

        parser = reqparse.RequestParser()
        parser.add_argument('Magic-key', type=int, location='headers')
        magic_key = parser.parse_args().get('Magic-key')
        print(magic_key)
        if magic_key not in [1]:
            return Error.getError(401, "Unauthorized")


        tea = TeaModel()
        tea.country = json['country']
        tea.descryption = json['descryption']
        tea.name = json['name']
        tea.stock = json['stock']
        tea.price = json['price']
        tea.tea_type = json['teaType']
        tea.photo_id =  random.randrange(1, 8)

        try:
            db.session.add(tea)
            db.session.commit()
        except Exception as e:
            #print(e)
            return Error.getError(500, "Internal server eroror in database while adding tea")


        response = jsonify(tea.serialize())
        response.status_code = 200
        return response
Exemplo n.º 5
0
    def delete(self):
        parser = reqparse.RequestParser()
        parser.add_argument('Magic-key', type=int, location='headers')
        parser.add_argument('tea_id', type=int, location='args')
        
        tea_id = parser.parse_args().get('tea_id')
        magic_key = parser.parse_args().get('Magic-key')

        if magic_key not in [1]:
            return Error.getError(401, "Unauthorized")

        tea = TeaModel.query.filter_by(id=tea_id).one_or_none()
        if tea == None:
            return Error.getError(404, "Tea not found")

        try:
            db.session.delete(tea)
            db.session.commit()
        except Exception as e:
            return Error.getError(500, "Internal server eroror in database while adding tea")

        response = Response()
        response.status_code = 200
        return response


        
Exemplo n.º 6
0
    def put(self):
        parser = reqparse.RequestParser()
        parser.add_argument('user_id', type=int, location='args')
        user_id = parser.parse_args().get('user_id')
        
        user = UserModel.query.filter_by(id=user_id).one_or_none()
        if user == None:
            return Error.getError(404, "Users not found")

        json = request.get_json()

        user.email = json['email']
        user.login = json['login']
        user.password = json['password']
        user.user_type = json['user_type']

    
        try:
            db.session.add(user)
            db.session.commit()
        except Exception:
            return Error.getError(500, "Internal server eroror in database while vladimir PUTin user")

        response = jsonify(user.serialize())
        response.status_code = 200
        return response
Exemplo n.º 7
0
    def post(self):
        parser = reqparse.RequestParser()
        parser.add_argument('Magic-key', type=int, location='headers')
        magic_key = parser.parse_args().get('Magic-key')
        if magic_key not in [1, 2]:
            return Error.getError(401, "Unauthorized")

        json = request.get_json()

        order = OrderModel()
        order.details = json['details']
        order.status_id = json['status']

        address = AddressModel()
        json_address = json['address']
        if 'id' in json_address:
            address = AddressModel.query.filter_by(
                id=json_address['id']).one_or_none()
            if address == None:
                return Error.getError(404, "Address not found")
        else:
            address.number = json_address['number']
            address.city = json_address['city']
            address.country = json_address['country']
            address.street = json_address['street']
            address.postal_code = json_address['postal_code']
            try:
                db.session.add(address)
            except Exception:
                return Error.getError(500, "Error databse address... TMI")

        order.address = address

        user = UserModel.query.filter_by(id=json['orderedBy']).one_or_none()
        if user == None:
            return Error.getError(404, "User not found")

        order.ordered_by = [user]

        order.ordered_teas = []
        #[order.teas.append(TeaModel.query.filter_by(id=tea_id).one_or_none()) for tea_id in  json['teaIds']]

        for ordered_tea_json in json['orderedTeas']:
            ordered_tea = OrderedTeas()
            ordered_tea.tea_id = ordered_tea_json["teaId"]
            ordered_tea.quantity = ordered_tea_json["quantity"]
            order.ordered_teas.append(ordered_tea)

        try:
            db.session.add(order)
            db.session.commit()
        except Exception:
            return Error.getError(500, "Internal server error i'm tired")

        response = jsonify(order.serialize())
        response.status_code = 200
        return response
Exemplo n.º 8
0
    def put(self, tea_id):

        parser = reqparse.RequestParser()
        parser.add_argument('file',
                            type=werkzeug.datastructures.FileStorage,
                            location='files')

        parser.add_argument('Magic-key', type=int, location='headers')
        magic_key = parser.parse_args().get('Magic-key')
        if magic_key not in [1]:
            return Error.getError(401, "Unauthorized")

        args = parser.parse_args()
        file = args['file']

        tea = TeaModel.query.filter_by(id=tea_id).one_or_none()
        if tea == None:
            return Error.getError(404, "Tea not found")

        print(file)

        try:
            file.save(os.path.relpath('photo_store' + '/' + file.filename))
        except Exception:
            return Error.getError(
                500, "Internal server fuckup whuile saving photo on disk")

        teaPhoto = PhotoModel()
        teaPhoto.path = 'photo_store' + '/' + file.filename

        try:
            db.session.add(teaPhoto)
            db.session.commit()
        except Exception as e:
            return Error.getError(
                500, "Internal server fuckup while saving photo in database")

        tea.photo_id = teaPhoto.id

        try:
            db.session.add(tea)
            db.session.commit()
        except Exception as e:
            return Error.getError(
                500, "Internal server fuckup whuile saving tea in database")

        response = jsonify(tea.serialize())
        response.status_code = 200
        return response
Exemplo n.º 9
0
    def get(self, tea_id):

        tea = TeaModel.query.filter_by(id=tea_id).one_or_none()
        if tea == None:
            return Error.getError(404, "Tea not found")
        return flask.send_file(os.path.abspath(tea.photo.path),
                               as_attachment=False)
Exemplo n.º 10
0
    def get(self):
        parser = reqparse.RequestParser()
        parser.add_argument('order_id', type=int, location='args')
        parser.add_argument('Magic-key', type=int, location='headers')
        magic_key = parser.parse_args().get('Magic-key')
        if magic_key not in [1, 2]:
            return Error.getError(401, "Unauthorized")

        order_id = parser.parse_args().get('order_id')

        order = OrderModel.query.filter_by(id=order_id).one_or_none()
        if order == None:
            return Error.getError(404, "Order not found")

        response = jsonify(order.serialize())
        response.status_code = 200
        return response
Exemplo n.º 11
0
    def get(self):
        parser = reqparse.RequestParser()
        parser.add_argument('tea_id', type=int, location='args')
        tea_id = parser.parse_args().get('tea_id')
        
        user = TeaModel.query.filter_by(id=tea_id).one_or_none()
        if user == None:
            return Error.getError(404, "Tea not found")

        response = jsonify(user.serialize())
        response.status_code = 200
        return response
Exemplo n.º 12
0
    def post(self):
        json = request.get_json()

        user = UserModel()
        user.email = json['email']
        user.login = json['login']
        user.password = json['password']


        if UserModel.query.filter(UserModel.login == json['login']).first():
            return Error.getError(409, "login not unique")
        if UserModel.query.filter(UserModel.email == json['email']).first():
            return Error.getError(409, "email not unique")


        user_type = UserTypeModel.query.filter_by(id=json['user_type']).one_or_none()
        if user_type == None:
            return Error.getError(404, "UserType not found")
        user.user_type = user_type

        address = AddressModel()
        json_address = json['default_address']
        if 'id' in json_address:
            address = AddressModel.query.filter_by(id=json_address['id']).one_or_none()
            if address == None:
                return Error.getError(404, "Address not found")
        else:
            address.number = json_address['number']
            address.city = json_address['city']
            address.country = json_address['country']
            address.street = json_address['street']
            address.postal_code = json_address['postal_code']
            try:
                db.session.add(address)
            except Exception:
                return Error.getError(500, "Internal server eroror in database while adding user address")

        user.address = address

        try:
            db.session.add(user)
            db.session.commit()
        except Exception as e:
            print(e)
            return Error.getError(500, "Internal server eroror in database while adding user")


        response = jsonify(user.serialize())
        response.status_code = 201
        return response
Exemplo n.º 13
0
    def get(self):
        parser = reqparse.RequestParser()
        parser.add_argument('Magic-key', type=int, location='headers')
        magic_key = parser.parse_args().get('Magic-key')
        if magic_key not in [1, 2]:
            return Error.getError(401, "Unauthorized")

        parser = reqparse.RequestParser()
        parser.add_argument('orderedBy', type=int, location='args')
        parser.add_argument('pageNumber', type=int, location='args')
        parser.add_argument('sortBy', type=str, location='args')
        parser.add_argument('sortDirection', type=str, location='args')

        ordered_by_id = parser.parse_args().get('orderedBy')
        per_page = parser.parse_args().get('perPage')
        page_number = parser.parse_args().get('pageNumber')
        sort_by = parser.parse_args().get('sortBy')
        sort_dir = parser.parse_args().get(
            'sortDirection') if parser.parse_args().get('sortDirection') in [
                'inc', 'desc'
            ] else 'inc'

        order_name = {
            'id': OrderModel.id,
            'status': OrderModel.status,
        }

        order_query = None
        if sort_by in order_name:
            order_query = {
                'inc': order_name[sort_by],
                'desc': desc(order_name[sort_by])
            }[sort_dir]

        orders_paginator = None

        if ordered_by_id is not None:
            ordered_by = UserModel.query.filter_by(
                id=ordered_by_id).one_or_none()
            if ordered_by == None:
                return Error.getError(404, "Order not found")

            orders_paginator = OrderModel.query.filter(OrderModel.ordered_by.contains(ordered_by)) \
                .order_by(order_query) \
                .paginate(page=page_number, per_page=per_page, error_out=False, max_per_page=1500)
        else:
            orders_paginator = OrderModel.query.filter() \
                .order_by(order_query) \
                .paginate(page=page_number, per_page=per_page, error_out=False, max_per_page=1500)

        orders = []
        [orders.append(order.serialize()) for order in orders_paginator.items]

        resDic = {
            'page': orders_paginator.page,
            'pages': orders_paginator.pages,
            'perPage': orders_paginator.per_page,
            'hasNext': orders_paginator.has_next,
            'hasPrev': orders_paginator.has_prev,
            'total': orders_paginator.total,
            'itemsNumber': len(orders),
            'items': orders
        }

        response = jsonify(resDic)
        response.status_code = 200
        return response