コード例 #1
0
    def test_subscribe_requests_only_pending(self):
        device_id = "devid_pen"
        channel_name = "Pri_Pen"
        token = 'aabbccdd'

        sub1 = Subscriber()
        sub1.sub_type = 'android'
        sub1.token = token
        sub1.device_id = device_id
        sub1.save()

        ch_owner = User.objects.create(first_name="Sample_pen", last_name="User_pen", email="*****@*****.**")

        ch = Channel.objects.create(owner=ch_owner, name=channel_name, description="", kind=PRIVATE, subscriptions=0)

        url = reverse('channels-api:subscribe-channel-by-name', args=[channel_name])
        data = {'sub_type': 'android', 'device_id': device_id, 'token': token}
        response = self.client.post(url, data, format='json')
        self.assertEqual(response.status_code, status.HTTP_202_ACCEPTED)

        url = reverse('subscriptions-api:requests-list', args=[device_id])
        response = self.client.get(url)
        self.assertTrue(len(response.data) == 1)

        requests = ChannelSubscribeRequest.objects.filter(device_id=device_id)
        self.assertTrue(requests.count() == 1)
        change_request_status(requests[0], REJECTED)

        response = self.client.get(url)
        self.assertTrue(len(response.data) == 0)
コード例 #2
0
    def post(self, request):
        if request.is_ajax():
            sub_req_id = request.POST['sub_req_id']
            new_status = request.POST['new_status']

            statuses_mapper = {"APPROVE": ACCEPTED, "REJECT": REJECTED}

            subscribe_request = ChannelSubscribeRequest.objects.get(id=sub_req_id)

            change_request_status(subscribe_request, statuses_mapper[new_status])

            return HttpResponse(json.dumps(True),
                                content_type="application/json")

        return HttpResponseBadRequest()