示例#1
0
    def setUp(self):
        self.backend1 = SQLTelerivetBackend(
            name='TELERIVET1',
            is_global=True,
            hq_api_id=SQLTelerivetBackend.get_api_id())
        self.backend1.set_extra_fields(webhook_secret='abc')
        self.backend1.save()

        self.backend2 = SQLTelerivetBackend(
            name='TELERIVET2',
            is_global=True,
            hq_api_id=SQLTelerivetBackend.get_api_id())
        self.backend2.set_extra_fields(webhook_secret='def')
        self.backend2.save()
示例#2
0
 def setUp(self):
     super(TelerivetLogCallTestCase, self).setUp()
     self.backend = SQLTelerivetBackend(
         name='MOBILE_BACKEND_TELERIVET',
         is_global=True,
         hq_api_id=SQLTelerivetBackend.get_api_id())
     self.backend.set_extra_fields(webhook_secret='abc')
     self.backend.save()
示例#3
0
def send_sample_sms(request, domain):
    request_token = request.POST.get('request_token')
    if not TelerivetSetupView.get_cached_webhook_secret(request_token):
        return {
            'success': False,
            'unexpected_error': TelerivetSetupView.unexpected_error,
        }

    outgoing_sms_form = TelerivetOutgoingSMSForm({
        'api_key':
        request.POST.get('api_key'),
        'project_id':
        request.POST.get('project_id'),
        'phone_id':
        request.POST.get('phone_id'),
    })

    test_sms_form = TelerivetPhoneNumberForm({
        'test_phone_number':
        request.POST.get('test_phone_number'),
    })

    # Be sure to call .is_valid() on both
    outgoing_sms_form_valid = outgoing_sms_form.is_valid()
    test_sms_form_valid = test_sms_form.is_valid()
    if not outgoing_sms_form_valid or not test_sms_form_valid:
        return json_response({
            'success':
            False,
            'api_key_error':
            TelerivetSetupView.get_error_message(outgoing_sms_form, 'api_key'),
            'project_id_error':
            TelerivetSetupView.get_error_message(outgoing_sms_form,
                                                 'project_id'),
            'phone_id_error':
            TelerivetSetupView.get_error_message(outgoing_sms_form,
                                                 'phone_id'),
            'test_phone_number_error':
            TelerivetSetupView.get_error_message(test_sms_form,
                                                 'test_phone_number'),
        })

    tmp_backend = SQLTelerivetBackend()
    tmp_backend.set_extra_fields(
        api_key=outgoing_sms_form.cleaned_data.get('api_key'),
        project_id=outgoing_sms_form.cleaned_data.get('project_id'),
        phone_id=outgoing_sms_form.cleaned_data.get('phone_id'),
    )
    sms = SMS(phone_number=clean_phone_number(
        test_sms_form.cleaned_data.get('test_phone_number')),
              text="This is a test SMS from CommCareHQ.")
    tmp_backend.send(sms)
    return json_response({
        'success': True,
    })
示例#4
0
    def setUp(self):
        self.backend = SQLTelerivetBackend(
            name='TELERIVET',
            is_global=True,
            hq_api_id=SQLTelerivetBackend.get_api_id())
        self.backend.set_extra_fields(
            webhook_secret='The chamber of webhook secrets')
        self.backend.save()

        self.sms = SMS(phone_number='27845698785', text="Fame is fickle")
        self.sms.save()
示例#5
0
    def setUp(self):
        super(TestProcessMessageStatus, self).setUp()
        self.backend = SQLTelerivetBackend(
            name='TELERIVET',
            is_global=True,
            hq_api_id=SQLTelerivetBackend.get_api_id())
        self.backend.set_extra_fields(
            webhook_secret='The chamber of webhook secrets')
        self.backend.save()

        self.sms = SMS(
            text='I am testy',
            custom_metadata={'case_id': '123'},
        )
        self.sms.save()
示例#6
0
def create_backend(request, domain):
    webhook_secret = TelerivetSetupView.get_cached_webhook_secret(
        request.POST.get('request_token'))
    values = {
        'name': request.POST.get('name'),
        'description': _("My Telerivet Gateway"),
        'api_key': request.POST.get('api_key'),
        'project_id': request.POST.get('project_id'),
        'phone_id': request.POST.get('phone_id'),
        'webhook_secret': webhook_secret,
    }
    form = TelerivetBackendForm(values, domain=domain, backend_id=None)
    if form.is_valid():
        with transaction.atomic():
            backend = SQLTelerivetBackend(
                backend_type=SQLMobileBackend.SMS,
                inbound_api_key=webhook_secret,
                hq_api_id=SQLTelerivetBackend.get_api_id(),
                is_global=False,
                domain=domain,
                name=form.cleaned_data.get('name'),
                description=form.cleaned_data.get('description'))
            backend.set_extra_fields(
                api_key=form.cleaned_data.get('api_key'),
                project_id=form.cleaned_data.get('project_id'),
                phone_id=form.cleaned_data.get('phone_id'),
                webhook_secret=webhook_secret)
            phone_number = backend.get_phone_number_or_none()
            if phone_number:
                backend.description += ' {}'.format(phone_number)
                backend.reply_to_phone_number = phone_number
            backend.save()
            if request.POST.get(
                    'set_as_default') == FinalizeGatewaySetupForm.YES:
                SQLMobileBackendMapping.set_default_domain_backend(
                    domain, backend)
            return json_response({'success': True})

    name_error = TelerivetSetupView.get_error_message(form, 'name')
    return json_response({
        'success':
        False,
        'name_error':
        name_error,
        'unexpected_error':
        None if name_error else TelerivetSetupView.unexpected_error,
    })