1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- from flask import abort
- from flask import jsonify
- from flask.views import View
- from pycs.database.Project import Project
- class ListProjectFiles(View):
- """
- return a list of files for a given project
- """
- # pylint: disable=arguments-differ
- methods = ['GET']
- def dispatch_request(self,
- project_id: int,
- start: int = 0,
- length: int = -1,
- collection_id: int = None):
- # find project
- project = Project.get_or_404(project_id)
- # get count and files
- if collection_id is not None:
- if collection_id == 0:
- count = project.count_files_without_collection()
- files = project.files_without_collection(offset=start, limit=length)
- else:
- collection = project.collection(collection_id)
- if collection is None:
- abort(404)
- count = collection.files.count()
- files = collection.get_files(offset=start, limit=length).all()
- else:
- count = project.files.count()
- files = project.get_files(offset=start, limit=length).all()
- # return files
- return jsonify({
- 'count': count,
- 'files': files
- })
|