Example #1
0
def kv_list(request, kv_class, obj_pk):
    """
    GET to:
    /core/keyvalue/api/<kv_class>/<kv_pk>/list/

    Returns a list of all KV objects associated with an object.
    """
    obj, KVKlass = resolve_obj(kv_class, obj_pk)
    kvs = KVKlass.objects.filter(obj=obj)
    ret_kvs = []
    for kv in kvs:
        ret_kvs.append(kv.get_bundle())
    return HttpResponse(json.dumps({'success': True, 'kvs': ret_kvs}))
Example #2
0
def kv_create(request, kv_class, obj_pk):
    """
    POST to:
    /core/keyvalue/api/<kv_class>/create/

    with parameters like:

    {
        'key': 'key_string'
        'value': 'value_string'
        'obj_pk': 1
    }

    Status Codes:
        * 201 - Object created
        * 400 - Issues during creation
    """
    key, value, errors = get_kv(request)
    if errors:
        return HttpResponse(status=400,
                            content=json.dumps({
                                'success': False,
                                'message': errors
                            }))
    obj, KVKlass = resolve_obj(kv_class, obj_pk)
    try:
        kv = KVKlass(obj=obj, key=key, value=value)
        kv.clean()
        kv.save()
        resp = {
            'status':
            201,
            'content':
            json.dumps({
                'success': True,
                'key': kv.key,
                'value': kv.value,
                'obj_uri': kv.uri,
                'kv_pk': kv.pk
            })
        }
    except ValidationError, e:
        resp = {
            'status': 400,
            'content': json.dumps({
                'success': False,
                'message': str(e)
            })
        }
Example #3
0
def kv_list(request, kv_class, obj_pk):
    """
    GET to:
    /core/keyvalue/api/<kv_class>/<kv_pk>/list/

    Returns a list of all KV objects associated with an object.
    """
    obj, KVKlass = resolve_obj(kv_class, obj_pk)
    kvs = KVKlass.objects.filter(obj=obj)
    ret_kvs = []
    for kv in kvs:
        ret_kvs.append(kv.get_bundle())
    return HttpResponse(
        json.dumps({'success': True, 'kvs': ret_kvs})
    )
Example #4
0
def kv_create(request, kv_class, obj_pk):
    """
    POST to:
    /core/keyvalue/api/<kv_class>/create/

    with parameters like:

    {
        'key': 'key_string'
        'value': 'value_string'
        'obj_pk': 1
    }

    Status Codes:
        * 201 - Object created
        * 400 - Issues during creation
    """
    key, value, errors = get_kv(request)
    if errors:
        return HttpResponse(
            status=400, content=json.dumps(
                {'success': False, 'message': errors}
            )
        )
    obj, KVKlass = resolve_obj(kv_class, obj_pk)
    try:
        kv = KVKlass(obj=obj, key=key, value=value)
        kv.clean()
        kv.save()
        resp = {
            'status': 201,
            'content': json.dumps(
                {
                    'success': True,
                    'key': kv.key,
                    'value': kv.value,
                    'obj_uri': kv.uri,
                    'kv_pk': kv.pk
                }
            )
        }
    except ValidationError, e:
        resp = {
            'status': 400,
            'content': json.dumps({'success': False, 'message': str(e)})
        }