mirror of
https://github.com/zulip/zulip.git
synced 2025-10-23 16:14:02 +00:00
The previous text was rather wordy, and using a silent mention makes it clear who has the ability to control this group, and who one can potentially contact with questions.
45 lines
1.5 KiB
Python
45 lines
1.5 KiB
Python
from typing import Annotated
|
|
|
|
from django.conf import settings
|
|
from django.http import HttpRequest, HttpResponse
|
|
from django.utils.translation import gettext as _
|
|
from pydantic import StringConstraints
|
|
|
|
from zerver.actions.message_send import internal_send_private_message
|
|
from zerver.decorator import require_realm_admin
|
|
from zerver.lib.exceptions import JsonableError
|
|
from zerver.lib.onboarding import get_custom_welcome_message_string
|
|
from zerver.lib.response import json_success
|
|
from zerver.lib.typed_endpoint import typed_endpoint
|
|
from zerver.models.realms import Realm
|
|
from zerver.models.users import UserProfile, get_system_bot
|
|
|
|
|
|
@require_realm_admin
|
|
@typed_endpoint
|
|
def send_test_welcome_bot_custom_message(
|
|
request: HttpRequest,
|
|
user_profile: UserProfile,
|
|
*,
|
|
welcome_message_custom_text: Annotated[
|
|
str,
|
|
StringConstraints(
|
|
max_length=Realm.MAX_REALM_WELCOME_MESSAGE_CUSTOM_TEXT_LENGTH,
|
|
),
|
|
],
|
|
) -> HttpResponse:
|
|
if len(welcome_message_custom_text) == 0:
|
|
raise JsonableError(_("Message must not be empty"))
|
|
|
|
welcome_bot_custom_message_string = get_custom_welcome_message_string(
|
|
user_profile.realm, welcome_message_custom_text
|
|
)
|
|
message_id = internal_send_private_message(
|
|
get_system_bot(settings.WELCOME_BOT, user_profile.realm_id),
|
|
user_profile,
|
|
welcome_bot_custom_message_string,
|
|
disable_external_notifications=True,
|
|
)
|
|
assert message_id is not None
|
|
return json_success(request, data={"message_id": message_id})
|