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()
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")
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()
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)