File: //proc/self/root/home/arjun/projects/buyercall/buyercall/blueprints/sms/endpoints.py
import logging
from flask.blueprints import Blueprint
from buyercall.blueprints.widgets.models import Widget
from flask import jsonify, request
from buyercall.lib.util_rest import api_jsonify
from buyercall.blueprints.sms.bw_sms_inbound import lead_inbound_message
from werkzeug.datastructures import ImmutableMultiDict
log = logging.getLogger(__name__)
sms_api = Blueprint('sms_api', __name__, url_prefix='/api/sms')
def send_inbound_sms(widget_sid):
""" Send inbound sms """
if widget_sid:
widget = Widget.query.filter(Widget.guid == str(widget_sid)).first()
if widget:
if request.json:
event_type = request.json.get('eventType', None)
if event_type and event_type in ['sms', 'mms']:
request.json['eventType'] = event_type
else:
request.json['eventType'] = 'sms'
elif request.args:
params = request.args.to_dict()
event_type = params.get('eventType', None)
if event_type and event_type in ['sms', 'mms']:
params['eventType'] = event_type
else:
params['eventType'] = 'sms'
request.args = ImmutableMultiDict(params)
sms_resp = lead_inbound_message(widget.inbound_id)
# Add task
from buyercall.blueprints.chat.endpoints import create_task
from buyercall.blueprints.partnership.models import PartnershipAccount, Partnership
partnership_account = PartnershipAccount.query.filter(PartnershipAccount.id == widget.partnership_account_id).first()
partnership = Partnership.query.filter(Partnership.id == partnership_account.partnership_id).first()
all_agents_sids = []
for agent in widget.agents:
all_agents_sids.append(agent.sid)
task_payload = {
"type": "TEXT_MESSAGE_FOLLOW_UP",
"users": all_agents_sids,
"partnershipId": str(partnership.sid),
"partnershipAccountId": str(partnership_account.sid)
}
task_resp = create_task(task_payload)
else:
return api_jsonify({}, 422, 'Missing parameters!', False)
return api_jsonify({}, 200, 'Message send successfully!', True)