Projekt

Obecné

Profil

Stáhnout (2.02 KB) Statistiky
| Větev: | Tag: | Revize:
1 62d64d21 Stanislav Král
import os
2 1fa243ca Jan Pašek
3
from flask import Flask, redirect
4
from injector import Injector
5
6
from src.config import configuration
7
from src.config.connection_provider import ConnectionProvider
8 5b57121e Captain_Trojan
from src.controllers.certificates_controller import CertController
9 6e333f54 Stanislav Král
10 1fa243ca Jan Pašek
11
class X509ManagementApp(Flask):
12
13
    def run(self, host=None, port=None, debug=None, load_dotenv=True, **options):
14
        with self.app_context():
15
            initialize_app()
16
        super(X509ManagementApp, self).run(host=host, port=port, debug=debug, load_dotenv=load_dotenv, **options)
17
18
19
app = X509ManagementApp(__name__)
20
certificate_controller: CertController = None
21 6e333f54 Stanislav Král
22
23
@app.route('/')
24
def index():
25 2e646e3b Jan Pašek
    return redirect("/static/index.html")
26 6e333f54 Stanislav Král
27
28 5b57121e Captain_Trojan
@app.route('/api/certificates', methods=["POST"])
29
def create_certificate():
30 1fa243ca Jan Pašek
    return certificate_controller.create_certificate()
31 5b57121e Captain_Trojan
32
33
@app.route('/api/certificates', methods=["GET"])
34
def get_cert_list():
35 1fa243ca Jan Pašek
    return certificate_controller.get_certificate_list()
36 5b57121e Captain_Trojan
37
38 fb987403 Captain_Trojan
@app.route('/api/certificates/<id>', methods=["GET"])
39
def get_cert(id):
40 1fa243ca Jan Pašek
    return certificate_controller.get_certificate_by_id(id)
41 fb987403 Captain_Trojan
42
43 5b6d9513 Captain_Trojan
@app.route('/api/certificates/<id>/details', methods=["GET"])
44 1fa243ca Jan Pašek
def get_cert_details(id):
45
    return certificate_controller.get_certificate_details_by_id(id)
46 5b6d9513 Captain_Trojan
47
48 d53c2fdc Captain_Trojan
@app.route('/api/certificates/<id>/root', methods=["GET"])
49
def get_cert_root(id):
50 1fa243ca Jan Pašek
    return certificate_controller.get_certificate_root_by_id(id)
51 d53c2fdc Captain_Trojan
52
53 aa740737 Captain_Trojan
@app.route('/api/certificates/<id>/chain', methods=["GET"])
54
def get_cert_chain(id):
55 1fa243ca Jan Pašek
    return certificate_controller.get_certificate_trust_chain_by_id(id)
56
57
58
def initialize_app():
59
    global certificate_controller
60
61
    injector = Injector([configuration.configure_default, ConnectionProvider])
62
    certificate_controller = injector.get(CertController)
63 aa740737 Captain_Trojan
64
65 6e333f54 Stanislav Král
if __name__ == '__main__':
66 1fa243ca Jan Pašek
    app_host = "0.0.0.0"
67
    app_port = 5000
68 62d64d21 Stanislav Král
69 9832694f Stanislav Král
    # TODO better load this from config.py
70 62d64d21 Stanislav Král
    if "FLASK_HOST" in os.environ:
71 1fa243ca Jan Pašek
        app_host = os.environ["FLASK_HOST"]
72 62d64d21 Stanislav Král
73
    if "FLASK_PORT" in os.environ:
74 1fa243ca Jan Pašek
        app_host = os.environ["FLASK_PORT"]
75 62d64d21 Stanislav Král
76 1fa243ca Jan Pašek
    app.run(host=app_host, port=app_port)