Files
commafeed-podcasts/changelog/plans/plan-basic-episodes.md
2026-06-11 15:07:51 +02:00

1.7 KiB
Raw Permalink Blame History

Basic Episodes Fetch

Overview

This plan focuses on adding a minimal episodesfetch feature that pulls podcast episodes from the CommaFeed backend using environment variables for configuration.

The plan is derived from:

  • docs/dev/README.md (API endpoints, authentication)
  • src/ structure and existing route system
  • Build scripts in bs/ only linting is required at this stage.

Tasks

  1. API client (DONE)
    • Adds src/api folder to the project structure (update also @src/README.md).
    • Implement a lightweight wrapper around fetch in src/api/fetchAPI.ts.
    • Build authHeader() that returns the BasicAuth header using for now hardcoded vars.
  2. Episode service (DONE)
    • Add src/api/episodes.ts with getEpisodes(feedId) and getEpisode(id).
    • Add data types
    • Use /rest/feed/entries?feed_id=${feedId} endpoint.
  3. Page update (TODO)
    • Add fetching all episodes
    • Update <app-episodes> to reflect loading state(s).
    • Add episode list item component.
    • Update <app-episodes> to render the episode list received from the route context.
  4. Testing (TODO)
    • Add unit tests for api/*.ts using project test setup.
    • Add unit test for created component(s)
  5. Linting (TODO)
    • Ensure all new files satisfy the lint rule defined in bs/dev/lint.

Expected Output

  • Visiting /episodes/ will display a list of episodes fetched from CommaFeed.
  • Episodes are identified by their id and displayed with title, publish date, and an audio link if available.
  • Authentication uses the env variables; no credentials are hardcoded in source.

Note

: This plan intentionally keeps external dependencies minimal. It can be extended later for pagination, caching, or offline support.