1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-18 08:16:07 +00:00

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
This commit is contained in:
Alex Happy
2019-11-13 17:28:14 +08:00
committed by Daniel Pan
parent fe0940e4c4
commit bff68558a6
2 changed files with 28 additions and 7 deletions

View File

@@ -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)

View File

@@ -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<repo_id>[-0-9a-f]{36})/repo-api-tokens/(?P<app_name>.*)/$', 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<repo_id>[-0-9a-f]{36})/dir/$', ViaRepoDirView.as_view(), name='via-repo-dir'),
url(r'^api/v2.1/via-repo-token/(?P<repo_id>[-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'),