feat: implement /recover command for listing and recovering soft-deleted bounties #82

Closed
shoko wants to merge 1 commits from fix/issue-49-recover-command-v2 into main
Owner

Summary

Implements /recover command for listing and recovering soft-deleted bounties.

Behavior

/recover (list mode)

  • Shows all recoverable (soft-deleted) bounties
  • Sorted by deleted_at descending (latest first)

/recover <id...>

  • Recover specific bounty(ies) by ID
  • Can recover multiple: /recover 1 2 3

Permissions

  • Admin-only

Output Format

List mode:

Recoverable bounties:
[#1] Deleted bounty | 🗑️ Deleted 2 Apr 2026
[#3] Another deleted | 🗑️ Deleted 1 Apr 2026

Recover mode:

✅ Recovered bounty #1.
✅ Recovered bounty #3.
⛔ Bounty #5 not found or not deleted.

Changes

  • core/services.py: Add recover_bounty method to BountyService
  • apps/telegram-bot/commands.py: Add cmd_recover handler
  • apps/telegram-bot/bot.py: Register /recover command

Testing

All 94 tests pass.

Fixes #49

## Summary Implements `/recover` command for listing and recovering soft-deleted bounties. ### Behavior **`/recover`** (list mode) - Shows all recoverable (soft-deleted) bounties - Sorted by deleted_at descending (latest first) **`/recover <id...>`** - Recover specific bounty(ies) by ID - Can recover multiple: `/recover 1 2 3` ### Permissions - Admin-only ### Output Format **List mode:** ``` Recoverable bounties: [#1] Deleted bounty | 🗑️ Deleted 2 Apr 2026 [#3] Another deleted | 🗑️ Deleted 1 Apr 2026 ``` **Recover mode:** ``` ✅ Recovered bounty #1. ✅ Recovered bounty #3. ⛔ Bounty #5 not found or not deleted. ``` ## Changes - `core/services.py`: Add `recover_bounty` method to BountyService - `apps/telegram-bot/commands.py`: Add `cmd_recover` handler - `apps/telegram-bot/bot.py`: Register `/recover` command ## Testing All 94 tests pass. Fixes #49
shoko added 1 commit 2026-04-04 15:12:27 +02:00
- Add recover_bounty method to BountyService (admin-only)
- Add cmd_recover handler for listing and recovering deleted bounties
- Register /recover command in bot.py
- Add /recover to bot command list

/recover - list all recoverable bounties (sorted by deleted_at desc)
/recover <id...> - recover specific bounty(ies)

Output formats:
List: [#1] Deleted bounty | 🗑️ Deleted 2 Apr 2026
Recover:  Recovered bounty #1. or  Bounty #5 not found or not deleted.

Fixes #49
shoko closed this pull request 2026-04-04 15:29:05 +02:00

Pull request closed

Sign in to join this conversation.