from flask_restful import Api
from flask_jwt import JWT
import os, sys
from security import authenticate, identity as identity_function
from resources.user import UserRegister
from app_logger import AppLogger
from connection.db import DbInit
from resources.item import Item, ItemList
from datetime import timedelta
from config_manager import ConfigManager
import logging

DEFAULT_PORT = 5050
logger = AppLogger.get_logger(__name__)

ConfigManager.init()
app = Flask(__name__)
app.secret_key = os.environ.get(
    "JWT_SECRET", ConfigManager.get("jwt_secret", "jose")
)
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False

api = Api(app)
# app.config['JWT_AUTH_URL_RULE'] = '/login'
app.config["JWT_EXPIRATION_DELTA"] = timedelta(
    seconds=3600
)  # 1 hour expiration time
# app.logger.addHandler()

for logr in (app.logger, logging.getLogger("werkzeug")):
    logr.addHandler(AppLogger.file_handler())