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