From bff68558a65fdb2a1bbb0be6f6ce7a99b6a11e29 Mon Sep 17 00:00:00 2001 From: Alex Happy <1223408988@qq.com> Date: Wed, 13 Nov 2019 17:28:14 +0800 Subject: [PATCH] ADD: /via-repo-token/repo-info/ (#4248) * ADD: /via-repo-token/repo-info/ * MOD: remove `via_repo_url` in GET /via-repo-token/repo-info/'s response --- seahub/api2/endpoints/via_repo_token.py | 28 +++++++++++++++++++++---- seahub/urls.py | 7 ++++--- 2 files changed, 28 insertions(+), 7 deletions(-) diff --git a/seahub/api2/endpoints/via_repo_token.py b/seahub/api2/endpoints/via_repo_token.py index eb9d32788c..dee9579581 100644 --- a/seahub/api2/endpoints/via_repo_token.py +++ b/seahub/api2/endpoints/via_repo_token.py @@ -67,8 +67,8 @@ class ViaRepoDirView(APIView): return dir_info - def get(self, request, repo_id, format=None): - + def get(self, request, format=None): + repo_id = request.repo_api_token_obj.repo_id # argument check recursive = request.GET.get('recursive', '0') if recursive not in ('1', '0'): @@ -194,7 +194,8 @@ class ViaRepoDirView(APIView): return Response(response_dict) - def post(self, request, repo_id, format=None): + def post(self, request, format=None): + repo_id = request.repo_api_token_obj.repo_id # argument check path = request.GET.get('path', None) if not path or path[0] != '/': @@ -341,7 +342,8 @@ class ViaRepoUploadLinkView(APIView): permission_classes = (IsAuthenticated,) throttle_classes = (UserRateThrottle,) - def get(self, request, repo_id, format=None): + def get(self, request, format=None): + repo_id = request.repo_api_token_obj.repo_id # recourse check repo = seafile_api.get_repo(repo_id) if not repo: @@ -383,3 +385,21 @@ class ViaRepoUploadLinkView(APIView): return api_error(status.HTTP_400_BAD_REQUEST, error_msg) return Response(url) + + +class RepoInfoView(APIView): + authentication_classes = (RepoAPITokenAuthentication, SessionAuthentication) + permission_classes = (IsAuthenticated,) + throttle_classes = (UserRateThrottle,) + + def get(self, request): + repo_id = request.repo_api_token_obj.repo_id + repo = seafile_api.get_repo(repo_id) + if not repo: + error_msg = _('Library %(repo_id)s not found.' % {'repo_id': repo_id}) + return api_error(status.HTTP_404_NOT_FOUND, error_msg) + data = { + 'repo_id': repo.id, + 'repo_name': repo.name, + } + return Response(data) diff --git a/seahub/urls.py b/seahub/urls.py index 5cd1301928..e2c45f544c 100644 --- a/seahub/urls.py +++ b/seahub/urls.py @@ -88,7 +88,7 @@ from seahub.api2.endpoints.markdown_lint import MarkdownLintView from seahub.api2.endpoints.public_repos_search import PublishedRepoSearchView from seahub.api2.endpoints.recent_added_files import RecentAddedFilesView from seahub.api2.endpoints.repo_api_tokens import RepoAPITokensView, RepoAPITokenView -from seahub.api2.endpoints.via_repo_token import ViaRepoDirView, ViaRepoUploadLinkView +from seahub.api2.endpoints.via_repo_token import ViaRepoDirView, ViaRepoUploadLinkView, RepoInfoView from seahub.api2.endpoints.abuse_reports import AbuseReportsView # Admin @@ -368,8 +368,9 @@ urlpatterns = [ url(r'^api/v2.1/repos/(?P[-0-9a-f]{36})/repo-api-tokens/(?P.*)/$', RepoAPITokenView.as_view(), name='api-v2.1-repo-api-token'), ## access repo from repo_api_tokens - url(r'^api/v2.1/via-repo-token/(?P[-0-9a-f]{36})/dir/$', ViaRepoDirView.as_view(), name='via-repo-dir'), - url(r'^api/v2.1/via-repo-token/(?P[-0-9a-f]{36})/upload-link/$', ViaRepoUploadLinkView.as_view(), name='via-upload-link'), + url(r'^api/v2.1/via-repo-token/dir/$', ViaRepoDirView.as_view(), name='via-repo-dir'), + url(r'^api/v2.1/via-repo-token/upload-link/$', ViaRepoUploadLinkView.as_view(), name='via-upload-link'), + url(r'^api/v2.1/via-repo-token/repo-info/$', RepoInfoView.as_view(), name='via-fetch-repo'), # user::related-files url(r'^api/v2.1/related-files/$', RelatedFilesView.as_view(), name='api-v2.1-related-files'),