File size: 1,671 Bytes
9c36111
c8aef77
0d2544a
 
 
 
9c36111
 
 
0d2544a
 
 
c8aef77
 
 
 
 
0d2544a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9c36111
0d2544a
 
 
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
41
42
from typing import List
from fastapi import FastAPI, HTTPException
from fastapi.responses import JSONResponse
import os
import json
from models import RequestModel

app = FastAPI()

BASE_DIR = "/tmp/data"

@app.post("/save")
async def save(image_data: RequestModel):
    os.makedirs(BASE_DIR, exist_ok=True)
    filename = os.path.join(BASE_DIR, f"{image_data.originId}_{image_data.assetCode}.json")
    with open(filename, "w") as f:
        json.dump(image_data.dict(), f, indent=4)
    return True

@app.get("/files")
async def list_files():
    try:
        files_data = []
        for filename in os.listdir(BASE_DIR):
            filepath = os.path.join(BASE_DIR, filename)
            if os.path.isfile(filepath):
                try:
                    with open(filepath, "r") as f:
                        file_content = f.read()  # Lê o conteúdo do ficheiro
                        # Tenta decodificar o conteúdo como JSON, se possível
                        try:
                            file_content_json = json.loads(file_content)
                            files_data.append({"filename": filename, "content": file_content_json})
                        except json.JSONDecodeError:
                            files_data.append({"filename": filename, "content": file_content}) # Se não for JSON, retorna o texto
                except (IOError, OSError) as e:
                    raise HTTPException(status_code=500, detail=f"Erro ao ler o ficheiro {filename}: {e}")

        return JSONResponse({"files_data": files_data})
    except FileNotFoundError:
        raise HTTPException(status_code=404, detail="Diretório de dados não encontrado")