Initial Commit
This commit is contained in:
71
api/Repo.py
Normal file
71
api/Repo.py
Normal file
@ -0,0 +1,71 @@
|
||||
from flask_restful import Resource, abort
|
||||
from flask import redirect, send_file
|
||||
|
||||
from utils.PackageFinder import InvalidPackageName
|
||||
from utils.PackageVersioning import VersionDoNotExist, RepoDoNotExist, PackageDoNotExist
|
||||
|
||||
package_versioning = None
|
||||
|
||||
|
||||
class BrowseRepo(Resource):
|
||||
def get(self, repo_name=None, package_name=None):
|
||||
try:
|
||||
return package_versioning.get_all_packages(package_name=package_name, repo_name=repo_name), 200
|
||||
except (RepoDoNotExist, PackageDoNotExist):
|
||||
abort(404)
|
||||
|
||||
|
||||
class BrowseRepoVersion(Resource):
|
||||
def get(self, package_name, repo_name, version_major=None, version_minor=None, version_release=None):
|
||||
try:
|
||||
return package_versioning.get_version_package(
|
||||
package_name=package_name,
|
||||
repo_name=repo_name,
|
||||
version_major=version_major,
|
||||
version_minor=version_minor,
|
||||
version_release=version_release
|
||||
)
|
||||
except (RepoDoNotExist, PackageDoNotExist, VersionDoNotExist):
|
||||
abort(404)
|
||||
|
||||
|
||||
class InfoLastPackage(Resource):
|
||||
def get(self, package_name, repo_name):
|
||||
try:
|
||||
return package_versioning.get_last_version_package(package_name=package_name, repo_name=repo_name), 200
|
||||
except (RepoDoNotExist, PackageDoNotExist):
|
||||
abort(404)
|
||||
|
||||
|
||||
class DownloadLastPackage(Resource):
|
||||
def get(self, package_name, repo_name):
|
||||
try:
|
||||
return redirect(
|
||||
package_versioning.get_last_version_package(package_name=package_name, repo_name=repo_name)['apk_url']
|
||||
)
|
||||
except (RepoDoNotExist, PackageDoNotExist):
|
||||
abort(404)
|
||||
|
||||
|
||||
class DownloadPackageVersion(Resource):
|
||||
def get(self, package_name, repo_name, version_major=None, version_minor=None, version_release=None):
|
||||
try:
|
||||
return redirect(
|
||||
package_versioning.get_version_package(
|
||||
package_name=package_name,
|
||||
repo_name=repo_name,
|
||||
version_major=version_major,
|
||||
version_minor=version_minor,
|
||||
version_release=version_release
|
||||
)['url']
|
||||
)
|
||||
except VersionDoNotExist:
|
||||
abort(404)
|
||||
|
||||
|
||||
class DownloadPackage(Resource):
|
||||
def get(self, filename, repo_name=None):
|
||||
try:
|
||||
return send_file(package_versioning.get_path_package(filename=filename, repo_name=repo_name))
|
||||
except InvalidPackageName:
|
||||
abort(404)
|
0
api/__init__.py
Normal file
0
api/__init__.py
Normal file
Reference in New Issue
Block a user