This commit is contained in:
retoor 2025-06-25 21:23:31 +02:00
parent 8a6aa33974
commit db3b5a77bc
2 changed files with 19 additions and 7 deletions

View File

@ -74,6 +74,8 @@ class ChannelMessageService(BaseService):
if not self._configured_indexes: if not self._configured_indexes:
if not self.mapper.db["channel_message"].has_index(['is_final','user_uid','channel_uid']): if not self.mapper.db["channel_message"].has_index(['is_final','user_uid','channel_uid']):
self.mapper.db["channel_message"].create_index(['is_final','user_uid','channel_uid'], unique=False) self.mapper.db["channel_message"].create_index(['is_final','user_uid','channel_uid'], unique=False)
if not self.mapper.db["channel_message"].has_index(['uid']):
self.mapper.db["channel_message"].create_index(['uid'], unique=True)
if not self.mapper.db["channel_message"].has_index(['deleted_at']): if not self.mapper.db["channel_message"].has_index(['deleted_at']):
self.mapper.db["channel_message"].create_index(['deleted_at'], unique=False) self.mapper.db["channel_message"].create_index(['deleted_at'], unique=False)
self._configured_indexes = True self._configured_indexes = True

View File

@ -377,21 +377,31 @@ class RPCView(BaseView):
async with self.app.no_save(): async with self.app.no_save():
self._require_login() self._require_login()
message = await self.services.channel_message.get(message_uid,deleted_at=None,is_final=False) message = await self.services.channel_message.get(message_uid)
if not message: if not message:
return { return {
"error": "Message not found", "error": "Message not found",
"success": False, "success": False,
} }
if message["is_final"]:
return {
"error": "Message is final",
"success": False,
}
if message["deleted_at"]:
return {
"error": "Message is deleted",
"success": False,
}
if message["user_uid"] != self.user_uid: if message["user_uid"] != self.user_uid:
raise Exception("Not allowed") raise Exception("Not allowed")
if message.get_seconds_since_last_update() > 8: #if message.get_seconds_since_last_update() > 8:
return { # return {
"error": "Message too old", # "error": "Message too old",
"seconds_since_last_update": message.get_seconds_since_last_update(), # "seconds_since_last_update": message.get_seconds_since_last_update(),
"success": False, # "success": False,
} # }
message["message"] = text message["message"] = text
if not text: if not text: