Changeset View
Changeset View
Standalone View
Standalone View
swh/web/api/views/origin_save.py
# Copyright (C) 2018-2021 The Software Heritage developers | # Copyright (C) 2018-2021 The Software Heritage developers | ||||
# See the AUTHORS file at the top-level directory of this distribution | # See the AUTHORS file at the top-level directory of this distribution | ||||
# License: GNU Affero General Public License version 3, or any later version | # License: GNU Affero General Public License version 3, or any later version | ||||
# See top-level LICENSE file for more information | # See top-level LICENSE file for more information | ||||
from swh.web.api.apidoc import api_doc, format_docstring | from swh.web.api.apidoc import api_doc, format_docstring | ||||
from swh.web.api.apiurls import api_route | from swh.web.api.apiurls import api_route | ||||
from swh.web.auth.utils import privileged_user | from swh.web.auth.utils import ( | ||||
API_SAVE_ORIGIN_PERMISSION, | |||||
SWH_AMBASSADOR_PERMISSION, | |||||
privileged_user, | |||||
) | |||||
from swh.web.common.origin_save import ( | from swh.web.common.origin_save import ( | ||||
create_save_origin_request, | create_save_origin_request, | ||||
get_savable_visit_types, | get_savable_visit_types, | ||||
get_save_origin_requests, | get_save_origin_requests, | ||||
) | ) | ||||
def _savable_visit_types(): | def _savable_visit_types(): | ||||
▲ Show 20 Lines • Show All 78 Lines • ▼ Show 20 Lines | def api_save_origin(request, visit_type, origin_url): | ||||
""" | """ | ||||
data = request.data or {} | data = request.data or {} | ||||
if request.method == "POST": | if request.method == "POST": | ||||
sor = create_save_origin_request( | sor = create_save_origin_request( | ||||
visit_type, | visit_type, | ||||
origin_url, | origin_url, | ||||
privileged_user(request), | privileged_user( | ||||
request, | |||||
permissions=[SWH_AMBASSADOR_PERMISSION, API_SAVE_ORIGIN_PERMISSION], | |||||
), | |||||
user_id=request.user.id, | user_id=request.user.id, | ||||
**data, | **data, | ||||
) | ) | ||||
del sor["id"] | del sor["id"] | ||||
else: | else: | ||||
sor = get_save_origin_requests(visit_type, origin_url) | sor = get_save_origin_requests(visit_type, origin_url) | ||||
for s in sor: | for s in sor: | ||||
del s["id"] | del s["id"] | ||||
return sor | return sor |