diff --git a/src/snek/model/channel.py b/src/snek/model/channel.py index d664087..8a40ced 100644 --- a/src/snek/model/channel.py +++ b/src/snek/model/channel.py @@ -9,3 +9,4 @@ class ChannelModel(BaseModel): is_private = ModelField(name="is_private", required=True, kind=bool, value=False) is_listed = ModelField(name="is_listed", required=True, kind=bool, value=True) index = ModelField(name="index", required=True, kind=int, value=1000) + last_message_on = ModelField(name="last_message_on", required=False, kind=str) diff --git a/src/snek/service/chat.py b/src/snek/service/chat.py index 02a4bd5..5eacbeb 100644 --- a/src/snek/service/chat.py +++ b/src/snek/service/chat.py @@ -1,12 +1,16 @@ +from snek.system.model import now from snek.system.service import BaseService class ChatService(BaseService): async def send(self,user_uid, channel_uid, message): + channel = await self.services.channel.get(uid=channel_uid) + if not channel: + raise Exception("Channel not found.") channel_message = await self.services.channel_message.create( channel_uid, user_uid, @@ -28,4 +32,6 @@ class ChatService(BaseService): uid=channel_message['uid'], user_nick=user['nick'] )) + channel['last_message_on'] = now() + await self.services.channel.save(channel) return sent_to_count \ No newline at end of file