feat(api): Mail-Tags — Schema, Service, Controller, API-Client (#139) #179

Merged
admin-mrrm merged 1 commit from 139-mail-tags-schema-api into main 2026-05-03 01:14:27 +02:00
Owner

Was wurde umgesetzt

Datenbankschema

  • mail_tags — Kategorie-Taxonomie pro User (id, ownerSub, name, createdAt)
  • mail_message_tags — Zuweisung Nachricht ↔ Tag mit Status (suggested | confirmed)
  • Unique-Constraints: kein doppelter Tag-Name pro User, keine doppelte Zuweisung
  • Cascading Deletes auf allen FK-Beziehungen
  • Drizzle-Migration 0006 generiert

Backend (NestJS)

  • MailTagsService — CRUD für Taxonomie + Zuweisung/Bestätigung von Tags
  • MailTagsController — REST-Endpunkte:
    • GET /mail/tags — Taxonomie des Users
    • PATCH /mail/tags/:tagId — umbenennen
    • DELETE /mail/tags/:tagId — löschen (cascading)
    • GET /mail/messages/:messageId/tags — Tags einer Nachricht
    • POST /mail/messages/:messageId/tags — Tag zuweisen (erstellt Tag falls neu)
    • PATCH /mail/messages/:messageId/tags/:tagId/confirm — Status auf confirmed setzen
    • DELETE /mail/messages/:messageId/tags/:tagId — Zuweisung entfernen

API-Client

  • MailTag + MailMessageTag Schemas und Typen
  • Alle 7 Endpunkte in MailResource

Tests

14 neue Unit-Tests für MailTagsService, alle grün (97 gesamt).

Closes #139

## Was wurde umgesetzt ### Datenbankschema - `mail_tags` — Kategorie-Taxonomie pro User (`id`, `ownerSub`, `name`, `createdAt`) - `mail_message_tags` — Zuweisung Nachricht ↔ Tag mit Status (`suggested` | `confirmed`) - Unique-Constraints: kein doppelter Tag-Name pro User, keine doppelte Zuweisung - Cascading Deletes auf allen FK-Beziehungen - Drizzle-Migration `0006` generiert ### Backend (NestJS) - `MailTagsService` — CRUD für Taxonomie + Zuweisung/Bestätigung von Tags - `MailTagsController` — REST-Endpunkte: - `GET /mail/tags` — Taxonomie des Users - `PATCH /mail/tags/:tagId` — umbenennen - `DELETE /mail/tags/:tagId` — löschen (cascading) - `GET /mail/messages/:messageId/tags` — Tags einer Nachricht - `POST /mail/messages/:messageId/tags` — Tag zuweisen (erstellt Tag falls neu) - `PATCH /mail/messages/:messageId/tags/:tagId/confirm` — Status auf confirmed setzen - `DELETE /mail/messages/:messageId/tags/:tagId` — Zuweisung entfernen ### API-Client - `MailTag` + `MailMessageTag` Schemas und Typen - Alle 7 Endpunkte in `MailResource` ## Tests 14 neue Unit-Tests für `MailTagsService`, alle grün (97 gesamt). Closes #139
feat(api): Mail-Tags — Datenbankschema, Service, Controller + API-Client (#139)
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
443d2db9c8
Neue Tabellen mail_tags (Taxonomie pro User) und mail_message_tags
(Zuweisung mit Status suggested/confirmed). REST-Endpunkte zum Verwalten
der Taxonomie und zum Taggen einzelner Nachrichten. API-Client erweitert.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
admin-mrrm deleted branch 139-mail-tags-schema-api 2026-05-03 01:14:28 +02:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
admin-mrrm/mrrmlabapp!179
No description provided.