This repository has been archived on 2021-09-15. You can view files and clone it, but cannot push or open issues or pull requests.
RepoApi/App.py

78 lines
2.5 KiB
Python
Raw Permalink Normal View History

2017-02-23 14:11:04 +00:00
import json
from Config import CURRENT_CONFIG
from flask import Flask
from flask_restful import Api
2017-03-04 11:51:24 +00:00
import api.Repo as repoApi
from api.Repo import BrowseRepo, InfoLast, InfoLastRepo, InfoLastPackage, DownloadLastPackage, DownloadPackage, DownloadPackageVersion, \
2017-03-04 11:51:24 +00:00
BrowseRepoVersion
2017-02-23 14:11:04 +00:00
from utils.PackageVersioning import PackageVersioning
app = Flask(__name__)
app.config.from_object(CURRENT_CONFIG)
api = Api(app, catch_all_404s=True)
# Api resource
api.add_resource(
BrowseRepo,
'/', # Retrieve available repos
'/<string:repo_name>', # Retrieve data from <repo_name>
2017-03-08 09:33:17 +00:00
'/<string:repo_name>/<string:package_name>', # Retrieve data from <repo_name> about <package_name>
2017-03-04 11:51:24 +00:00
)
2017-02-23 14:11:04 +00:00
api.add_resource(
BrowseRepoVersion,
2017-03-04 11:51:24 +00:00
'/<string:repo_name>/<string:package_name>/<int:version_major>',
2017-03-08 09:33:17 +00:00
# Retrieve data version <package_name> from <repo_name>
2017-03-04 11:51:24 +00:00
'/<string:repo_name>/<string:package_name>/<int:version_major>/<int:version_minor>',
2017-03-08 09:33:17 +00:00
# Retrieve data version <package_name> from <repo_name>
2017-03-04 11:51:24 +00:00
'/<string:repo_name>/<string:package_name>/<int:version_major>/<int:version_minor>/<int:version_release>',
2017-03-08 09:33:17 +00:00
# Retrieve data version <package_name> from <repo_name>
2017-02-23 14:11:04 +00:00
)
api.add_resource(
InfoLast,
'/last'
)
api.add_resource(
InfoLastRepo,
'/<string:repo_name>/last'
)
2017-02-23 14:11:04 +00:00
api.add_resource(
InfoLastPackage,
2017-03-08 09:33:17 +00:00
'/<string:repo_name>/<string:package_name>/last', # Info for last version <package_name> from <repo_name>
2017-02-23 14:11:04 +00:00
)
api.add_resource(
DownloadLastPackage,
2017-03-04 11:51:24 +00:00
'/download/<string:repo_name>/<string:package_name>/last',
2017-03-08 09:33:17 +00:00
# Download last version <package_name> from <repo_name>
2017-02-23 14:11:04 +00:00
)
api.add_resource(
DownloadPackageVersion,
2017-03-04 11:51:24 +00:00
'/download/<string:repo_name>/<string:package_name>/<int:version_major>',
2017-03-08 09:33:17 +00:00
# Download version <package_name> from <repo_name>
2017-03-04 11:51:24 +00:00
'/download/<string:repo_name>/<string:package_name>/<int:version_major>/<int:version_minor>',
2017-03-08 09:33:17 +00:00
# Download version <package_name> from <repo_name>
2017-03-04 11:51:24 +00:00
'/download/<string:repo_name>/<string:package_name>/<int:version_major>/<int:version_minor>/<int:version_release>',
2017-03-08 09:33:17 +00:00
# Download version <package_name> from <repo_name>
2017-02-23 14:11:04 +00:00
)
api.add_resource(
DownloadPackage,
'/download/<string:repo_name>/<string:filename>', # Download version <filename> from repo_name
)
2017-03-04 11:51:24 +00:00
@app.before_first_request
def setup():
repoApi.package_versioning = PackageVersioning(json.load(open(app.config['REPOS_JSON_CONFIG_PATH'])))
repoApi.package_versioning.__enter__()
2017-02-23 14:11:04 +00:00
if __name__ == '__main__':
2017-03-04 11:51:24 +00:00
app.run(host="0.0.0.0")