Slice-Priority beim Anlegen + `/move`-Endpunkt für Slices
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 48/100
Hướng nghiên cứu
Bắt đầu với lib/RoutePackage/Structure.php, rex_content_service::addSlice() và moveSlice(), cùng các test hiện có trong tests/StructureApiTest.php và tests/BackendApiTest.php. So sánh hành vi di chuyển với rex_api_content_move_slice::execute() và kiểm tra việc validation body cũng như các bước kiểm tra quyền hiện tại. Được xem là hoàn tất khi việc tạo slice có xét đến priority và endpoint di chuyển hoạt động cho cả các route API và backend, với các test bao phủ validation, quyền, response và hành vi ở các biên.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Ü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.
- Ngôn ngữ chính
- PHP
- Star
- 20
- Fork
- 0
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Chuẩn bị môi trường
Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của FriendsOfREDAXO/api
-
Medien löschen hinter Web Application Firewalls blockiert (Pfad enthält /delete)Có thể đã có người làm @skerbis đã nhận 7 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
FriendsOfREDAXO/api#84 ·
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 65/100
FriendsOfREDAXO/api#83 ·
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 45/100
FriendsOfREDAXO/api#81 ·
-
checkMediaPerm(): Ziel nicht geprüft bei Verschieben + keine Kaskadierung auf UnterkategorienĐang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 55/100
FriendsOfREDAXO/api#80 ·
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 55/100
FriendsOfREDAXO/api#65 ·
Tất cả issue của FriendsOfREDAXO/api
Issue tương tự
-
Awaiting Triage
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 85/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 64/100
Maintainer thường phản hồi trong vòng 1 ngày
-
tui: PHP code blocks without `<?php` are not syntax highlightedCó thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mởreproduced
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
anomalyco/opencode#58664 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 87/100
WordPress/phpunit-test-runner#364 ·
Maintainer thường phản hồi trong vòng 4 ngày
-
domain/framework Platform(Default) priority/high
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 2 ngày