Non puoi selezionare più di 25 argomenti
Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
58 righe
1.9 KiB
58 righe
1.9 KiB
import time |
|
import base64 |
|
import sendfile |
|
import json |
|
from fastapi import FastAPI |
|
from pydantic import BaseModel |
|
from pydantic_core import from_json |
|
from fastapi.encoders import jsonable_encoder |
|
from fastapi.responses import JSONResponse |
|
app = FastAPI() |
|
from fastapi import FastAPI |
|
from fastapi.middleware.cors import CORSMiddleware |
|
|
|
app = FastAPI() |
|
|
|
# You can add additional URLs to this list, for example, the frontend's production domain, or other frontends. |
|
allowed_origins = [ |
|
"https://ai-idrocap.wgscloudlab.it", |
|
"https://localhost", |
|
"https://delta.webgenesys.it" |
|
] |
|
|
|
app.add_middleware( |
|
CORSMiddleware, |
|
allow_origins=allowed_origins, |
|
allow_credentials=True, |
|
allow_methods=["GET", "POST", "PUT", "DELETE"], |
|
allow_headers=["X-Requested-With", "Content-Type"], |
|
) |
|
|
|
class ResponseJson(BaseModel): |
|
authority_identification_code_civil_engineering_office: str |
|
applicants_0_tax_code: str |
|
applicants_0_vat_number: str |
|
concession_decree_number: str |
|
release_date: str |
|
expiration_date: str |
|
|
|
class FileInfo(BaseModel): |
|
type: str |
|
documentHash: str |
|
fileContent: str |
|
@app.post("/extract_info/") |
|
async def extract_info(user_data: FileInfo): |
|
filestr = user_data.documentHash |
|
filedata = base64.b64decode(user_data.fileContent) |
|
filename = '%s.pdf' % filestr |
|
with open(filename, 'wb') as f: |
|
f.write(filedata) |
|
resp=ResponseJson(authority_identification_code_civil_engineering_office="AA0000",applicants_0_tax_code="ABCDEF12G34H567I",applicants_0_vat_number="01234567890",concession_decree_number="12345",release_date="2024-10-23",expiration_date="2026-10-23") |
|
jresp =jsonable_encoder(resp) |
|
response= json.loads(sendfile.sendFile(filename,filestr)) |
|
|
|
return response |
|
if __name__ == "__main__": |
|
import uvicorn |
|
|
|
uvicorn.run(app, host="0.0.0.0", port=443,ssl_keyfile="./SSL/wgscloudlab.key",ssl_certfile="./SSL/wgscloudlab.crt")
|
|
|