Esempio n. 1
0
def send_sms(service_id):
    service = admin_api_client.get_service_by_user_id_and_service_id(
        int(session['user_id']), service_id)
    return render_template("send_sms.html",
                           service=service['service'],
                           form=SmsForm(),
                           **get_template_data())
Esempio n. 2
0
def process_sms(service_id):
    form = SmsForm()
    if form.validate_on_submit():
        service = admin_api_client.get_service_by_user_id_and_service_id(int(session['user_id']), service_id)
        try:
            admin_api_client.send_sms(
                form.mobile_number.data,
                form.message.data,
                description=form.description.data,
                token=service['service']['token']['token'])
            flash("SMS sent to {}".format(form.mobile_number.data), "success")
            return redirect(url_for('.view_all_jobs', service_id=service_id))
        except APIError as ex:
            flash(ex.response.json()['error'], "error")
            return render_template(
                "send_sms.html",
                service=service['service'],
                form=form,
                **get_template_data()), 500
    else:
        return render_template(
            "send_sms.html",
            service_id=service_id,
            form=form,
            **get_template_data()), 400
def render_send_email_batch(service_id):
    service = admin_api_client.get_service_by_user_id_and_service_id(
        int(session['user_id']), service_id)
    return render_template("send_email_batch.html",
                           form=CreateEmailBatchForm(),
                           service=service['service'],
                           **get_template_data())
Esempio n. 4
0
def view_all_jobs(service_id):
    service = admin_api_client.get_service_by_user_id_and_service_id(
        int(session['user_id']), service_id)
    jobs = admin_api_client.get_jobs_by_service_id(service_id)
    return render_template("jobs.html",
                           service=service['service'],
                           jobs=jobs['jobs'],
                           **get_template_data())
Esempio n. 5
0
def view_service_users(service_id):
    service = admin_api_client.get_service_by_user_id_and_service_id(
        int(session['user_id']), service_id)
    users = admin_api_client.get_users_by_service_id(service_id)
    return render_template("users.html",
                           service=service['service'],
                           users=users['users'],
                           form=InviteUserForm(),
                           **get_template_data())
Esempio n. 6
0
def view_service_users(service_id):
    service = admin_api_client.get_service_by_user_id_and_service_id(int(session['user_id']), service_id)
    users = admin_api_client.get_users_by_service_id(service_id)
    return render_template(
        "users.html",
        service=service['service'],
        users=users['users'],
        form=InviteUserForm(),
        **get_template_data())
Esempio n. 7
0
def view_notification(service_id, job_id):
    job = admin_api_client.get_job_by_id(job_id)
    notifications = admin_api_client.get_notifications_by_job_id(job_id)
    service = admin_api_client.get_service_by_user_id_and_service_id(int(session['user_id']), service_id)
    return render_template(
        "view-notification.html",
        job=job["job"],
        service=service['service'],
        notifications=notifications['notifications'],
        **get_template_data())
Esempio n. 8
0
def view_service(service_id):
    service = admin_api_client.get_service_by_user_id_and_service_id(int(session['user_id']), service_id)
    usage = admin_api_client.get_services_usage(service_id)['usage']
    today = datetime.utcnow().date()
    used_today = 0
    for use in usage:
        if use['day'] == str(today):
            used_today = use['count']

    return render_template(
        "service.html",
        form=BaseForm(),
        used_today=used_today,
        service=service['service'],
        **get_template_data())
Esempio n. 9
0
def view_service(service_id):
    service = admin_api_client.get_service_by_user_id_and_service_id(
        int(session['user_id']), service_id)
    usage = admin_api_client.get_services_usage(service_id)['usage']
    today = datetime.utcnow().date()
    used_today = 0
    for use in usage:
        if use['day'] == str(today):
            used_today = use['count']

    return render_template("service.html",
                           form=BaseForm(),
                           used_today=used_today,
                           service=service['service'],
                           **get_template_data())
Esempio n. 10
0
def remove_user_from_service(service_id):
    form = InviteUserForm()
    service = admin_api_client.get_service_by_user_id_and_service_id(int(session['user_id']), service_id)
    users = admin_api_client.get_users_by_service_id(service_id)
    try:
        admin_api_client.remove_user_from_service(request.form['email_address'], service_id)
        return redirect(url_for('.view_service_users', form=InviteUserForm(), service_id=service_id))
    except APIError as ex:
        flash(ex.message, "error")
        return render_template(
            'users.html',
            service=service['service'],
            users=users['users'],
            **get_template_data(form=form)
        ), 400
Esempio n. 11
0
def remove_user_from_service(service_id):
    form = InviteUserForm()
    service = admin_api_client.get_service_by_user_id_and_service_id(
        int(session['user_id']), service_id)
    users = admin_api_client.get_users_by_service_id(service_id)
    try:
        admin_api_client.remove_user_from_service(
            request.form['email_address'], service_id)
        return redirect(
            url_for('.view_service_users',
                    form=InviteUserForm(),
                    service_id=service_id))
    except APIError as ex:
        flash(ex.message, "error")
        return render_template('users.html',
                               service=service['service'],
                               users=users['users'],
                               **get_template_data(form=form)), 400
Esempio n. 12
0
def process_sms_bulk(service_id):
    form = CreateSMSBatchForm()

    service = admin_api_client.get_service_by_user_id_and_service_id(int(session['user_id']), service_id)
    if form.validate_on_submit():
        uploaded = request.files['sms-bulk-upload']
        if uploaded and allowed_file(uploaded.filename):
            filename = secure_filename(uploaded.filename)
            data = transform(StringIO(uploaded.stream.read().decode("UTF8")), 'sms')
            if 'errors' in data:
                return render_template(
                    "send_sms_batch.html",
                    form=form,
                    errors=data['errors'],
                    service=service['service'],
                    **get_template_data()
                ), 400
            job = admin_api_client.create_job(form.description.data, filename, service_id)
            for notification in data['notifications']:
                try:
                    admin_api_client.send_sms(
                        notification['to'],
                        notification['message'],
                        job_id=job["job"]["id"],
                        token=service['service']['token']['token']
                    )
                except APIError as ex:
                    message = "Uploaded with errors"
                    print(ex.response.json())
                    flash(message, 'error')
                    return redirect(url_for('.view_all_jobs', service_id=service_id))

            message = "Uploaded batch of {} notifications".format(len(data['notifications']))
            flash(message, 'success')
            return redirect(url_for('.view_all_jobs', service_id=service_id))
        else:
            return render_template("send_sms_batch.html", form=form, service=service['service'], **get_template_data())
    else:
        return render_template(
            "send_sms_batch.html",
            form=form,
            service=service['service'],
            **get_template_data()), 400
Esempio n. 13
0
def process_email_batch(service_id):
    form = CreateEmailBatchForm()
    service = admin_api_client.get_service_by_user_id_and_service_id(int(session['user_id']), service_id)
    file = request.files['email-bulk-upload']
    if file and allowed_file(file.filename):
        filename = secure_filename(file.filename)
        data = transform(StringIO(file.stream.read().decode("UTF8")), 'email')
        if 'errors' in data:
            return render_template("send_sms_batch.html",
                                   form=form,
                                   errors=data['errors'],
                                   service=service['service'],
                                   **get_template_data()
                                   ), 400
        job = admin_api_client.create_job(form.description.data, filename, service_id)
        for notification in data['notifications']:
            try:
                admin_api_client.send_email(
                    notification['to'],
                    notification["message"],
                    notification["from"],
                    notification["subject"],
                    job_id=job["job"]["id"],
                    token=service["service"]["token"]["token"])
            except APIError as ex:
                message = "Upload with errors"
                print(ex.response.json())
                flash(message, 'error')
                return redirect(url_for('.view_all_jobs', service_id=service_id))
        message = "Uploaded email batch of {} notifications".format(len(data["notifications"]))
        flash(message, 'success')
        return redirect(url_for('.view_all_jobs', service_id=service_id))

    else:
        return render_template(
            "send_email_batch.html",
            form=form,
            service=service['service'],
            **get_template_data()), 400
Esempio n. 14
0
def add_user_to_service(service_id):
    service = admin_api_client.get_service_by_user_id_and_service_id(int(session['user_id']), service_id)
    users = admin_api_client.get_users_by_service_id(service_id)
    form = InviteUserForm()
    if form.validate_on_submit():
        try:
            admin_api_client.add_user_to_service(form.email_address.data, service_id)
            return redirect(url_for('.view_service_users', form=InviteUserForm(), service_id=service_id))
        except APIError as ex:
            flash(ex.message, "error")
            return render_template(
                'users.html',
                service=service['service'],
                users=users['users'],
                **get_template_data(form=form)
            ), 400
    else:
        return render_template(
            'users.html',
            service=service['service'],
            users=users['users'],
            **get_template_data(form=form)
        ), 400
Esempio n. 15
0
def add_user_to_service(service_id):
    service = admin_api_client.get_service_by_user_id_and_service_id(
        int(session['user_id']), service_id)
    users = admin_api_client.get_users_by_service_id(service_id)
    form = InviteUserForm()
    if form.validate_on_submit():
        try:
            admin_api_client.add_user_to_service(form.email_address.data,
                                                 service_id)
            return redirect(
                url_for('.view_service_users',
                        form=InviteUserForm(),
                        service_id=service_id))
        except APIError as ex:
            flash(ex.message, "error")
            return render_template('users.html',
                                   service=service['service'],
                                   users=users['users'],
                                   **get_template_data(form=form)), 400
    else:
        return render_template('users.html',
                               service=service['service'],
                               users=users['users'],
                               **get_template_data(form=form)), 400
Esempio n. 16
0
def process_sms(service_id):
    form = SmsForm()
    if form.validate_on_submit():
        service = admin_api_client.get_service_by_user_id_and_service_id(
            int(session['user_id']), service_id)
        try:
            admin_api_client.send_sms(
                form.mobile_number.data,
                form.message.data,
                description=form.description.data,
                token=service['service']['token']['token'])
            flash("SMS sent to {}".format(form.mobile_number.data), "success")
            return redirect(url_for('.view_all_jobs', service_id=service_id))
        except APIError as ex:
            flash(ex.response.json()['error'], "error")
            return render_template("send_sms.html",
                                   service=service['service'],
                                   form=form,
                                   **get_template_data()), 500
    else:
        return render_template("send_sms.html",
                               service_id=service_id,
                               form=form,
                               **get_template_data()), 400
Esempio n. 17
0
def view_api(service_id):
    service = admin_api_client.get_service_by_user_id_and_service_id(int(session['user_id']), service_id)
    usage = admin_api_client.get_services_usage(service_id)['usage']
    return render_template("api.html", service=service['service'], usage=usage, **get_template_data())
Esempio n. 18
0
def send_sms(service_id):
    service = admin_api_client.get_service_by_user_id_and_service_id(int(session['user_id']), service_id)
    return render_template("send_sms.html", service=service['service'], form=SmsForm(), **get_template_data())
Esempio n. 19
0
def render_send_email_batch(service_id):
    service = admin_api_client.get_service_by_user_id_and_service_id(int(session['user_id']), service_id)
    return render_template("send_email_batch.html",
                           form=CreateEmailBatchForm(),
                           service=service['service'],
                           **get_template_data())
Esempio n. 20
0
def view_all_jobs(service_id):
    service = admin_api_client.get_service_by_user_id_and_service_id(int(session['user_id']), service_id)
    jobs = admin_api_client.get_jobs_by_service_id(service_id)
    return render_template("jobs.html", service=service['service'], jobs=jobs['jobs'], **get_template_data())