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(
recipient=to_url,
sender=from_url,
sender_title=from_title,
message_type="text",
message_type="MULTITEXT",
test=download,
document_relative_url=context.getRelativeUrl(),
**kw)
......@@ -91,8 +91,9 @@ class DummyGateway(XMLObject):
Return message id
"""
#Check messsage type
if message_type not in self.getAllowedMessageType():
raise ValueError, "Type of message in not allowed"
# XXX does it make sense to check message type in dummy gateway ? -jerome
#if message_type not in self.getAllowedMessageType():
# raise ValueError, "Type of message in not allowed"
#Send message (or test)
if test or self.isSimulationMode():
......
......@@ -70,11 +70,15 @@ class MobytGateway(XMLObject):
, 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"
security.declarePublic('getAllowedMessageType')
def getAllowedMessageType(self):
"""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")
def _fetchSendResponseAsDict(self,page):
......@@ -145,7 +149,7 @@ class MobytGateway(XMLObject):
recipient -- phone url of destination_reference. Could be a list
sender -- phone url of source
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
Kw Parameters:
......@@ -194,7 +198,7 @@ class MobytGateway(XMLObject):
if message_type != "text":
assert quality == 'n', "This type of message require top level messsage quality"
assert message_type in self.getAllowedMessageType(), "Unknown message type"
params['operation'] = message_type.capitalize()
params['operation'] = message_type
#Send message (or test)
if test or self.isSimulationMode():
......
......@@ -31,17 +31,23 @@ from zope.interface import Interface
class ISmsGateway(Interface):
def send(self, text, recipient,
def send(text, recipient,
sender=None, sender_title=None,
message_type="text",test=False, **kw):
"""Send a message."""
message_type="text", test=False, **kw):
"""Send a message.
def receive(self, REQUEST):
TODO: write
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"""
def getAllowedMessageType(self):
"""List of all allowed message type when send a message."""
def getAllowedMessageType():
"""List of all allowed message type when sending a message."""
def getMessageStatus(self, message_id):
"""Retrive the status of a message
def getMessageStatus(message_id):
"""Retrieve the status of a message
Should return x in ['sent', 'delivered', 'queued', 'failed']"""
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