HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
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)