cmtelecom status inbound provider added.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/iro/controller/cmtelecom.py Sat Jul 27 13:36:18 2019 +0200
@@ -0,0 +1,25 @@
+# -*- coding: utf-8 -*-
+
+from datetime import datetime
+import json
+from ..model import schema
+from ..model.dbdefer import dbdefer
+from twisted.python import log
+
+@dbdefer
+def addStatus(session, recipient, exID, status, data):
+ try:
+ status = int(status)
+ except ValueError:
+ log.msg("Ungültiger Status", status)
+ status = -1
+ _s = schema.Status(recipient=recipient,
+ exID = exID,
+ status = status,
+ data = json.dumps(data),
+ date = datetime.now(),
+ sender = "cmtelecom"
+ )
+ session.add(_s)
+ session.commit()
+ return _s
--- a/iro/iro.py Sat Jul 27 13:34:22 2019 +0200
+++ b/iro/iro.py Sat Jul 27 13:36:18 2019 +0200
@@ -28,7 +28,7 @@
from sqlalchemy import create_engine, pool
import config, install
-from .view import xmlrpc, jsonrpc, jsonresource
+from .view import xmlrpc, jsonrpc, jsonresource, cmtelecom
from .model import setEngine, setPool
from .controller.pool import startPool, dbPool
@@ -67,6 +67,7 @@
raise Exception("offerlist is not up-to-date.\nPlease run iro-install --update")
root = resource.Resource()
+ cmtelecom.appendResource(root)
xmlrpc.appendResource(root)
jsonrpc.appendResource(root)
jsonresource.appendResource(root)
--- a/iro/main.py Sat Jul 27 13:34:22 2019 +0200
+++ b/iro/main.py Sat Jul 27 13:36:18 2019 +0200
@@ -27,7 +27,7 @@
from .model import setEngine, setPool
from .controller.pool import startPool, dbPool
-from .view import xmlrpc, jsonrpc, jsonresource
+from .view import xmlrpc, jsonrpc, jsonresource, cmtelecom
from . import config
def runReactor(reactor, engine, port, root):
@@ -56,6 +56,7 @@
root = resource.Resource()
+ cmtelecom.appendResource(root)
xmlrpc.appendResource(root)
jsonrpc.appendResource(root)
jsonresource.appendResource(root)
--- a/iro/model/schema.py Sat Jul 27 13:34:22 2019 +0200
+++ b/iro/model/schema.py Sat Jul 27 13:36:18 2019 +0200
@@ -158,6 +158,30 @@
def __init__(self, **kwargs):
Base.__init__(self,**kwargs)
+class Status(Base):
+ """ Status updates from external"""
+ __tablename__ = "status"
+
+ id = Column(Integer, Sequence('status_id_seq'), primary_key=True)
+ """primary key of the message"""
+
+ date = Column(DateTime)
+ """date of status message"""
+
+ recipient = Column(String(100))
+ """string representation of the recipient"""
+
+ exID = Column(String(100))
+ """external API id """
+
+ status = Column(Integer)
+ """ status of the message"""
+
+ sender = Column(String(100))
+ """ sender of the message """
+
+ data = Column(String(2550))
+ """ rest of the data """
class Job(Base):
"""A complete Job.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/iro/view/cmtelecom.py Sat Jul 27 13:36:18 2019 +0200
@@ -0,0 +1,26 @@
+
+from twisted.python import log
+from twisted.web import resource
+
+from ..controller import cmtelecom
+
+class CMTelecom(resource.Resource):
+ isLeaf = True
+ def render_GET(self, request):
+ args = request.args
+ cmtelecom.addStatus(recipient=args['GSM'][0], exID=args["REFERENCE"][0], status=args["STATUS"][0], data=args)
+
+ return "Nothing to see here."
+
+def appendResource(root):
+ """adding CMTelecom to root."""
+ root.putChild('cmtelecom', CMTelecom())
+
+if __name__ == '__main__':
+ from twisted.web import resource, server
+ from twisted.internet import reactor
+
+ root = resource.Resource()
+ root = appendResource(root)
+ reactor.listenTCP(7080, server.Site(root))
+ reactor.run()