(guildId, userId, warningId)
| 70 | } |
| 71 | |
| 72 | static async removeWarning(guildId, userId, warningId) { |
| 73 | try { |
| 74 | const key = `moderation:warnings:${guildId}:${userId}`; |
| 75 | const warnings = await getFromDb(key, []); |
| 76 | |
| 77 | const index = warnings.findIndex(w => w.id === warningId); |
| 78 | if (index === -1) { |
| 79 | return { success: false, error: 'Warning not found' }; |
| 80 | } |
| 81 | |
| 82 | warnings[index].status = 'deleted'; |
| 83 | await setInDb(key, warnings); |
| 84 | |
| 85 | logger.info(`Warning removed: ${warningId} for ${userId} in ${guildId}`); |
| 86 | return { success: true }; |
| 87 | } catch (error) { |
| 88 | logger.error('Error removing warning:', error); |
| 89 | return { success: false, error: error.message }; |
| 90 | } |
| 91 | } |
| 92 | |
| 93 | static async clearWarnings(guildId, userId) { |
| 94 | try { |
no test coverage detected