from fastapi import FastAPI, HTTPException
from api_files.src.middle_api import Middle_Blogger_Api, Base_Blog_Data

api_fn = FastAPI()

@api_fn.post("/blog_data/", status_code=200)
def get_full_data(data:dict) -> dict:
    try:
        if data and 'blog_id' in data:
            base_data = Base_Blog_Data(data.get('blog_id'))
            blog_data = Middle_Blogger_Api.update_blog_data(base_data)
            response = dict({"query":data,
                             "blog_data":blog_data.to_json()})
        else:
            raise HTTPException(status_code = 401, datail=f"Datos mal formados:\n{data}")
    except Exception as e:
        print(e)
        raise HTTPException(status_code = 403, datail=e)
    finally:
        return response

@api_fn.get("/blog_data/{blog_id}")
def get_blog_data(blog_id: str):
    base_data = Base_Blog_Data(blog_id)
    blog_data = Middle_Blogger_Api.update_blog_data(base_data)
    return {"query": blog_id,
            "blog_data": blog_data.to_json()}