# HG changeset patch # User hefee # Date 1564227378 -7200 # Node ID a891fdd0c1a97185164f4239c7e634720dc3f057 # Parent 6acae42107167ce6a56a2143201ae28321d145b7 cmtelecom status inbound provider added. diff -r 6acae4210716 -r a891fdd0c1a9 iro/controller/cmtelecom.py --- /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 diff -r 6acae4210716 -r a891fdd0c1a9 iro/iro.py --- 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) diff -r 6acae4210716 -r a891fdd0c1a9 iro/main.py --- 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) diff -r 6acae4210716 -r a891fdd0c1a9 iro/model/schema.py --- 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. diff -r 6acae4210716 -r a891fdd0c1a9 iro/view/cmtelecom.py --- /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()