Slice-Priority beim Anlegen + `/move`-Endpunkt für Slices
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 48/100
Línea de trabajo
Comienza con lib/RoutePackage/Structure.php, rex_content_service::addSlice() y moveSlice(), y con las pruebas existentes en tests/StructureApiTest.php y tests/BackendApiTest.php. Compara el comportamiento del movimiento con rex_api_content_move_slice::execute() e inspecciona la validación actual del body y las comprobaciones de permisos. Se considera terminado cuando la creación de slices consciente de la prioridad y el endpoint de movimiento funcionan tanto para las rutas de API como de backend, con pruebas que cubran la validación, los permisos, las respuestas y el comportamiento en los límites.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Übernommen aus #50 von @marcohanke. Der fachliche Zuschnitt stammt vollständig von ihm; der Branch ist gegen main konfliktbehaftet, weil lib/RoutePackage/Structure.php in #58/#59/#60 umgebaut wurde — deshalb hier als Issue festgehalten, statt den Branch nachzuziehen. Die Tests aus dem PR-Branch (tests/StructureApiTest.php, tests/BackendApiTest.php) lassen sich übernehmen.
1. priority beim Anlegen eines Slices. Optionales Body-Feld für POST /api/structure/articles/{id}/slices; ohne Angabe unverändertes Verhalten. rex_content_service::addSlice() versteht den Schlüssel bereits (content_service.php:15-22): ohne Angabe wird angehängt (MAX(priority)+1), <= 0 auf 1 normalisiert, danach läuft rex_sql_util::organizePriorities(). Kein neues SQL, kein neuer EP.
2. POST /api/structure/articles/{id}/slices/{slice_id}/move mit Body {"direction": "moveup"|"movedown"} als Spiegel von rex_api_content_move_slice::execute(). clang_id und module_id kommen aus dem Slice-Datensatz, die Permission-Kaskade für Session-Aufrufe ist moveSlice[] → Kategorie-Perm → Modul-Perm. rex_content_service::moveSlice() erledigt den Rest (SLICE_MOVE, organizePriorities, rex_article_cache::deleteContent(), art_content_updated) und ist Bearer-tauglich: getUser() fällt auf rex::getEnvironment() zurück, kein requireUser(). Der Backend-Spiegel entsteht automatisch über RoutePackage/Backend/Structure.php.
Gegen den aktuellen main zusätzlich zu beachten:
- Slice-Bodys werden seit #58 strikt geprüft —
prioritymuss in der Body-Definition stehen, und der move-Handler sollte ebenfalls mitgetQuerySet(..., true)parsen. checkLiveRevisionPerm()fehlt im move-Handler: ein Move in Revision 0 ist ein Schreibzugriff auf die Live-Version und braucht bei Backend-Usernversion[live_version].- Die Message aus
moveSlice()kommt HTML-escaped ausrex_i18n::msg()— vor der JSON-Ausgabehtml_entity_decode(). - Statuscode an der Grenze (
moveupauf dem obersten Slice): der PR nimmt 422, die Konvention im AddOn ist 409 für fachliche Verstöße (Clangs::errorResponse). Einmal festlegen.
Bewusst ausgelassen (so von Marco begründet): priority per PATCH /slices/{id}, absolute Positionen, move-to-top/move-to-bottom.
Dieser Text wurde durch eine KI erstellt.
- Lenguaje dominante
- PHP
- Estrellas
- 20
- Forks
- 0
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de FriendsOfREDAXO/api
-
Medien löschen hinter Web Application Firewalls blockiert (Pfad enthält /delete)Posiblemente ocupada @skerbis la tomó hace 6 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
FriendsOfREDAXO/api#84 ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 65/100
FriendsOfREDAXO/api#83 ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
FriendsOfREDAXO/api#81 ·
-
checkMediaPerm(): Ziel nicht geprüft bei Verschieben + keine Kaskadierung auf UnterkategorienAbierto
Dificultad 4/5 3-5 días Aptitud para principiantes 55/100
FriendsOfREDAXO/api#80 ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 55/100
FriendsOfREDAXO/api#65 ·
Todos los issues de FriendsOfREDAXO/api
Issues similares
-
0. Needs triage 35-feedback bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 1 día
-
product / auth product / databases product / functions product / messaging product / storage product / vcs
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
good first issue ux
Dificultad 1/5 Menos de una hora Aptitud para principiantes 89/100
alleyinteractive/wp-curate#498 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
mollie/PrestaShop#1593 ·
Los mantenedores suelen responder en 7 días