diff options
Diffstat (limited to 'synapse/api')
-rw-r--r-- | synapse/api/auth.py | 2 | ||||
-rw-r--r-- | synapse/api/constants.py | 4 | ||||
-rw-r--r-- | synapse/api/events/room.py | 16 |
3 files changed, 13 insertions, 9 deletions
diff --git a/synapse/api/auth.py b/synapse/api/auth.py index 646f6dc06c..ef3604077d 100644 --- a/synapse/api/auth.py +++ b/synapse/api/auth.py @@ -168,6 +168,8 @@ class Auth(object): """ try: user_id = yield self.store.get_user_by_token(token=token) + if not user_id: + raise StoreError() defer.returnValue(self.hs.parse_userid(user_id)) except StoreError: raise AuthError(403, "Unrecognised access token.", diff --git a/synapse/api/constants.py b/synapse/api/constants.py index 2af5424029..f69f2445a2 100644 --- a/synapse/api/constants.py +++ b/synapse/api/constants.py @@ -31,8 +31,8 @@ class Feedback(object): """Represents the types of feedback a user can send in response to a message.""" - DELIVERED = u"d" - READ = u"r" + DELIVERED = u"delivered" + READ = u"read" LIST = (DELIVERED, READ) diff --git a/synapse/api/events/room.py b/synapse/api/events/room.py index 2a7b5e8aba..9faad57ac0 100644 --- a/synapse/api/events/room.py +++ b/synapse/api/events/room.py @@ -13,7 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -from synapse.api.constants import Membership +from synapse.api.constants import Feedback, Membership from synapse.api.errors import SynapseError from . import SynapseEvent @@ -93,17 +93,19 @@ class MessageEvent(SynapseEvent): class FeedbackEvent(SynapseEvent): TYPE = "m.room.message.feedback" - valid_keys = SynapseEvent.valid_keys + [ - "msg_id", # the message ID being acknowledged - "msg_sender_id", # person who is sending the feedback is 'user_id' - "feedback_type", # the type of feedback (delivery, read, etc) - ] + valid_keys = SynapseEvent.valid_keys def __init__(self, **kwargs): super(FeedbackEvent, self).__init__(**kwargs) + if not kwargs["content"]["type"] in Feedback.LIST: + raise SynapseError(400, "Bad feedback value.") def get_content_template(self): - return {} + return { + "type": u"string", + "target_event_id": u"string", + "msg_sender_id": u"string" + } class InviteJoinEvent(SynapseEvent): |