# ========================================================================
# Check Session API Endpoint
#

from fastapi import APIRouter
from api.core.EasyMessage import API_BaseRequest
from api.core.EasyMessage import API_BaseResponse
from api.core.EasySQL import EasySQL
from api.core.EasyUser import EasyUser

from api.core.EasyCrypt import generate_password_hash
from api.core.EasyCrypt import check_password_hash
from api.core.EasyCrypt import generate_session_token
from datetime import datetime, timedelta

print("CHECK SESSION API ENDPOINT")

router = APIRouter()
sql_connection = EasySQL()
user = EasyUser()

class API_Request(API_BaseRequest):
    pass

class API_Response(API_BaseResponse):
    pass

@router.post("/users/check_session")
def get_user(request: API_Request):

    api_response = API_Response()
    session_hash = request.session_hash
    result = user.authenticate_session(session_hash)

    if(result == False):
        api_response.success = False
        api_response.status_code = 403
        api_response.reason = "Login Failure"
    else:
        api_response.success = True
        api_response.status_code = 200
        api_response.reason = ""

    return api_response
