--- 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