Skip to content

Commit

Permalink
remove wiki2 useless APIs
Browse files Browse the repository at this point in the history
  • Loading branch information
Michael18811380328 committed May 29, 2024
1 parent 94c92ad commit c97224b
Show file tree
Hide file tree
Showing 2 changed files with 1 addition and 153 deletions.
149 changes: 0 additions & 149 deletions seahub/api2/endpoints/wiki2.py
Original file line number Diff line number Diff line change
Expand Up @@ -316,155 +316,6 @@ def get(self, request, wiki_id):

return Response({'wiki': wiki})


class Wiki2PagesDirView(APIView):
authentication_classes = (TokenAuthentication, SessionAuthentication)
permission_classes = (IsAuthenticatedOrReadOnly,)
throttle_classes = (UserRateThrottle,)

def get(self, request, wiki_id):
"""List all dir files in a wiki.
"""
try:
wiki = Wiki.objects.get(id=wiki_id)
except Wiki.DoesNotExist:
error_msg = "Wiki not found."
return api_error(status.HTTP_404_NOT_FOUND, error_msg)

parent_dir = request.GET.get("p", '/')
parent_dir = normalize_dir_path(parent_dir)
permission = check_folder_permission(request, wiki.repo_id, parent_dir)
if not permission:
error_msg = 'Permission denied.'
return api_error(status.HTTP_403_FORBIDDEN, error_msg)

try:
repo = seafile_api.get_repo(wiki.repo_id)
if not repo:
error_msg = "Wiki library not found."
return api_error(status.HTTP_404_NOT_FOUND, error_msg)
except SearpcError:
error_msg = "Internal Server Error"
return api_error(status.HTTP_500_INTERNAL_SERVER_ERROR, error_msg)

with_parents = request.GET.get('with_parents', 'false')
if with_parents not in ('true', 'false'):
error_msg = 'with_parents invalid.'
return api_error(status.HTTP_400_BAD_REQUEST, error_msg)

with_parents = to_python_boolean(with_parents)
dir_id = seafile_api.get_dir_id_by_path(repo.repo_id, parent_dir)
if not dir_id:
error_msg = 'Folder %s not found.' % parent_dir
return api_error(status.HTTP_404_NOT_FOUND, error_msg)

parent_dir_list = []
if not with_parents:
# only return dirent list in current parent folder
parent_dir_list.append(parent_dir)
else:
# if value of 'p' parameter is '/a/b/c' add with_parents's is 'true'
# then return dirent list in '/', '/a', '/a/b' and '/a/b/c'.
if parent_dir == '/':
parent_dir_list.append(parent_dir)
else:
tmp_parent_dir = '/'
parent_dir_list.append(tmp_parent_dir)
for folder_name in parent_dir.strip('/').split('/'):
tmp_parent_dir = posixpath.join(tmp_parent_dir, folder_name)
parent_dir_list.append(tmp_parent_dir)

all_dirs_info = []
for parent_dir in parent_dir_list:
all_dirs = get_wiki_dirs_by_path(repo.repo_id, parent_dir, [])
all_dirs_info += all_dirs

return Response({
"dirent_list": all_dirs_info
})


class Wiki2PageContentView(APIView):
authentication_classes = (TokenAuthentication, SessionAuthentication)
permission_classes = (IsAuthenticatedOrReadOnly,)
throttle_classes = (UserRateThrottle,)

def get(self, request, wiki_id):
"""Get content of a wiki
"""
path = request.GET.get('p', '/')
try:
wiki = Wiki.objects.get(id=wiki_id)
except Wiki.DoesNotExist:
error_msg = "Wiki not found."
return api_error(status.HTTP_404_NOT_FOUND, error_msg)

if not check_wiki_permission(wiki, request.user.username):
error_msg = 'Permission denied.'
return api_error(status.HTTP_403_FORBIDDEN, error_msg)

permission = check_folder_permission(request, wiki.repo_id, '/')
if not permission:
error_msg = 'Permission denied.'
return api_error(status.HTTP_403_FORBIDDEN, error_msg)

try:
repo = seafile_api.get_repo(wiki.repo_id)
if not repo:
error_msg = "Wiki library not found."
return api_error(status.HTTP_404_NOT_FOUND, error_msg)
except SearpcError:
error_msg = _("Internal Server Error")
return api_error(status.HTTP_500_INTERNAL_SERVER_ERROR, error_msg)

try:
file_id = seafile_api.get_file_id_by_path(repo.repo_id, path)
except SearpcError as e:
logger.error(e)
return api_error(HTTP_520_OPERATION_FAILED,
"Failed to get file id by path.")
if not file_id:
return api_error(status.HTTP_404_NOT_FOUND, "File not found")

# send stats message
send_file_access_msg(request, repo, path, 'api')

file_uuid = get_seadoc_file_uuid(repo, path)
filename = os.path.basename(path)

try:
sdoc_server_api = SdocServerAPI(file_uuid, filename, request.user.username)
res = sdoc_server_api.get_doc()
content = json.dumps(res)
except Exception as e:
logger.error(e)
error_msg = 'Internal Server Error'
return api_error(status.HTTP_500_INTERNAL_SERVER_ERROR, error_msg)

try:
dirent = seafile_api.get_dirent_by_path(repo.repo_id, path)
if dirent:
latest_contributor, last_modified = dirent.modifier, dirent.mtime
else:
latest_contributor, last_modified = None, 0
except SearpcError as e:
logger.error(e)
latest_contributor, last_modified = None, 0

assets_url = '/api/v2.1/seadoc/download-image/' + file_uuid
seadoc_access_token = gen_seadoc_access_token(file_uuid, filename, request.user.username, permission=permission)

return Response({
"content": content,
"latest_contributor": email2nickname(latest_contributor),
"last_modified": last_modified,
"permission": permission,
"seadoc_server_url": SEADOC_SERVER_URL,
"seadoc_access_token": seadoc_access_token,
"assets_url": assets_url,
})


class Wiki2PagesView(APIView):
authentication_classes = (TokenAuthentication, SessionAuthentication)
permission_classes = (IsAuthenticated, )
Expand Down
5 changes: 1 addition & 4 deletions seahub/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -204,8 +204,7 @@
from seahub.ai.apis import LibrarySdocIndexes, Search, LibrarySdocIndex, TaskStatus, \
LibraryIndexState, QuestionAnsweringSearchInLibrary, FileDownloadToken
from seahub.wiki2.views import wiki_view
from seahub.api2.endpoints.wiki2 import Wikis2View, Wiki2View, Wiki2ConfigView, Wiki2PagesDirView, Wiki2PageContentView,\
Wiki2PagesView, Wiki2PageView
from seahub.api2.endpoints.wiki2 import Wikis2View, Wiki2View, Wiki2ConfigView, Wiki2PagesView, Wiki2PageView
from seahub.api2.endpoints.subscription import SubscriptionView, SubscriptionPlansView, SubscriptionLogsView

urlpatterns = [
Expand Down Expand Up @@ -523,9 +522,7 @@
## user::wiki2
re_path(r'^api/v2.1/wikis2/$', Wikis2View.as_view(), name='api-v2.1-wikis2'),
re_path(r'^api/v2.1/wiki2/(?P<wiki_id>\d+)/$', Wiki2View.as_view(), name='api-v2.1-wiki2'),
re_path(r'^api/v2.1/wiki2/(?P<wiki_id>\d+)/page-dir/$', Wiki2PagesDirView.as_view(), name='api-v2.1-wiki2-pages-dir'),
re_path(r'^api/v2.1/wiki2/(?P<wiki_id>\d+)/config/$', Wiki2ConfigView.as_view(), name='api-v2.1-wiki2-config'),
re_path(r'^api/v2.1/wiki2/(?P<wiki_id>\d+)/content/$', Wiki2PageContentView.as_view(), name='api-v2.1-wiki2-pages-content'),
re_path(r'^api/v2.1/wiki2/(?P<wiki_id>\d+)/pages/$', Wiki2PagesView.as_view(), name='api-v2.1-wiki2-pages'),
re_path(r'^api/v2.1/wiki2/(?P<wiki_id>\d+)/page/(?P<page_id>[-0-9a-zA-Z]{4})/$', Wiki2PageView.as_view(), name='api-v2.1-wiki2-page'),

Expand Down

0 comments on commit c97224b

Please sign in to comment.