You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
feat(api): On This Day shows one cover per burst; list a burst's frames #299
On This Day shows each burst once, as the viewer's cover, marked with how many frames the viewer can see, and the API lists all of a burst's visible frames so the UI can page through them.
Acceptance criteria
On This Day shows one item per burst: the viewer's cover, the earliest member that is visible to them (VisibleTo) and not hidden for them.
The item carries burst { burstId, isCover, count }; count counts only members visible to the caller. Photos outside a burst carry no burst.
A burst whose members are all hidden for the caller does not appear.
A burst counts as starred, and as liked for DisplayWeight, when any visible member is.
The cover's capture date decides the day: a burst across midnight appears on its cover's day only, and on the next day when every member before midnight is hidden for the caller.
GET /api/v1/bursts/{id}/assets returns the burst's visible members, oldest first, as asset views through a new IAssetSelection read by IAssetViewReader; an unknown burst, another user's burst and a burst with no visible member all return 404.
Tests: AssetViewReaderTests (SQL shape via ToQueryString(), data via InMemory), FlashbackYearsTests, FlashbackEndpointsTests. Mutation score 100% on the changed files.
First caller
On This Day (GET /api/v1/flashbacks/on-this-day) is the first caller of the collapse and the burst field; the UI (Epic 7) follows the burstId it hands out to GET /api/v1/bursts/{id}/assets, which ships in this PR so that id can be followed.
Activity
refactor(api): One home for the day rule and one name for a burst's m…
feat(api): On This Day shows one cover per burst; list a burst's fram…