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