1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- from flask import abort, jsonify
- from flask.views import View
- from pycs.database.Database import Database
- class ListFiles(View):
- """
- return a list of files for a given project
- """
- # pylint: disable=arguments-differ
- methods = ['GET']
- def __init__(self, db: Database):
- # pylint: disable=invalid-name
- self.db = db
- def dispatch_request(self, project_id: int, start: int, length: int, collection_id: int = None):
- # find project
- project = self.db.project(project_id)
- if project is None:
- return abort(404)
- # get count and files
- if collection_id is not None:
- if collection_id == 0:
- count = project.count_files_without_collection()
- files = list(project.files_without_collection(start, length))
- else:
- collection = project.collection(collection_id)
- if collection is None:
- return abort(404)
- count = collection.count_files()
- files = list(collection.files(start, length))
- else:
- count = project.count_files()
- files = list(project.files(start, length))
- # return files
- return jsonify({
- 'count': count,
- 'files': files
- })
|