Skip to content

Masterdata: GET /api/v1/masterdata/series list + get-by-id #187

Description

@DutchJaFO

Background

Depends on #183 (shared list-endpoint infrastructure).

SeriesEntity (src/Quotinator.Engine/Entities/Series.cs), added by #179, has no repository or
endpoint of any kind today. This issue gives Series its first read access, needed before #180's
overlay-file work can be verified against real API responses and before duplicate-Series discovery
becomes possible.

What needs to be done

  1. GET /api/v1/masterdata/series — paginated list, using List-endpoint shared infrastructure for the masterdata and Conversations list endpoints #183's IListableRepository<SeriesEntity>
    (Series' first-ever repository registration) + PageResponse<T> + shared pagination-clamp helper.
    Response items include Id, Name, UniverseId (nullable), CompletenessStatus.
  2. GET /api/v1/masterdata/series/{id} — single Series by id, using List-endpoint shared infrastructure for the masterdata and Conversations list endpoints #183's shared not-found helper.
    {id} matches case-insensitively.
  3. Both endpoints use RateLimitPolicies.Api, tag ApiTags.MasterData, and [Description] attributes.
  4. No entity-specific filters yet (e.g. ?universeId=) — deferred per List-endpoint shared infrastructure for the masterdata and Conversations list endpoints #183's filter convention.
  5. Update README.md and addon/DOCS.md's endpoint tables.

Expected tests

Test class Test method Starts
New: Quotinator.Api.Tests GetAllSeries_ReturnsPaginatedResults
New: Quotinator.Api.Tests GetSeriesById_ExistingId_ReturnsSeries
New: Quotinator.Api.Tests GetSeriesById_UnknownId_Returns404
New: Quotinator.Api.Tests GetSeriesById_LowercaseId_MatchesCaseInsensitively

Definition of done

  • All expected tests listed above start red before implementation
  • All requirements implemented
  • All expected tests pass (green)
  • No regression in related tests
  • Findings summarised in a closing comment

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions