diff -r d0de2ca7201a -r e8d56537c9cc iro/controller/viewinterface.py --- 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