feat(core): implement services for issue #8 #25

Closed
shoko wants to merge 2 commits from feat/issue-8-services into main
Owner

Summary

Implement business logic services:

  • RoomBountyService: add_bounty, get_bounty, list_bounties, update_bounty, delete_bounty
  • TrackingService: track_bounty, untrack_bounty, list_tracked

All services orchestrate through storage ports (RoomStorage, TrackingStorage) with no implementation details.

Changes

  • core/services.py - RoomBountyService and TrackingService
  • Timestamps generated at service layer using time.time()
  • PermissionError raised when non-creator tries to edit/delete
  • ValueError raised when tracking non-existent bounty
  • clear_link and clear_due parameters for partial updates

Closes #8

## Summary Implement business logic services: - **RoomBountyService**: add_bounty, get_bounty, list_bounties, update_bounty, delete_bounty - **TrackingService**: track_bounty, untrack_bounty, list_tracked All services orchestrate through storage ports (RoomStorage, TrackingStorage) with no implementation details. ## Changes - `core/services.py` - RoomBountyService and TrackingService - Timestamps generated at service layer using `time.time()` - PermissionError raised when non-creator tries to edit/delete - ValueError raised when tracking non-existent bounty - `clear_link` and `clear_due` parameters for partial updates Closes #8
shoko added 2 commits 2026-04-03 10:27:00 +02:00
- Set created_at timestamp at service layer using time.time()
- Add PermissionError when non-creator tries to edit/delete
- Add ValueError when tracking non-existent bounty
- Rename create_bounty to add_bounty (matches spec)
- Add clear_link and clear_due parameters for partial updates
- Track timestamps for tracked bounties too
shoko closed this pull request 2026-04-03 11:41:26 +02:00

Pull request closed

Sign in to join this conversation.