Feeds 1/5: data model, storage and API for groups, feeds and item state

Aperta
#231 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
35/100
Tipo di issue
Funzionalità
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
azure, csharp
Ambito
api, backend, database

Direzione di ricerca

Start in the NoteBookmark.Domain project to add the FeedGroup, Feed and FeedItemState types as ITableEntity, then read DataStorageService to see how existing tables are created and queried. Add the api/feeds endpoints following the existing Api.Tests patterns, with the SHA-256 RowKey for item state and the 409 rule on group delete. Done when the three tables work, every endpoint has unit tests, and the 60-day pruning runs when states are listed.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

enhancement in-progress ready-for-agent

Sub-issue of #230, written with an AI assistant. Part 1 of 5, no dependencies.

Goal

Domain types, Azure Table storage and API endpoints for feed groups, feeds and item state. No UI.

Scope

  • Domain (NoteBookmark.Domain): FeedGroup (Id, Name), Feed (Id, Title, FeedUrl, SiteUrl, GroupId), FeedItemState (Url, State = Added | Skipped, FeedId, DateModified). All ITableEntity.
  • Storage (DataStorageService): tables FeedGroups, Feeds, FeedItemStates. Item state RowKey is a SHA-256 hash of the normalized URL (raw URLs contain characters Table keys reject).
  • Endpoints under api/feeds:
    • groups: list, save (create/rename), delete (409 if the group still has feeds)
    • feeds: list, save (create/update/move group; group must exist; feed URL unique), delete
    • item state: list, set one (Added / Skipped), set many (used by "Mark all as skipped")
    • Skipped records older than 60 days are pruned when states are listed.
  • Unit tests for domain and endpoints, following the existing Api.Tests patterns.

Out of scope

Fetching feeds (#232), discovery and OPML (#233), any UI (#233, #234, #235).

Lingua principale
C#
Stelle
13
Fork
3
Merge medio
12h 33m
PR unite (30g)
13

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di fboucher/NoteBookmark

Tutte le issue di fboucher/NoteBookmark

Issue simili

Altre issue su C#

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.