예제 #1
0
파일: controller.py 프로젝트: jab/radarpost
def _subscription_exists(request, mailbox_slug, sub_slug):
    ctx = request.context
    mb = ctx.get_mailbox(mailbox_slug)
    if mb is None:
        return HttpResponse(status=404)
    sub = Subscription.load(mb, sub_slug)
    if sub is None or sub.type != SUBSCRIPTION_TYPE: 
        return HttpResponse(status=404)
    return HttpResponse()
예제 #2
0
파일: controller.py 프로젝트: jab/radarpost
def _get_subscription_json(request, mailbox_slug, sub_slug):
    ctx = request.context
    mb = ctx.get_mailbox(mailbox_slug)
    if mb is None:
        return HttpResponse(status=404)

    sub = Subscription.load(mb, sub_slug)
    if sub is None or sub.type != SUBSCRIPTION_TYPE: 
        return HttpResponse(status=404)

    return HttpResponse(json.dumps(_sub_json(sub)), 
                        content_type="application/json")
예제 #3
0
파일: controller.py 프로젝트: jab/radarpost
def _delete_subscription(request, mailbox_slug, sub_slug):
    ctx = request.context
    mb = ctx.get_mailbox(mailbox_slug)
    if mb is None:
        return HttpResponse(status=404)

    if not ctx.user.has_perm(PERM_UPDATE, mb):
        return HttpResponse(status=401)

    sub = Subscription.load(mb, sub_slug)
    if sub is None or sub.type != SUBSCRIPTION_TYPE: 
        return HttpResponse(status=404)

    try:
        del mb[sub.id]
    except ResourceNotFound: 
        return HttpResponse(status=404)

    return HttpResponse()
예제 #4
0
파일: controller.py 프로젝트: jab/radarpost
def _update_subscription(request, mailbox_slug, sub_slug):
    ctx = request.context
    mb = ctx.get_mailbox(mailbox_slug)
    if mb is None:
        return HttpResponse(status=404)

    sub = Subscription.load(mb, sub_slug)
    if sub is None or sub.type != SUBSCRIPTION_TYPE: 
        return HttpResponse(status=404)

    if not ctx.user.has_perm(PERM_UPDATE, mb):
        return HttpResponse(status=401)


    params = _get_params_by_ct(request)
    try:
        sub.user_update(params)
        sub.store(mb)
        return HttpResponse()
    except:
        return HttpResponse(status=400)