@@ -159,12 +159,12 @@ def get_chatroom_message(chatroom_id: int) -> Any:
159
159
# 레디스에 저장된 메시지가 30개가 넘으면 가장 마지막에 저장된 메시지부터 30개를 가져옴
160
160
if stored_message_num >= 30 :
161
161
stored_messages = redis_conn .lrange (key , 0 , 29 )
162
- messages = [json .loads (msg ) for msg in stored_messages [:: - 1 ] ]
162
+ messages = [json .loads (msg ) for msg in stored_messages ]
163
163
return messages
164
164
165
165
# 30개가 넘지않으면 레디스에 저장된 메시지들을 가져오고
166
- stored_messages = redis_conn .lrange (key , 0 , stored_message_num )
167
- messages = [json .loads (msg ) for msg in stored_messages [:: - 1 ] ]
166
+ stored_messages = redis_conn .lrange (key , 0 , stored_message_num - 1 )
167
+ messages = [json .loads (msg ) for msg in stored_messages ]
168
168
169
169
# 데이터베이스에서 30 - stored_message_num을 뺀 개수만큼 가져옴
170
170
db_messages = Message .objects .filter (chatroom_id = chatroom_id ).order_by ("-created_at" )
@@ -176,21 +176,21 @@ def get_chatroom_message(chatroom_id: int) -> Any:
176
176
# 디비에 저장된 메시지가 30-stored_message_num 보다 많으면 슬라이싱해서 필요한 만큼의 데이터를 가져옴
177
177
if len (db_messages ) >= 30 - stored_message_num :
178
178
serialized_messages = MessageSerializer (db_messages [: 30 - stored_message_num ], many = True ).data
179
- return serialized_messages [:: - 1 ] + messages
179
+ return messages + serialized_messages
180
180
181
181
# 디비에 저장된 메시지가 30-stored_message_num 보다 적으면 db에 저장된 채팅방의 모든 메시지를 가져옴
182
182
serialized_messages = MessageSerializer (db_messages , many = True ).data
183
- return serialized_messages [:: - 1 ] + messages
183
+ return messages + serialized_messages
184
184
185
185
# 레디스에 해당 채팅방 그룹 네임으로 지정된 키값이 없으면 데이터베이스에서 채팅 메시지를 가져옴
186
186
db_messages = Message .objects .filter (chatroom_id = chatroom_id )
187
187
if db_messages :
188
188
if db_messages .count () >= 30 :
189
189
serialized_messages = MessageSerializer (db_messages [:30 ], many = True ).data
190
- return serialized_messages [:: - 1 ]
190
+ return serialized_messages
191
191
192
192
serialized_messages = MessageSerializer (db_messages , many = True ).data
193
- return serialized_messages [:: - 1 ]
193
+ return serialized_messages
194
194
195
195
# 어디에도 데이터가 존재하지않으면 None을 반환
196
196
return None
0 commit comments