def getProductsByCategoryId(id): #check that category exists exist = False for value in readDatabase()['category']: if value['id'] == id: exist = True break if exist == False: abort(404) #Getting list of all products that belong to given category id products = readDatabase()['product'] correctProduct = [ product for product in products if product['categoryId'] == id ] return correctProduct
def updateCategory(body, id): data = readDatabase() for item in data['category']: if item['id'] == id: #If this category exists item['name'] = body['name'] #then I can change properties updateItem(data) return item return {}
def deleteCategory(categoryID): #First of all I try to find all products that belong to this category #If they exist then I delete them products = readDatabase()['product'] data = [value for value in products if value['categoryId'] != categoryID] deleteItem('product', data) #Finally I delete category in the same principle as product deleting categories = readDatabase()['category'] data = [] delete = [] for value in categories: if value['id'] != categoryID: data.append(value) else: delete.append(value) if len(delete) != 0: deleteItem('category', data) return delete return []
def deleteProduct(itemID): products = readDatabase()['product'] #Getting list of all products data = [] delete = [] for value in products: if value['id'] != itemID: #Adding all product that does not belong to given id data.append(value) else: delete.append(value) if len(delete) != 0: deleteItem('product', data) return delete #returning deleted product return []
def updateProduct(body, id): data = readDatabase() for item in data['product']: if item['id'] == id: #If this product exists categoryID = getCategoryID(data['category'], body['category']) if categoryID == -1: #There is now such category return {} #Change all properties item['name'] = body['name'] item['categoryId'] = categoryID updateItem(data) return item return {}
def getAllCategories(): #Getting list of all categories categories = readDatabase()['category'] return categories
def getAllData(): #Getting all possible data from database return readDatabase()