1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-03 16:10:26 +00:00

update repo commit dir field

This commit is contained in:
sniper-py
2019-06-05 11:11:00 +08:00
parent 9860fe63d7
commit 7dbdae81db
2 changed files with 19 additions and 14 deletions

View File

@@ -15,6 +15,7 @@ from seahub.api2.authentication import TokenAuthentication
from seahub.api2.utils import api_error
from seahub.views import check_folder_permission
from seaserv import seafile_api
from seahub.utils import normalize_dir_path
logger = logging.getLogger(__name__)
@@ -24,20 +25,21 @@ class RepoCommitDirView(APIView):
permission_classes = (IsAuthenticated,)
throttle_classes = (UserRateThrottle,)
def _get_item_info(self, item, path):
def _get_item_info(self, dirent, path):
item_info = {
'parent_dir': path,
'name': item.obj_name,
}
if stat.S_ISDIR(item.mode):
item_info['type'] = 'dir'
# # seahub/seahub/api2/views get_dir_file_recursively
entry = {}
if stat.S_ISDIR(dirent.mode):
entry['type'] = 'dir'
else:
item_info['type'] = 'file'
item_info['size'] = item.size
entry['type'] = 'file'
entry['size'] = dirent.size
return item_info
entry['parent_dir'] = path
entry['obj_id'] = dirent.obj_id
entry['name'] = dirent.obj_name
return entry
def get(self, request, repo_id, commit_id, format=None):
""" List dir by commit
@@ -49,6 +51,7 @@ class RepoCommitDirView(APIView):
# argument check
path = request.GET.get('path', '/')
path = normalize_dir_path(path)
# resource check
repo = seafile_api.get_repo(repo_id)

View File

@@ -5,7 +5,7 @@ from django.core.urlresolvers import reverse
from seaserv import seafile_api
from seahub.test_utils import BaseTestCase
from seahub.utils import normalize_dir_path
from tests.common.utils import randstring
@@ -61,7 +61,7 @@ class RepoCommitDirTest(BaseTestCase):
assert json_resp['dirent_list'][0]
assert json_resp['dirent_list'][0]['type'] == 'file'
assert json_resp['dirent_list'][0]['name'] == self.inner_file_name
assert json_resp['dirent_list'][0]['parent_dir'] == self.folder_path
assert json_resp['dirent_list'][0]['parent_dir'] == normalize_dir_path(self.folder_path)
assert json_resp['dirent_list'][0]['size'] == 0
# test can get without path
@@ -74,11 +74,13 @@ class RepoCommitDirTest(BaseTestCase):
assert json_resp['dirent_list'][0]['type'] == 'dir'
assert json_resp['dirent_list'][0]['name'] == self.folder_name
assert json_resp['dirent_list'][0]['parent_dir'] == '/'
assert json_resp['dirent_list'][0].get('size') is None
assert json_resp['dirent_list'][0]['obj_id']
assert json_resp['dirent_list'][1]
assert json_resp['dirent_list'][1]['type'] == 'file'
assert json_resp['dirent_list'][1]['name'] == self.file_name
assert json_resp['dirent_list'][1]['parent_dir'] == '/'
assert json_resp['dirent_list'][0]['obj_id']
assert json_resp['dirent_list'][1]['size'] == 0
# test_can_not_get_with_invalid_path_parameter