mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-07-09 19:04:33 -04:00
merged codes
This commit is contained in:
@@ -504,6 +504,10 @@ class ServiceReplyToEmailFrom(Form):
|
||||
email_address = email_address(label='Email reply to address')
|
||||
|
||||
|
||||
class InboudnSmsConfirm(Form):
|
||||
inbound_number = ''
|
||||
|
||||
|
||||
class ServiceSmsSender(Form):
|
||||
sms_sender = StringField(
|
||||
'Text message sender',
|
||||
|
||||
@@ -10,23 +10,13 @@ from flask_login import login_required
|
||||
from app.main import main
|
||||
from app import inbound_number_client
|
||||
from app.utils import user_has_permissions
|
||||
from flask import jsonify
|
||||
|
||||
|
||||
@main.route('/inbound-sms-admin', methods=['GET', 'POST'])
|
||||
@login_required
|
||||
@user_has_permissions(admin_override=True)
|
||||
def inbound_sms_admin():
|
||||
#data = user_api_client.get_inboundsms_number_service()
|
||||
data = inbound_number_client.get_inbound_sms_number_service()
|
||||
|
||||
# return jsonify(data)
|
||||
|
||||
return render_template('views/inbound_sms_admin.html',
|
||||
inbound_num_list = data)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
data = inbound_number_client.get_all_inbound_sms_number_service()
|
||||
|
||||
return render_template('views/inbound_sms_admin.html', inbound_num_list=data)
|
||||
|
||||
@@ -32,8 +32,9 @@ from app.main.forms import (
|
||||
ServiceLetterContactBlock,
|
||||
ServiceBrandingOrg,
|
||||
LetterBranding,
|
||||
ServiceInboundApiForm)
|
||||
from app import user_api_client, current_service, organisations_client
|
||||
ServiceInboundApiForm,
|
||||
InboudnSmsConfirm)
|
||||
from app import user_api_client, current_service, organisations_client, inbound_number_client
|
||||
|
||||
|
||||
dummy_bearer_token = 'bearer_token_set'
|
||||
@@ -65,6 +66,12 @@ def service_settings(service_id):
|
||||
else:
|
||||
inbound_api_url = ''
|
||||
|
||||
inbound_number = inbound_number_client.get_inbound_sms_number_for_service(service_id)
|
||||
if inbound_number['data'] is None or inbound_number['data'] == '':
|
||||
disp_inbound_number = ''
|
||||
else:
|
||||
disp_inbound_number = inbound_number['data']['number']
|
||||
|
||||
return render_template(
|
||||
'views/service-settings.html',
|
||||
organisation=organisation,
|
||||
@@ -73,7 +80,9 @@ def service_settings(service_id):
|
||||
),
|
||||
can_receive_inbound=('inbound_sms' in current_service['permissions']),
|
||||
inbound_api_url=inbound_api_url,
|
||||
letter_contact_block=Field(current_service['letter_contact_block'], html='escape')
|
||||
letter_contact_block=Field(current_service['letter_contact_block'], html='escape'),
|
||||
inbound_number=disp_inbound_number
|
||||
|
||||
)
|
||||
|
||||
|
||||
@@ -219,7 +228,6 @@ def switch_service_permissions(service_id, permission, sms_sender=None):
|
||||
data = {'permissions': permissions}
|
||||
if sms_sender:
|
||||
data['sms_sender'] = sms_sender
|
||||
|
||||
service_api_client.update_service_with_properties(service_id, data)
|
||||
|
||||
|
||||
@@ -336,13 +344,43 @@ def service_set_sms_sender(service_id):
|
||||
sms_sender=form.sms_sender.data or None
|
||||
)
|
||||
return redirect(url_for('.service_settings', service_id=service_id))
|
||||
|
||||
if request.method == 'GET':
|
||||
form.sms_sender.data = current_service.get('sms_sender')
|
||||
|
||||
return render_template(
|
||||
'views/service-settings/set-sms-sender.html',
|
||||
form=form)
|
||||
|
||||
|
||||
@main.route("/services/<service_id>/service-settings/set-inbound-number", methods=['GET', 'POST'])
|
||||
@login_required
|
||||
@user_has_permissions('manage_settings', admin_override=True)
|
||||
def service_set_inbound_number(service_id):
|
||||
inbound_number = inbound_number_client.get_inbound_sms_number_for_service(service_id)
|
||||
new_number = False
|
||||
|
||||
if inbound_number['data'] == '' or inbound_number['data'] is None:
|
||||
inbound_number = inbound_number_client.get_available_inbound_number(service_id)
|
||||
new_number = True
|
||||
|
||||
form = InboudnSmsConfirm()
|
||||
if form.validate_on_submit():
|
||||
switch_service_permissions(current_service['id'], 'inbound_sms')
|
||||
if new_number:
|
||||
inbound_number_client.activate_inbound_sms_service(service_id, inbound_number['data']['id'])
|
||||
return redirect(url_for('.service_settings', service_id=service_id))
|
||||
else:
|
||||
inbound_number_client.reactivate_inbound_sms_service(inbound_number['data']['id'])
|
||||
return redirect(url_for('.service_settings', service_id=service_id))
|
||||
|
||||
return render_template(
|
||||
'views/service-settings/confirm-inbound-number.html',
|
||||
inbound_number=inbound_number['data']['number'],
|
||||
form=form
|
||||
)
|
||||
|
||||
|
||||
@main.route("/services/<service_id>/service-settings/set-sms", methods=['GET'])
|
||||
@login_required
|
||||
@user_has_permissions('manage_settings', admin_override=True)
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
from app.notify_client import NotifyAdminAPIClient
|
||||
|
||||
|
||||
class InboundNumberClient(NotifyAdminAPIClient):
|
||||
|
||||
def __init__(self):
|
||||
@@ -10,6 +11,21 @@ class InboundNumberClient(NotifyAdminAPIClient):
|
||||
self.service_id = app.config['ADMIN_CLIENT_USER_NAME']
|
||||
self.api_key = app.config['ADMIN_CLIENT_SECRET']
|
||||
|
||||
def get_inbound_sms_number_service(self):
|
||||
def get_all_inbound_sms_number_service(self):
|
||||
endpoint = '/inbound_number'
|
||||
return self.get(endpoint)
|
||||
return self.get(endpoint)
|
||||
|
||||
def get_inbound_sms_number_for_service(self, service_id):
|
||||
return self.get('/inbound_number/{}/number'.format(service_id))
|
||||
|
||||
def activate_inbound_sms_service(self, service_id, inbound_number_id):
|
||||
return self.post(url='/inbound_number/{}/service/{}/activate'.format(inbound_number_id, service_id), data={})
|
||||
|
||||
def reactivate_inbound_sms_service(self, inbound_number_id):
|
||||
return self.post(url='/inbound_number/{}/reactivate'.format(inbound_number_id), data={})
|
||||
|
||||
def deactivate_inbound_sms_permission(self, inbound_number_id):
|
||||
return self.post(url='/inbound_number/{}/off'.format(inbound_number_id), data={})
|
||||
|
||||
def get_available_inbound_number(self, service_id):
|
||||
return self.get(url='/inbound_number/{}/available'.format(service_id))
|
||||
|
||||
@@ -53,9 +53,14 @@
|
||||
{% if 'sms' in current_service.permissions %}
|
||||
|
||||
{% call row() %}
|
||||
|
||||
{{ text_field('Text message sender') }}
|
||||
{{ text_field(current_service.sms_sender) }}
|
||||
{% if current_user.has_permissions([], admin_override=True) or not can_receive_inbound %}
|
||||
{% if can_receive_inbound %}
|
||||
{{ text_field(inbound_number) }}
|
||||
{% else %}
|
||||
{{ text_field(current_service.sms_sender) }}
|
||||
{% endif %}
|
||||
{% if (current_user.has_permissions([], admin_override=True) or not can_receive_inbound) and not can_receive_inbound %}
|
||||
{{ edit_field('Change', url_for('.service_set_sms_sender', service_id=current_service.id, set_inbound_sms=False)) }}
|
||||
{% else %}
|
||||
{{ text_field('') }}
|
||||
@@ -198,9 +203,15 @@
|
||||
</a>
|
||||
</li>
|
||||
<li class="bottom-gutter">
|
||||
{% if can_receive_inbound %}
|
||||
<a href="{{ url_for('.service_set_sms_sender', service_id=current_service.id, set_inbound_sms=True) }}" class="button">
|
||||
{{ 'Stop inbound sms' if can_receive_inbound else 'Allow inbound sms' }}
|
||||
Stop inbound sms
|
||||
</a>
|
||||
{% else %}
|
||||
<a href="{{ url_for('.service_set_inbound_number', service_id=current_service.id, set_inbound_sms=True) }}" class="button">
|
||||
Allow inbound sms
|
||||
</a>
|
||||
{% endif %}
|
||||
</li>
|
||||
{% endif %}
|
||||
{% if current_service.active %}
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
{% extends "withnav_template.html" %}
|
||||
{% from "components/table.html" import text_field, edit_field %}
|
||||
{% from "components/page-footer.html" import page_footer %}
|
||||
|
||||
{% block service_page_title %}
|
||||
Inbound SMS Assigned Number
|
||||
{% endblock %}
|
||||
|
||||
{% block maincolumn_content %}
|
||||
|
||||
<h1 class="heading-large">Inbound SMS Assigned Nubmer</h1>
|
||||
|
||||
<p>
|
||||
The following number has been assigned to your inbound sms service.
|
||||
</p>
|
||||
|
||||
<p style="font-weight:bold;">
|
||||
{{inbound_number}}
|
||||
</p>
|
||||
|
||||
<p>
|
||||
If you would like to continue and activate the inbound sms service, please click the confirm button.
|
||||
</p>
|
||||
<form method="post">
|
||||
|
||||
{{ page_footer(
|
||||
'Confirm',
|
||||
back_link=url_for('.service_settings', service_id=current_service.id),
|
||||
back_link_text='Back to settings'
|
||||
) }}
|
||||
</form>
|
||||
|
||||
{% endblock %}
|
||||
Reference in New Issue
Block a user