iro/controller/viewinterface.py
branchdevel
changeset 253 e8d56537c9cc
parent 250 91890ea7ed81
child 268 d0fcb1cde990
--- a/iro/controller/viewinterface.py	Sun Mar 25 20:11:34 2012 +0200
+++ b/iro/controller/viewinterface.py	Sun Mar 25 20:14:35 2012 +0200
@@ -7,8 +7,7 @@
 from .task import createJob
 
 class Interface(object):
-    '''class for a xmlrpc user
-    '''
+    '''Interface for views.'''
     
     @validate(kwd="detailed", func=vBool, need=False)
     @validate(kwd="id", func=vInteger, minv=0, need=False, none_allowed=True)
@@ -17,17 +16,23 @@
     def status(self, session, user, id=None, detailed=False):
         '''Gibt den aktuellen Status eines Auftrages oder Mehreren zurück.
 
-        Keywords:
-        apikey[string]: Der API Key
-        id[hash]: Eine Auftragsnummer
-        detailed[boolean]: Details ausgeben
+        :param string apikey: der API Key
+        :param hash id: Eine Auftragsnummer
+        :param `boolean` detailed: Details ausgeben
+
+        :return dict: 
+           - `key` ist die Auftragsnummer
+           - [`key`][**'status'**] -- Status des Auftrages
 
-        Return:
-        jobs[list]: Eine Liste der Aufträge.
-        job.name[string]: Angebener Name
-        job.status[string]: Status des Auftrages
+        .. warning:: detailed is not used yet.
+        
+        >>> status(APIKEY)
+        {"1":  {"status":"sended"},
+         "2":  {"status":"error"},
+         "10": {"status":"sending"}}
 
-
+        >>> status(APIKEY,"10")
+        {"10": {"status":"sending"}}
         '''
         user = session.merge(user)
         ret={}
@@ -45,16 +50,15 @@
     def sms(self, user, message, recipients, route="default", info=""):
         '''Versendet eine SMS.
 
-        Keywords:
-        apikey[string]: Der API Key
-        message[string]: Nachricht
-        recipients[list]: eine Liste von Emfänger-Nummern (gemäß ITU-T E.123)
-        route[string|list]: Route über den geschickt werden soll, 
+        :param string apikey: Der API Key
+        :param string message: Nachricht
+        :param list recipients: eine Liste von Emfänger-Nummern (gemäß ITU-T E.123)
+        :param route: Route über den geschickt werden soll, 
                             oder eine Liste von Routen, um Fallbacks anzugeben
-        info[string]: Infostring um eine Nachricht einer Gruppe zuorden zu können.
+        :type route: string|list
+        :param string info: Infostring um eine Nachricht einer Gruppe zuorden zu können.
 
-        Return:
-        id[hash]: Die ID des Auftrages
+        :return hash: Die ID des Auftrages
 
         '''
         d = createJob(user, recipients, SMS(message), route, info)
@@ -69,18 +73,16 @@
     def fax(self, user, subject, fax, recipients, route="default", info=""):
         '''Versendet ein FAX.
 
-        Keywords:
-        apikey[string]: Der API Key
-        subject[string]: Der Betreff
-        fax[string]: Der base64 kodierte content
-        recipients[list]: Eine Liste von Emfänger-Nummern (gemäß ITU-T E.123)
-        route[string|list]: Route über den geschickt werden soll, 
+        :param string apikey: Der API Key
+        :param string subject: Der Betreff
+        :param string fax: Der base64 kodierte content
+        :param list recipients: Eine Liste von Emfänger-Nummern (gemäß ITU-T E.123)
+        :param route: Route über den geschickt werden soll, 
                             oder eine Liste von Routen, um Fallbacks anzugeben
-        info[string]: Infostring um eine Nachricht einer Gruppe zuorden zu können.
+        :type route: string|list
+        :param string info: Infostring um eine Nachricht einer Gruppe zuorden zu können.
 
-        Return:
-        id[hash]: Die ID des Auftrages
-
+        :return hash: Die ID des Auftrages
         '''
         d = createJob(user, recipients, Fax(subject, fax), route, info)
         def ret(job):
@@ -95,19 +97,17 @@
     def mail(self, user, subject, body, recipients, frm=None, route="default", info=""):
         '''Versendet eine Email.
 
-        Keywords:
-        apikey[string]: Der API Key
-        subject[string]: Der Betreff
-        body[string]: Der Email Body
-        recipients[list]: Eine Liste von Emailadressen
-        frm[string]: Die Absender Emailadresse
-        route[string|list]: Route über den geschickt werden soll, 
+        :param string apikey: Der API Key
+        :param string subject: Der Betreff
+        :param string body: Der Email Body
+        :param list recipients: Eine Liste von Emailadressen
+        :param string frm: Die Absender Emailadresse
+        :param route: Route über den geschickt werden soll, 
                             oder eine Liste von Routen, um Fallbacks anzugeben
-        info[string]: Infostring um eine Nachricht einer Gruppe zuorden zu können.
+        :type route: string|list
+        :param string info: Infostring um eine Nachricht einer Gruppe zuorden zu können.
 
-        Return:
-        id[hash]: Die ID des Auftrages
-
+        :return hash: Die ID des Auftrages
         '''
 
         d = createJob(user, recipients, Mail(subject, body, frm), route, info)
@@ -122,14 +122,11 @@
     def routes(self, session, user, typ):
         '''Gibt eine Liste aller verfügbaren Provider zurück.
 
-        Keywords:
-        apikey[string]: Der API Key
-        typ[string]: Der Typ zu dem die Providerloste ausgeben werden soll
+        :param string apikey: Der API Key
+        :param string typ: Der Typ zu dem die Providerloste ausgeben werden soll
                      Einer der Liste ["sms","fax","mail"]
 
-        Return:
-        providerlist[list]: Eine Liste aller möglichen Provider
-
+        :return list: Eine Liste aller möglichen Provider
         '''
         user = session.merge(user)
         offers = user.routes(typ)
@@ -141,15 +138,11 @@
     def defaultRoute(self, session, user, typ):
         '''Gibt den Standardprovider zurück.
  
-        Keywords:
-        apikey[string]: Der API Key
-        typ[string]: Der Typ zu dem die Providerliste ausgeben werden soll
+        :param string apikey: Der API Key
+        :param string typ: Der Typ zu dem die Providerliste ausgeben werden soll
                      Einer der Liste ["sms","fax","mail"]
 
-        Return:
-        provider[string]: Der Standardprovider für den angeben Typ
-
-
+        :return string: Der Standardprovider für den angeben Typ
         '''
         user = session.merge(user)
         offers = user.routes(typ, default=True)
@@ -160,17 +153,25 @@
     def bill(self, session, user):
         '''Gibt eine Rechnung zurück über die noch nicht abgerechneten Nachrichten und des Preises.
 
-        Keywords:
-        apikey[string]: Der API Key
+        :param string apikey: Der API Key
+
+        :return dict:
+            - `route` -- Entspricht einer Route; **"total"** für die Gesammtübersicht
+            - [`route`][`info`][**anz**] -- Anzahl der verschickten Nachrichten pro "Infoklasse"
+            - [`route`][`info`][**price**] -- Preis pro "Infoklasse"
+            - [`route` | **total**][**anz**] -- Anzahl der verschickten Nachrichten pro Route 
+            - [`route` | **total**][**price**] -- Preis für eine Route
 
-        Return:
-        bills[dict]: Eine Liste nach Nachrichtentypen
-        bill[route][info].anz: Anzahl der verschickten Nachrichten pro "Infoklasse"
-        bill[route][info].price: Preis pro "Infoklasse"
-        bill[route].anz: Anzahl der verschickten Nachrichten pro Route 
-        bill[route].price: Preis für eine Route
-        total.price: der Gesammtpreis
-        total.anz: die Gesammtanzahl
+        >>> bill(APIKEY)
+        {"route1": {"info1":{"anz":1,"price":2.00},
+                    "info2":{"anz":2,"price":5.00},
+                    "anz":3,"price":7.00},
+        "route2":  {"info1":{"anz":3, "price":1.00},
+                    "info3":{"anz":4, "price":8.00},
+                    "anz":7, "price":9.00},
+        "total":   {"anz":10, "price":16.00}
+        }
+
         '''
         ret={'total':{'price':0, 'anz':0}}
         user=session.merge(user)
@@ -192,11 +193,9 @@
     def telnumber(self,recipients):
         '''Gibt True zurück, falls alle übergebene Telefonnummern valide sind.
         
-        Keywords:
-        recipients[list]: Eine Liste von Emfänger-Nummern (gemäß ITU-T E.123)
+        :param list recipients: Eine Liste von Emfänger-Nummern (gemäß ITU-T E.123)
 
-        Return:
-        True: alle übergebene Nummern sind valide
+        :return: True -- alle übergebene Nummern sind valide
         '''
         return True
 
@@ -204,10 +203,8 @@
     def email(self,recipients):
         '''Gibt True zurück, falls alle übergebene Emailadressen valide sind.
         
-        Keywords:
-        recipients[list]: Eine Liste von Emailadressen
+        :param list recipients: Eine Liste von Emailadressen
 
-        Return:
-        True: alle übergebene Nummern sind valide
+        :return: True -- alle übergebene Nummern sind valide
         '''
         return True