mirror of
https://github.com/zulip/zulip.git
synced 2025-11-04 14:03:30 +00:00
api: Guess emoji_type when adding a reaction.
This changes add_reaction in zerver.views.reactions to allow
calling POST ../messages/{message_id}/reactions api endpoint with
emoji_name only, even in the case of a custom emoji.
This commit is contained in:
@@ -62,10 +62,21 @@ class ReactionEmojiTest(ZulipTestCase):
|
||||
'emoji_name': 'smile'
|
||||
}
|
||||
|
||||
base_query = Reaction.objects.filter(user_profile=sender,
|
||||
message=Message.objects.get(id=1),
|
||||
)
|
||||
result = self.api_post(sender, '/api/v1/messages/1/reactions',
|
||||
reaction_info)
|
||||
self.assert_json_success(result)
|
||||
self.assertEqual(200, result.status_code)
|
||||
self.assertTrue(base_query.filter(emoji_name=reaction_info['emoji_name']).exists())
|
||||
|
||||
reaction_info['emoji_name'] = 'green_tick'
|
||||
result = self.api_post(sender, '/api/v1/messages/1/reactions',
|
||||
reaction_info)
|
||||
self.assert_json_success(result)
|
||||
self.assertEqual(200, result.status_code)
|
||||
self.assertTrue(base_query.filter(emoji_name=reaction_info['emoji_name']).exists())
|
||||
|
||||
def test_zulip_emoji(self) -> None:
|
||||
"""
|
||||
@@ -76,11 +87,21 @@ class ReactionEmojiTest(ZulipTestCase):
|
||||
'emoji_name': 'zulip',
|
||||
'reaction_type': 'zulip_extra_emoji'
|
||||
}
|
||||
base_query = Reaction.objects.filter(user_profile=sender,
|
||||
emoji_name=reaction_info['emoji_name'])
|
||||
|
||||
result = self.api_post(sender, '/api/v1/messages/1/reactions',
|
||||
reaction_info)
|
||||
self.assert_json_success(result)
|
||||
self.assertEqual(200, result.status_code)
|
||||
self.assertTrue(base_query.filter(message=Message.objects.get(id=1)).exists())
|
||||
|
||||
reaction_info.pop('reaction_type')
|
||||
result = self.api_post(sender, '/api/v1/messages/2/reactions',
|
||||
reaction_info)
|
||||
self.assert_json_success(result)
|
||||
self.assertEqual(200, result.status_code)
|
||||
self.assertTrue(base_query.filter(message=Message.objects.get(id=2)).exists())
|
||||
|
||||
def test_valid_emoji_react_historical(self) -> None:
|
||||
"""
|
||||
|
||||
@@ -26,7 +26,7 @@ def create_historical_message(user_profile: UserProfile, message: Message) -> No
|
||||
def add_reaction(request: HttpRequest, user_profile: UserProfile, message_id: int,
|
||||
emoji_name: str=REQ(),
|
||||
emoji_code: Optional[str]=REQ(default=None),
|
||||
reaction_type: str=REQ(default="unicode_emoji")) -> HttpResponse:
|
||||
reaction_type: Optional[str]=REQ(default=None)) -> HttpResponse:
|
||||
message, user_message = access_message(user_profile, message_id)
|
||||
|
||||
if emoji_code is None:
|
||||
@@ -37,6 +37,10 @@ def add_reaction(request: HttpRequest, user_profile: UserProfile, message_id: in
|
||||
emoji_code = emoji_name_to_emoji_code(message.sender.realm,
|
||||
emoji_name)[0]
|
||||
|
||||
if reaction_type is None:
|
||||
reaction_type = emoji_name_to_emoji_code(message.sender.realm,
|
||||
emoji_name)[1]
|
||||
|
||||
if Reaction.objects.filter(user_profile=user_profile,
|
||||
message=message,
|
||||
emoji_code=emoji_code,
|
||||
|
||||
Reference in New Issue
Block a user