FriendsOfREDAXO / FriendsOfREDAXO/api

Medien-Synchronisation (Dateisystem → DB) als REST-Endpunkt

Open
#65 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
PHP
Stars
20
Forks
0
Avg merge
49m
Merged PRs (30d)
17

Description

Aus #53 von @skerbis. Bestätigt: `/api/me` kennt kein `media/sync`, der Endpunkt fehlt tatsächlich.

Im Core gibt es die Funktion unter `mediapool/pages/sync.php`, abgesichert über die Permission `media[sync]` (`mediapool/package.yml:20`). Die Seite tut zwei Dinge:

1. **Diff** — alle Dateien in `rex_path::media()` per `rex_finder`, abzüglich der in `rex_media` eingetragenen (`sync.php:9-29`).
2. **Import** — ausgewählte Dateinamen über `rex_media_service::addMedia($data, false)` mit `title` und `category_id` (`sync.php:82`).

Vorschlag: `GET /api/media/sync` liefert die Diff-Liste, `POST /api/media/sync` mit `{"files":[…],"category_id":…,"title":"…"}` importiert. Scope `media/sync`; im Backend-Spiegel gegen `media[sync]` prüfen statt gegen die Kategorierechte, weil der Core das dort auch so macht.

Zu klären vor der Umsetzung: die Seite repariert bei **jedem Aufruf** zusätzlich `filesize`/`width`/`height` bestehender DB-Einträge (`sync.php:32-53`) — ein Schreibvorgang beim Lesen. Das darf ein `GET` nicht tun. Entweder in den `POST` verschieben oder als eigener Endpunkt (`POST /api/media/sync/repair`).

---
*Dieser Text wurde durch eine KI erstellt.*

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with mediapool/pages/sync.php, mediapool/package.yml:20, and the existing /api/me route conventions. Compare the sync page's diff, import, and metadata-repair behavior with the API's permission and scope handling. Done means the requested sync operations are exposed without making GET perform writes, with the intended media/sync permission enforced.

Written by the indexing model from the issue text.

Assessment

Tech stack
php
Domain
api, backend
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.