summaryrefslogtreecommitdiff
path: root/docs/admin.md
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-05-06 12:57:27 +0300
committerPaul Buetow <paul@buetow.org>2026-05-06 13:08:52 +0300
commit259be64f758e275e8e9fc23de4a7de87526147c9 (patch)
tree96832e9f7c84c062abccec03a373875262763ac9 /docs/admin.md
parent5157db5a6a92617e1232845fbbc3c67fcdcaf5d5 (diff)
w0: Split SubscribeFeed into smaller helpers
SubscribeFeed was ~100 lines and did too much: admin check, feed parsing, filesystem setup, DB set creation, permission grant, feed creation, cover download, episode insertion, and marking checked. Refactored into focused helpers: - verifyAdmin – admin gate - resolveSetPath – sanitize name and build disk path - createPodcastSet – mkdir, create set row, grant owner perm - rollbackSet – delete set row + remove directory - createPodcastFeed – insert feed row - insertPodcastEpisodes – bulk insert parsed episodes Injected dependency fields (parseFeed, parseFeedReader, downloadCover) into podcastService so unit tests can replace them with fakes instead of hitting real HTTP or disk. Added internal/service/podcast_test.go with coverage for: - happy path SubscribeFeed - non-admin rejection - user lookup error - feed parse error - set creation error (directory cleaned up) - grant permission error (rollback) - feed creation error (rollback) - resolveSetPath / sanitize helpers - DownloadEpisode permission check - upsertFeedEpisodes (new + skip existing) - updateFeedFromParsed - insertPodcastEpisodes
Diffstat (limited to 'docs/admin.md')
0 files changed, 0 insertions, 0 deletions