def create(data, is_unique_title=False): try: title = data.get("title", "") if not title: res = {"api_success": False, "api_msg": '"title" field is required', "api_function": create.__name__} logging.warning(res) return render_json_response(res) if is_unique_title and is_category_exist(title): res = {"api_success": False, "api_msg": 'Field "title" must be unique', "api_function": create.__name__} logging.warning(res) return render_json_response(res) available = data.get("available", False) parent = data.get("parent", None) if parent: parent_id = parent.get("id", None) if parent_id: parent = Category.get_by_id(parent_id) if parent: category = Category(title=title, parent_category=parent.key, available=available) else: category = Category(title=title, available=available) category.put() res = {"api_success": True, "api_msg": "Category created", "category": category.to_json()} logging.info(res) return render_json_response(res) except Exception, e: res = {"api_success": False, "api_msg": str(e), "api_function": create.__name__} logging.error(res) return render_json_response(res)
def create_category(request): if request.method == 'POST': try: model = simplejson.loads(request.data) title = model.get('title', '') available = model.get('available', False) only_end_products = model.get('only_end_products') parent_category = model.get('parent_category', None) if parent_category: parent_id = parent_category.get('id', None) if parent_id: parent_category = Category.get_by_id(int(parent_id)) if parent_category: parent_category = parent_category.key category = Category( title=title, available=available, parent_category=parent_category, only_end_products=only_end_products) category.put() res = {'api_success': True, 'api_msg': 'Category "%s" created' % category.key.id()} res.update(category.to_json()) return render_json_response(res) except Exception, e: res = {'api_success': False, 'api_msg': str(e)} return render_json_response(res)
def put_category(request, category, is_new=False): model = simplejson.loads(request.data) if type(model) != dict: return render_json_response({ 'api': { 'success': False, 'msg': 'Invalid data', 'data': request.data } }, status=500) if is_new: category = Category(title='') change_string(category, 'title', model.get('title')) change_string(category, 'available', model.get('available')) change_string(category, 'only_end_products', model.get('only_end_products')) wrn = [] parent_category = model.get('parent_category') if type(parent_category) == dict: parent_id = parent_category.get('id') if parent_id: parent_category_obj = Category.get_by_id(int(parent_id)) if parent_category_obj: category.parent_category = parent_category_obj.key else: wrn.append('Category with ID: %s not found' % parent_id) else: if parent_category == {}: category.parent_category = None else: wrn.append('Invalid category object: %s' % parent_category) category.put() if is_new: msg = 'Category %s created' else: msg = 'Category %s updated' data = {'api':{ 'success': True, 'msg': msg % category.id, 'wrn': wrn } } data.update(category.to_json()) return render_json_response(data)