#!/usr/bin/env python3 import os import urllib import json import pprint import time import datetime import sys import string import re import io import appdb, appsms import configparser #from flask import Flask, render_template, request import flask ######################## ## Code starts here #app = Flask(__name__) app = flask.Blueprint('callback-sms', __name__) #app = flask.Flask(__name__) ######### # This is so bare I don't need a config right now. config = configparser.ConfigParser() config.read('config.ini') app_debug = config.get("app","debug") ############################# ## Callback defs go here #@app.route('/') #ef index(): # return render_template('index.html') @app.route('/sms-inbound', methods=['POST']) def smsinbound(): #extract attributes from POSTed JSON of inbound SMS json_content = flask.request.json reply_to = json_content['data']['attributes']['from'] reply_from = json_content['data']['attributes']['to'] msg_id = json_content['data']['id'] body = json_content['data']['attributes']['body'] msg_timestamp = json_content['data']['attributes']['timestamp'] smsRate = json_content['data']['attributes']['amount_display'].replace('$','') status = 'success' account_id = appdb.getAccountbyDID(reply_from) appdb.logsms_db(msg_id, msg_timestamp, 'inbound', reply_from, reply_to, smsRate, status, body, account_id) # Lets log to our silly db. #This command seems to make this function happen twice. # appsms.sendsms(reply_to, reply_from, "Message received. Please wait for a reply.") return "0" @app.route('/dlr', methods=['POST','GET']) def deliveryReport(): #This is the delivery report callback function. json_content = flask.request.json pprint.pprint(json_content) msg_id = json_content['data']['id'] msg_status = json_content['data']['attributes']['status'] msg_timestamp = json_content['data']['attributes']['timestamp'] appdb.updateMsgStatus(msg_id, msg_status, msg_timestamp) return "0"