from fastapi import FastAPI, __version__ from pydantic import BaseModel from typing import Set, List, Optional, Dict from random import randint from models.solve_request import SolveRequest from models.solve_response import SolveResponse from models.form import Form app = FastAPI() @app.get("/") async def root(): return {"message": "Welcome to Measures LOFT solver service. v0.1"} @app.get("/healthcheck") async def health(): content = { "maintainer": "Meazure Horizon Team", "git_repo": "https://github.com/yardstick/measure-solver", "server": "OK", "fastapi version": __version__, "app version": "0.1.1" } return content @app.get('/readycheck') async def ready(): return 'OK' # just means we're on air @app.post('/solve/') async def solve(solve_request: SolveRequest): response = SolveResponse( response_id=randint(100,5000), forms=[Form( items=[item.id for item in solve_request.items] )] ) return response