Commit 6b7621da authored by Jérome Perrin's avatar Jérome Perrin

Merge branch 'sms_more_than_140_characters' into master_calendar_wip_patches

This is a temporary merge of !173
parents a0668dd8 5a53b421
...@@ -39,7 +39,7 @@ context.portal_sms.activate( ...@@ -39,7 +39,7 @@ context.portal_sms.activate(
recipient=to_url, recipient=to_url,
sender=from_url, sender=from_url,
sender_title=from_title, sender_title=from_title,
message_type="text", message_type="MULTITEXT",
test=download, test=download,
document_relative_url=context.getRelativeUrl(), document_relative_url=context.getRelativeUrl(),
**kw) **kw)
...@@ -91,8 +91,9 @@ class DummyGateway(XMLObject): ...@@ -91,8 +91,9 @@ class DummyGateway(XMLObject):
Return message id Return message id
""" """
#Check messsage type #Check messsage type
if message_type not in self.getAllowedMessageType(): # XXX does it make sense to check message type in dummy gateway ? -jerome
raise ValueError, "Type of message in not allowed" #if message_type not in self.getAllowedMessageType():
# raise ValueError, "Type of message in not allowed"
#Send message (or test) #Send message (or test)
if test or self.isSimulationMode(): if test or self.isSimulationMode():
......
...@@ -70,11 +70,15 @@ class MobytGateway(XMLObject): ...@@ -70,11 +70,15 @@ class MobytGateway(XMLObject):
, PropertySheet.SMSGateway , PropertySheet.SMSGateway
) )
# see https://web.archive.org/web/20111125005954/http://www.mobyt.fr/doc/mobyt_module_http.pdf
# for documentation of this old API
api_url = "http://multilevel.mobyt.fr/sms" api_url = "http://multilevel.mobyt.fr/sms"
security.declarePublic('getAllowedMessageType') security.declarePublic('getAllowedMessageType')
def getAllowedMessageType(self): def getAllowedMessageType(self):
"""List of all message type""" """List of all message type"""
return ['text','multitext', 'wappush', 'ucs2', 'multiucs2'] # `text` is here for compatibility, but the API always expected uppercase
return ['text', 'TEXT', 'MULTITEXT', 'WAPPUSH', 'UCS2', 'MULTIUCS2']
security.declarePrivate("_fetchSendResponseAsDict") security.declarePrivate("_fetchSendResponseAsDict")
def _fetchSendResponseAsDict(self,page): def _fetchSendResponseAsDict(self,page):
...@@ -145,7 +149,7 @@ class MobytGateway(XMLObject): ...@@ -145,7 +149,7 @@ class MobytGateway(XMLObject):
recipient -- phone url of destination_reference. Could be a list recipient -- phone url of destination_reference. Could be a list
sender -- phone url of source sender -- phone url of source
sender_title -- Use it as source if the gateway has title mode enable sender_title -- Use it as source if the gateway has title mode enable
message_type -- Only 'text' is available today message_type -- see getAllowedMessageType
test -- Force the test mode test -- Force the test mode
Kw Parameters: Kw Parameters:
...@@ -194,7 +198,7 @@ class MobytGateway(XMLObject): ...@@ -194,7 +198,7 @@ class MobytGateway(XMLObject):
if message_type != "text": if message_type != "text":
assert quality == 'n', "This type of message require top level messsage quality" assert quality == 'n', "This type of message require top level messsage quality"
assert message_type in self.getAllowedMessageType(), "Unknown message type" assert message_type in self.getAllowedMessageType(), "Unknown message type"
params['operation'] = message_type.capitalize() params['operation'] = message_type
#Send message (or test) #Send message (or test)
if test or self.isSimulationMode(): if test or self.isSimulationMode():
......
...@@ -31,17 +31,23 @@ from zope.interface import Interface ...@@ -31,17 +31,23 @@ from zope.interface import Interface
class ISmsGateway(Interface): class ISmsGateway(Interface):
def send(self, text, recipient, def send(text, recipient,
sender=None, sender_title=None, sender=None, sender_title=None,
message_type="text",test=False, **kw): message_type="text", test=False, **kw):
"""Send a message.""" """Send a message.
TODO: write
def receive(self, REQUEST): TODO: is getAllowedMessageType part of this API ?
shouldn't we rely on content_type ? ( text/plain -> SMS, text/html -> MMS ? )
"""
def receive(REQUEST):
"""Public handler to push notification from the gateway""" """Public handler to push notification from the gateway"""
def getAllowedMessageType(self): def getAllowedMessageType():
"""List of all allowed message type when send a message.""" """List of all allowed message type when sending a message."""
def getMessageStatus(self, message_id): def getMessageStatus(message_id):
"""Retrive the status of a message """Retrieve the status of a message
Should return x in ['sent', 'delivered', 'queued', 'failed']""" Should return x in ['sent', 'delivered', 'queued', 'failed']"""
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment