--- a/iro/offer/smstrade.py Sat Mar 03 03:29:19 2012 +0100
+++ b/iro/offer/smstrade.py Sat Mar 03 03:54:53 2012 +0100
@@ -24,53 +24,55 @@
import logging
logger=logging.getLogger("smstrade")
-class UnknownStatusCode(ExternalException):
+statusCodes = {10 : "Empfaengernummer nicht korrekt.",
+ 20 : "Absenderkennung nicht korrekt.",
+ 30 : "Nachrichtentext nicht korrekt.",
+ 31 : "Messagetyp nicht korrekt.",
+ 40 : "SMS Route nicht korrekt.",
+ 50 : "Identifikation fehlgeschlagen.",
+ 60 : "nicht genuegend Guthaben.",
+ 70 : "Netz wird von Route nicht abgedeckt.",
+ 71 : "Feature nicht ueber diese Route moeglich.",
+ 80 : "Uebergabe an SMS-C fehlgeschlagen.",
+ 90 : "Versand nicht moeglich.",
+ 100 : "SMS wurde versendet.",
+ }
+
+
+class StatusException(ExternalException):
def __init__(self,status):
ExternalException.__init__(self)
- self.status=status
-
+ self.status = status
+ self.str_ = "%i: unknown statuscode."%status
+ try:
+ self.str_="%i: %s"%(status, statusCodes[int(status)])
+ except KeyError:
+ pass
def __str__(self):
- return "%s\nStatusCode %i is unknown."%(ExternalException.__str__(self),self.status)
+ return "%s\n%s"%(ExternalException.__str__(self),self.str_)
class StatusCode:
- statusCodes = {10 : "Empfaengernummer nicht korrekt",
- 20 : "Absenderkennung nicht korrekt",
- 30 : "Nachrichtentext nicht korrekt",
- 31 : "Messagetyp nicht korrekt",
- 40 : "SMS Route nicht korrekt",
- 50 : "Identifikation fehlgeschlagen",
- 60 : "nicht genuegend Guthaben",
- 70 : "Netz wird von Route nicht abgedeckt",
- 71 : "Feature nicht ueber diese Route moeglich",
- 80 : "Uebergabe an SMS-C fehlgeschlagen",
- 90 : "Versand nicht moeglich",
- 100 : "SMS wurde versendet",
- }
-
def __init__(self,code, mID=None, cost=None, count=None):
- if code in self.statusCodes.keys():
- self.code=code
+ if code in statusCodes.keys():
+ self.code = code
else:
- raise UnknownStatusCode(code)
+ raise StatusException(code)
self.mID=mID
self.cost = cost
self.count = count
def __str__(self):
try:
- return "%i: %s"%(self.code, self.statusCodes[self.code])
+ return "%i: %s"%(self.code, statusCodes[self.code])
except IndexError:
- raise UnknownStatusCode(self.code)
+ raise StatusException(self.code)
def __int__(self):
- if not self.code in self.statusCodes.keys():
- raise UnknownStatusCode(self.code)
+ if not self.code in statusCodes.keys():
+ raise StatusException(self.code)
return self.code
-
-
-
class Smstrade(Provider):
"""
s. auch http://kundencenter.smstrade.de/sites/smstrade.de.kundencenter/__pdf/SMS-Gateway_HTTP_API_v2.pdf
@@ -105,7 +107,7 @@
elif int(smsSendStatus) in (70,71,):
raise RejectRecipient(recipient, status=smsSendStatus)
else:
- raise Exception()
+ raise StatusException(smsSendStatus)
def __send(self, route, to, sms):
""" This function is the main part of the request to the sms service.