diff options
Diffstat (limited to 'python/fatcat_web/editing_routes.py')
-rw-r--r-- | python/fatcat_web/editing_routes.py | 163 |
1 files changed, 89 insertions, 74 deletions
diff --git a/python/fatcat_web/editing_routes.py b/python/fatcat_web/editing_routes.py index 03668e1e..32bff51d 100644 --- a/python/fatcat_web/editing_routes.py +++ b/python/fatcat_web/editing_routes.py @@ -1,6 +1,7 @@ -from typing import Optional +from typing import Any, Optional from fatcat_openapi_client import ( + ApiClient, ContainerEntity, CreatorEntity, Editgroup, @@ -16,7 +17,7 @@ from flask import abort, flash, redirect, render_template, session from flask_login import login_required from fatcat_tools.transforms import entity_from_toml -from fatcat_web import api, app, auth_api +from fatcat_web import AnyResponse, api, app, auth_api from fatcat_web.entity_helpers import generic_get_editgroup_entity, generic_get_entity from fatcat_web.forms import ( ContainerEntityForm, @@ -30,7 +31,7 @@ from fatcat_web.forms import ( def generic_entity_create_from_toml( - user_api, entity_type: str, editgroup_id: str, toml_str: str + user_api: ApiClient, entity_type: str, editgroup_id: str, toml_str: str ) -> EntityEdit: if entity_type == "container": entity = entity_from_toml(toml_str, ContainerEntity) @@ -59,7 +60,7 @@ def generic_entity_create_from_toml( def generic_entity_delete_edit( - user_api, entity_type: str, editgroup_id: str, edit_id: str + user_api: ApiClient, entity_type: str, editgroup_id: str, edit_id: str ) -> None: try: if entity_type == "container": @@ -86,7 +87,7 @@ def generic_entity_delete_edit( def generic_entity_delete_entity( - user_api, entity_type: str, editgroup_id: str, entity_ident: str + user_api: ApiClient, entity_type: str, editgroup_id: str, entity_ident: str ) -> EntityEdit: try: if entity_type == "container": @@ -111,7 +112,7 @@ def generic_entity_delete_entity( def generic_entity_update_from_toml( - user_api, entity_type: str, editgroup_id: str, existing_ident, toml_str: str + user_api: ApiClient, entity_type: str, editgroup_id: str, existing_ident: str, toml_str: str ) -> EntityEdit: if entity_type == "container": entity = entity_from_toml(toml_str, ContainerEntity) @@ -139,7 +140,7 @@ def generic_entity_update_from_toml( return edit -def form_editgroup_get_or_create(api, edit_form): +def form_editgroup_get_or_create(api: ApiClient, edit_form: Any) -> Optional[Editgroup]: """ This function expects a submitted, validated edit form """ @@ -168,7 +169,12 @@ def form_editgroup_get_or_create(api, edit_form): return eg -def generic_entity_edit(editgroup_id, entity_type, existing_ident, edit_template): +def generic_entity_edit( + editgroup_id: Optional[str], + entity_type: str, + existing_ident: Optional[str], + edit_template: str, +) -> AnyResponse: """ existing (entity) @@ -342,7 +348,12 @@ def generic_entity_edit(editgroup_id, entity_type, existing_ident, edit_template ) -def generic_entity_toml_edit(editgroup_id, entity_type, existing_ident, edit_template): +def generic_entity_toml_edit( + editgroup_id: Optional[str], + entity_type: Any, + existing_ident: Optional[str], + edit_template: str, +) -> AnyResponse: """ Similar to generic_entity_edit(), but for TOML editing mode. @@ -469,7 +480,9 @@ def generic_entity_toml_edit(editgroup_id, entity_type, existing_ident, edit_tem ) -def generic_entity_delete(editgroup_id: Optional[str], entity_type: str, existing_ident: str): +def generic_entity_delete( + editgroup_id: Optional[str], entity_type: str, existing_ident: str +) -> AnyResponse: """ Similar to generic_entity_edit(), but for deleting entities. This is a bit simpler! @@ -570,7 +583,9 @@ def generic_entity_delete(editgroup_id: Optional[str], entity_type: str, existin ) -def generic_edit_delete(editgroup_id, entity_type, edit_id): +def generic_edit_delete( + editgroup_id: Optional[str], entity_type: Any, edit_id: str +) -> AnyResponse: # fetch editgroup (if set) or 404 editgroup = None if editgroup_id: @@ -597,177 +612,177 @@ def generic_edit_delete(editgroup_id, entity_type, edit_id): @app.route("/container/create", methods=["GET", "POST"]) @login_required -def container_create_view(): +def container_create_view() -> AnyResponse: return generic_entity_edit(None, "container", None, "container_create.html") @app.route("/container/<ident>/edit", methods=["GET", "POST"]) @login_required -def container_edit_view(ident): +def container_edit_view(ident: str) -> AnyResponse: return generic_entity_edit(None, "container", ident, "container_edit.html") @app.route("/container/<ident>/delete", methods=["GET", "POST"]) @login_required -def container_delete_view(ident): +def container_delete_view(ident: str) -> AnyResponse: return generic_entity_delete(None, "container", ident) @app.route("/editgroup/<editgroup_id>/container/<ident>/edit", methods=["GET", "POST"]) @login_required -def container_editgroup_edit_view(editgroup_id, ident): +def container_editgroup_edit_view(editgroup_id: str, ident: str) -> AnyResponse: return generic_entity_edit(editgroup_id, "container", ident, "container_edit.html") @app.route("/editgroup/<editgroup_id>/container/<ident>/delete", methods=["GET", "POST"]) @login_required -def container_editgroup_delete_view(editgroup_id, ident): +def container_editgroup_delete_view(editgroup_id: str, ident: str) -> AnyResponse: return generic_entity_delete(editgroup_id, "container", ident) @app.route("/editgroup/<editgroup_id>/container/edit/<edit_id>/delete", methods=["POST"]) @login_required -def container_edit_delete(editgroup_id, edit_id): +def container_edit_delete(editgroup_id: str, edit_id: str) -> AnyResponse: return generic_edit_delete(editgroup_id, "container", edit_id) @app.route("/creator/<ident>/delete", methods=["GET", "POST"]) @login_required -def creator_delete_view(ident): +def creator_delete_view(ident: str) -> AnyResponse: return generic_entity_delete(None, "creator", ident) @app.route("/editgroup/<editgroup_id>/creator/edit/<edit_id>/delete", methods=["POST"]) -def creator_edit_delete(editgroup_id, edit_id): +def creator_edit_delete(editgroup_id: str, edit_id: str) -> AnyResponse: return generic_edit_delete(editgroup_id, "creator", edit_id) @app.route("/editgroup/<editgroup_id>/creator/<ident>/delete", methods=["GET", "POST"]) @login_required -def creator_editgroup_delete(editgroup_id, ident): +def creator_editgroup_delete(editgroup_id: str, ident: str) -> AnyResponse: return generic_entity_delete(editgroup_id, "creator", ident) @app.route("/file/create", methods=["GET", "POST"]) @login_required -def file_create_view(): +def file_create_view() -> AnyResponse: return generic_entity_edit(None, "file", None, "file_create.html") @app.route("/file/<ident>/edit", methods=["GET", "POST"]) @login_required -def file_edit_view(ident): +def file_edit_view(ident: str) -> AnyResponse: return generic_entity_edit(None, "file", ident, "file_edit.html") @app.route("/file/<ident>/delete", methods=["GET", "POST"]) @login_required -def file_delete_view(ident): +def file_delete_view(ident: str) -> AnyResponse: return generic_entity_delete(None, "file", ident) @app.route("/editgroup/<editgroup_id>/file/<ident>/edit", methods=["GET", "POST"]) @login_required -def file_editgroup_edit_view(editgroup_id, ident): +def file_editgroup_edit_view(editgroup_id: str, ident: str) -> AnyResponse: return generic_entity_edit(editgroup_id, "file", ident, "file_edit.html") @app.route("/editgroup/<editgroup_id>/file/<ident>/delete", methods=["GET", "POST"]) @login_required -def file_editgroup_delete_view(editgroup_id, ident): +def file_editgroup_delete_view(editgroup_id: str, ident: str) -> AnyResponse: return generic_entity_delete(editgroup_id, "file", ident) @app.route("/editgroup/<editgroup_id>/file/edit/<edit_id>/delete", methods=["POST"]) @login_required -def file_edit_delete(editgroup_id, edit_id): +def file_edit_delete(editgroup_id: str, edit_id: str) -> AnyResponse: return generic_edit_delete(editgroup_id, "file", edit_id) @app.route("/fileset/<ident>/delete", methods=["GET", "POST"]) @login_required -def fileset_delete_view(ident): +def fileset_delete_view(ident: str) -> AnyResponse: return generic_entity_delete(None, "fileset", ident) @app.route("/editgroup/<editgroup_id>/fileset/edit/<edit_id>/delete", methods=["POST"]) -def fileset_edit_delete(editgroup_id, edit_id): +def fileset_edit_delete(editgroup_id: str, edit_id: str) -> AnyResponse: return generic_edit_delete(editgroup_id, "fileset", edit_id) @app.route("/editgroup/<editgroup_id>/fileset/<ident>/delete", methods=["GET", "POST"]) @login_required -def fileset_editgroup_delete(editgroup_id, ident): +def fileset_editgroup_delete(editgroup_id: str, ident: str) -> AnyResponse: return generic_entity_delete(editgroup_id, "fileset", ident) @app.route("/webcapture/<ident>/delete", methods=["GET", "POST"]) @login_required -def webcapture_delete_view(ident): +def webcapture_delete_view(ident: str) -> AnyResponse: return generic_entity_delete(None, "webcapture", ident) @app.route("/editgroup/<editgroup_id>/webcapture/edit/<edit_id>/delete", methods=["POST"]) -def webcapture_edit_delete(editgroup_id, edit_id): +def webcapture_edit_delete(editgroup_id: str, edit_id: str) -> AnyResponse: return generic_edit_delete(editgroup_id, "webcapture", edit_id) @app.route("/editgroup/<editgroup_id>/webcapture/<ident>/delete", methods=["GET", "POST"]) @login_required -def webcapture_editgroup_delete(editgroup_id, ident): +def webcapture_editgroup_delete(editgroup_id: str, ident: str) -> AnyResponse: return generic_entity_delete(editgroup_id, "webcapture", ident) @app.route("/release/create", methods=["GET", "POST"]) @login_required -def release_create_view(): +def release_create_view() -> AnyResponse: return generic_entity_edit(None, "release", None, "release_create.html") @app.route("/release/<ident>/edit", methods=["GET", "POST"]) @login_required -def release_edit_view(ident): +def release_edit_view(ident: str) -> AnyResponse: return generic_entity_edit(None, "release", ident, "release_edit.html") @app.route("/release/<ident>/delete", methods=["GET", "POST"]) @login_required -def release_delete_view(ident): +def release_delete_view(ident: str) -> AnyResponse: return generic_entity_delete(None, "release", ident) @app.route("/editgroup/<editgroup_id>/release/<ident>/edit", methods=["GET", "POST"]) @login_required -def release_editgroup_edit(editgroup_id, ident): +def release_editgroup_edit(editgroup_id: str, ident: str) -> AnyResponse: return generic_entity_edit(editgroup_id, "release", ident, "release_edit.html") @app.route("/editgroup/<editgroup_id>/release/<ident>/delete", methods=["GET", "POST"]) @login_required -def release_editgroup_delete(editgroup_id, ident): +def release_editgroup_delete(editgroup_id: str, ident: str) -> AnyResponse: return generic_entity_delete(editgroup_id, "release", ident) @app.route("/editgroup/<editgroup_id>/release/edit/<edit_id>/delete", methods=["POST"]) @login_required -def release_edit_delete(editgroup_id, edit_id): +def release_edit_delete(editgroup_id: str, edit_id: str) -> AnyResponse: return generic_edit_delete(editgroup_id, "release", edit_id) @app.route("/work/<ident>/delete", methods=["GET", "POST"]) @login_required -def work_delete_view(ident): +def work_delete_view(ident: str) -> AnyResponse: return generic_entity_delete(None, "work", ident) @app.route("/editgroup/<editgroup_id>/work/edit/<edit_id>/delete", methods=["POST"]) -def work_edit_delete(editgroup_id, edit_id): +def work_edit_delete(editgroup_id: str, edit_id: str) -> AnyResponse: return generic_edit_delete(editgroup_id, "work", edit_id) @app.route("/editgroup/<editgroup_id>/work/<ident>/delete", methods=["GET", "POST"]) @login_required -def work_editgroup_delete(editgroup_id, ident): +def work_editgroup_delete(editgroup_id: str, ident: str) -> AnyResponse: return generic_entity_delete(editgroup_id, "work", ident) @@ -776,127 +791,127 @@ def work_editgroup_delete(editgroup_id, ident): @app.route("/container/create/toml", methods=["GET", "POST"]) @login_required -def container_create_toml_view(): +def container_create_toml_view() -> AnyResponse: return generic_entity_toml_edit(None, "container", None, "entity_create_toml.html") @app.route("/container/<ident>/edit/toml", methods=["GET", "POST"]) @login_required -def container_edit_toml_view(ident): +def container_edit_toml_view(ident: str) -> AnyResponse: return generic_entity_toml_edit(None, "container", ident, "entity_edit_toml.html") @app.route("/editgroup/<editgroup_id>/container/<ident>/edit/toml", methods=["GET", "POST"]) @login_required -def container_editgroup_edit_toml(editgroup_id, ident): +def container_editgroup_edit_toml(editgroup_id: str, ident: str) -> AnyResponse: return generic_entity_toml_edit(editgroup_id, "container", ident, "entity_edit_toml.html") @app.route("/creator/create/toml", methods=["GET", "POST"]) @login_required -def creator_create_toml_view(): +def creator_create_toml_view() -> AnyResponse: return generic_entity_toml_edit(None, "creator", None, "entity_create_toml.html") @app.route("/creator/<ident>/edit/toml", methods=["GET", "POST"]) @login_required -def creator_edit_toml_view(ident): +def creator_edit_toml_view(ident: str) -> AnyResponse: return generic_entity_toml_edit(None, "creator", ident, "entity_edit_toml.html") @app.route("/editgroup/<editgroup_id>/creator/<ident>/edit/toml", methods=["GET", "POST"]) @login_required -def creator_editgroup_edit_toml(editgroup_id, ident): +def creator_editgroup_edit_toml(editgroup_id: str, ident: str) -> AnyResponse: return generic_entity_toml_edit(editgroup_id, "creator", ident, "entity_edit_toml.html") @app.route("/file/create/toml", methods=["GET", "POST"]) @login_required -def file_create_toml_view(): +def file_create_toml_view() -> AnyResponse: return generic_entity_toml_edit(None, "file", None, "entity_create_toml.html") @app.route("/file/<ident>/edit/toml", methods=["GET", "POST"]) @login_required -def file_edit_toml_view(ident): +def file_edit_toml_view(ident: str) -> AnyResponse: return generic_entity_toml_edit(None, "file", ident, "entity_edit_toml.html") @app.route("/editgroup/<editgroup_id>/file/<ident>/edit/toml", methods=["GET", "POST"]) @login_required -def file_editgroup_edit_toml(editgroup_id, ident): +def file_editgroup_edit_toml(editgroup_id: str, ident: str) -> AnyResponse: return generic_entity_toml_edit(editgroup_id, "file", ident, "entity_edit_toml.html") @app.route("/fileset/create/toml", methods=["GET", "POST"]) @login_required -def fileset_create_toml_view(): +def fileset_create_toml_view() -> AnyResponse: return generic_entity_toml_edit(None, "fileset", None, "entity_create_toml.html") @app.route("/fileset/<ident>/edit/toml", methods=["GET", "POST"]) @login_required -def fileset_edit_toml_view(ident): +def fileset_edit_toml_view(ident: str) -> AnyResponse: return generic_entity_toml_edit(None, "fileset", ident, "entity_edit_toml.html") @app.route("/editgroup/<editgroup_id>/fileset/<ident>/edit/toml", methods=["GET", "POST"]) @login_required -def fileset_editgroup_edit_toml(editgroup_id, ident): +def fileset_editgroup_edit_toml(editgroup_id: str, ident: str) -> AnyResponse: return generic_entity_toml_edit(editgroup_id, "fileset", ident, "entity_edit_toml.html") @app.route("/webcapture/create/toml", methods=["GET", "POST"]) @login_required -def webcapture_create_toml_view(): +def webcapture_create_toml_view() -> AnyResponse: return generic_entity_toml_edit(None, "webcapture", None, "entity_create_toml.html") @app.route("/webcapture/<ident>/edit/toml", methods=["GET", "POST"]) @login_required -def webcapture_edit_toml_view(ident): +def webcapture_edit_toml_view(ident: str) -> AnyResponse: return generic_entity_toml_edit(None, "webcapture", ident, "entity_edit_toml.html") @app.route("/editgroup/<editgroup_id>/webcapture/<ident>/edit/toml", methods=["GET", "POST"]) @login_required -def webcapture_editgroup_edit_toml(editgroup_id, ident): +def webcapture_editgroup_edit_toml(editgroup_id: str, ident: str) -> AnyResponse: return generic_entity_toml_edit(editgroup_id, "webcapture", ident, "entity_edit_toml.html") @app.route("/release/create/toml", methods=["GET", "POST"]) @login_required -def release_create_toml_view(): +def release_create_toml_view() -> AnyResponse: return generic_entity_toml_edit(None, "release", None, "entity_create_toml.html") @app.route("/release/<ident>/edit/toml", methods=["GET", "POST"]) @login_required -def release_edit_toml_view(ident): +def release_edit_toml_view(ident: str) -> AnyResponse: return generic_entity_toml_edit(None, "release", ident, "entity_edit_toml.html") @app.route("/editgroup/<editgroup_id>/release/<ident>/edit/toml", methods=["GET", "POST"]) @login_required -def release_editgroup_edit_toml(editgroup_id, ident): +def release_editgroup_edit_toml(editgroup_id: str, ident: str) -> AnyResponse: return generic_entity_toml_edit(editgroup_id, "release", ident, "entity_edit_toml.html") @app.route("/work/create/toml", methods=["GET", "POST"]) @login_required -def work_create_toml_view(): +def work_create_toml_view() -> AnyResponse: return generic_entity_toml_edit(None, "work", None, "entity_create_toml.html") @app.route("/work/<ident>/edit/toml", methods=["GET", "POST"]) @login_required -def work_edit_toml_view(ident): +def work_edit_toml_view(ident: str) -> AnyResponse: return generic_entity_toml_edit(None, "work", ident, "entity_edit_toml.html") @app.route("/editgroup/<editgroup_id>/work/<ident>/edit/toml", methods=["GET", "POST"]) @login_required -def work_editgroup_edit_toml(editgroup_id, ident): +def work_editgroup_edit_toml(editgroup_id: str, ident: str) -> AnyResponse: return generic_entity_toml_edit(editgroup_id, "work", ident, "entity_edit_toml.html") @@ -905,71 +920,71 @@ def work_editgroup_edit_toml(editgroup_id, ident): @app.route("/creator/create", methods=["GET"]) @login_required -def creator_create_view(): +def creator_create_view() -> AnyResponse: return redirect("/creator/create/toml") @app.route("/creator/<ident>/edit", methods=["GET"]) @login_required -def creator_edit_view(ident): +def creator_edit_view(ident: str) -> AnyResponse: return redirect(f"/creator/{ident}/edit/toml") @app.route("/editgroup/<editgroup_id>/creator/<ident>/edit", methods=["GET", "POST"]) @login_required -def creator_editgroup_edit(editgroup_id, ident): +def creator_editgroup_edit(editgroup_id: str, ident: str) -> AnyResponse: return redirect(f"/editgroup/{editgroup_id}/creator/{ident}/edit/toml") @app.route("/fileset/create", methods=["GET"]) @login_required -def fileset_create_view(): +def fileset_create_view() -> AnyResponse: return redirect("/fileset/create/toml") @app.route("/fileset/<ident>/edit", methods=["GET"]) @login_required -def fileset_edit_view(ident): +def fileset_edit_view(ident: str) -> AnyResponse: return redirect(f"/fileset/{ident}/edit/toml") @app.route("/editgroup/<editgroup_id>/fileset/<ident>/edit", methods=["GET", "POST"]) @login_required -def fileset_editgroup_edit(editgroup_id, ident): +def fileset_editgroup_edit(editgroup_id: str, ident: str) -> AnyResponse: return redirect(f"/editgroup/{editgroup_id}/fileset/{ident}/edit/toml") @app.route("/webcapture/create", methods=["GET"]) @login_required -def webcapture_create_view(): +def webcapture_create_view() -> AnyResponse: return redirect("/webcapture/create/toml") @app.route("/webcapture/<ident>/edit", methods=["GET"]) @login_required -def webcapture_edit_view(ident): +def webcapture_edit_view(ident: str) -> AnyResponse: return redirect(f"/webcapture/{ident}/edit/toml") @app.route("/editgroup/<editgroup_id>/webcapture/<ident>/edit", methods=["GET", "POST"]) @login_required -def webcapture_editgroup_edit(editgroup_id, ident): +def webcapture_editgroup_edit(editgroup_id: str, ident: str) -> AnyResponse: return redirect(f"/editgroup/{editgroup_id}/webcapture/{ident}/edit/toml") @app.route("/work/create", methods=["GET"]) @login_required -def work_create_view(): +def work_create_view() -> AnyResponse: return redirect("/work/create/toml") @app.route("/work/<ident>/edit", methods=["GET"]) @login_required -def work_edit_view(ident): +def work_edit_view(ident: str) -> AnyResponse: return redirect(f"/work/{ident}/edit/toml") @app.route("/editgroup/<editgroup_id>/work/<ident>/edit", methods=["GET", "POST"]) @login_required -def work_editgroup_edit(editgroup_id, ident): +def work_editgroup_edit(editgroup_id: str, ident: str) -> AnyResponse: return redirect(f"/editgroup/{editgroup_id}/work/{ident}/edit/toml") |