Skip to content

Commit 71d1460

Browse files
authored
Merge pull request #18 from teams-notifier/fix-proper-message-cleanup
fix: properly cleanup messages and refs on MR closure
2 parents 3117de4 + e25ab75 commit 71d1460

File tree

1 file changed

+21
-15
lines changed

1 file changed

+21
-15
lines changed

webhook/merge_request.py

Lines changed: 21 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -219,25 +219,31 @@ async def merge_request(
219219
):
220220

221221
async with await database.acquire() as connection:
222-
for ct in conversation_tokens:
223-
mrmsgref = convtoken_to_msgrefs[ct]
224-
if mrmsgref.message_id is None:
225-
continue
222+
res = await connection.fetch(
223+
"""SELECT merge_request_message_ref_id, message_id
224+
FROM merge_request_message_ref
225+
WHERE merge_request_ref_id = $1""",
226+
mri.merge_request_ref_id,
227+
)
228+
for row in res:
229+
message_id = row.get("message_id")
230+
if message_id is not None:
231+
await connection.execute(
232+
"""INSERT INTO msg_to_delete
233+
(message_id, expire_at)
234+
VALUES
235+
($1, now()+'30 seconds'::INTERVAL)""",
236+
str(message_id),
237+
)
226238
await connection.execute(
227-
"""INSERT INTO msg_to_delete
228-
(message_id, expire_at)
229-
VALUES
230-
($1, now()+'30 seconds'::INTERVAL)""",
231-
str(mrmsgref.message_id),
239+
"DELETE FROM merge_request_message_ref WHERE merge_request_message_ref_id = $1",
240+
row.get("merge_request_message_ref_id"),
232241
)
242+
if len(res):
233243
await connection.execute(
234-
"DELETE FROM merge_request_message_ref WHERE merge_request_message_ref_id = $1",
235-
mrmsgref.merge_request_message_ref_id,
244+
"DELETE FROM merge_request_ref WHERE merge_request_ref_id = $1",
245+
mri.merge_request_ref_id,
236246
)
237-
await connection.execute(
238-
"DELETE FROM merge_request_ref WHERE merge_request_ref_id = $1",
239-
mri.merge_request_ref_id,
240-
)
241247

242248
return {
243249
"merge_request_infos": mri,

0 commit comments

Comments
 (0)