Projekt

Obecné

Profil

Stáhnout (2.02 KB) Statistiky
| Větev: | Tag: | Revize:
1
import os
2

    
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
from src.controllers.certificates_controller import CertController
9

    
10

    
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

    
22

    
23
@app.route('/')
24
def index():
25
    return redirect("/static/index.html")
26

    
27

    
28
@app.route('/api/certificates', methods=["POST"])
29
def create_certificate():
30
    return certificate_controller.create_certificate()
31

    
32

    
33
@app.route('/api/certificates', methods=["GET"])
34
def get_cert_list():
35
    return certificate_controller.get_certificate_list()
36

    
37

    
38
@app.route('/api/certificates/<id>', methods=["GET"])
39
def get_cert(id):
40
    return certificate_controller.get_certificate_by_id(id)
41

    
42

    
43
@app.route('/api/certificates/<id>/details', methods=["GET"])
44
def get_cert_details(id):
45
    return certificate_controller.get_certificate_details_by_id(id)
46

    
47

    
48
@app.route('/api/certificates/<id>/root', methods=["GET"])
49
def get_cert_root(id):
50
    return certificate_controller.get_certificate_root_by_id(id)
51

    
52

    
53
@app.route('/api/certificates/<id>/chain', methods=["GET"])
54
def get_cert_chain(id):
55
    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

    
64

    
65
if __name__ == '__main__':
66
    app_host = "0.0.0.0"
67
    app_port = 5000
68

    
69
    # TODO better load this from config.py
70
    if "FLASK_HOST" in os.environ:
71
        app_host = os.environ["FLASK_HOST"]
72

    
73
    if "FLASK_PORT" in os.environ:
74
        app_host = os.environ["FLASK_PORT"]
75

    
76
    app.run(host=app_host, port=app_port)
(6-6/10)