-
Notifications
You must be signed in to change notification settings - Fork 1
/
app.py
40 lines (28 loc) · 1.12 KB
/
app.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
from fastapi import FastAPI, responses, status
from pydantic import BaseModel
from config_handler import init_config, get_config, change_config, SERVICES_TO_NOTIFY
import json
from notify_handler import notify_others_about_change_thread
init_config()
app = FastAPI()
notify_others_about_change_thread(SERVICES_TO_NOTIFY)
class ChangeRequest(BaseModel):
dict_string: str
@app.post("/change_config")
def change(request: ChangeRequest) -> responses.PlainTextResponse:
if change_config(json.loads(request.dict_string)):
notify_others_about_change_thread(SERVICES_TO_NOTIFY)
return responses.PlainTextResponse(status_code=status.HTTP_200_OK)
@app.get("/full_config")
def full_config() -> responses.JSONResponse:
return responses.JSONResponse(
status_code=status.HTTP_200_OK, content=get_config(False)
)
@app.get("/base_config")
def base_config() -> responses.JSONResponse:
return responses.JSONResponse(
status_code=status.HTTP_200_OK, content=get_config(True)
)
@app.get("/healthcheck")
def healthcheck() -> responses.PlainTextResponse:
return responses.PlainTextResponse("OK")