112 lines
3.4 KiB
Python
112 lines
3.4 KiB
Python
# -*- coding: utf-8 -*-
|
|
"""
|
|
@File: config.py
|
|
@Date: 2020-09-14
|
|
@author: A2TEC
|
|
@section MODIFYINFO 수정정보
|
|
- 수정자/수정일 : 수정내역
|
|
- 2022-01-14/hsj100@a2tec.co.kr : refactoring
|
|
@brief: Configurations
|
|
"""
|
|
|
|
from dataclasses import dataclass
|
|
from os import path, environ
|
|
|
|
from rest.app.common import consts
|
|
from rest.app.models import UserInfo
|
|
|
|
base_dir = path.dirname(path.dirname(path.dirname(path.abspath(__file__))))
|
|
|
|
|
|
@dataclass
|
|
class Config:
|
|
"""
|
|
기본 Configuration
|
|
"""
|
|
BASE_DIR: str = base_dir
|
|
DB_POOL_RECYCLE: int = 900
|
|
DB_ECHO: bool = True
|
|
DEBUG: bool = False
|
|
TEST_MODE: bool = False
|
|
DEV_TEST_CONNECT_ACCOUNT: str | None = None
|
|
|
|
# NOTE(hsj100): SERVICE_AUTH_API_KEY (token 방식으로 진행)
|
|
SERVICE_AUTH_API_KEY: bool = False
|
|
|
|
DB_URL: str = environ.get('DB_URL', f'mysql+pymysql://{consts.DB_USER_ID}:{consts.DB_USER_PW}@{consts.DB_ADDRESS}:{consts.DB_PORT}/{consts.DB_NAME}?charset={consts.DB_CHARSET}')
|
|
REST_SERVER_PORT = consts.REST_SERVER_PORT
|
|
|
|
SW_TITLE = consts.SW_TITLE
|
|
SW_VERSION = consts.SW_VERSION
|
|
SW_DESCRIPTION = consts.SW_DESCRIPTION
|
|
TERMS_OF_SERVICE = consts.TERMS_OF_SERVICE
|
|
CONTEACT = consts.CONTEACT
|
|
LICENSE_INFO = consts.LICENSE_INFO
|
|
|
|
GLOBAL_TOKEN = consts.ADMIN_INIT_ACCOUNT_INFO.connect_token
|
|
|
|
COOKIES_AUTH = 'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6MTQsImVtYWlsIjoia29hbGFAZGluZ3JyLmNvbSIsIm5hbWUiOm51bGwsInBob25lX251bWJlciI6bnVsbCwicHJvZmlsZV9pbWciOm51bGwsInNuc190eXBlIjpudWxsfQ.4vgrFvxgH8odoXMvV70BBqyqXOFa2NDQtzYkGywhV48'
|
|
|
|
|
|
@dataclass
|
|
class LocalConfig(Config):
|
|
TRUSTED_HOSTS = ['*']
|
|
ALLOW_SITE = ['*']
|
|
DEBUG: bool = True
|
|
|
|
|
|
@dataclass
|
|
class ProdConfig(Config):
|
|
TRUSTED_HOSTS = ['*']
|
|
ALLOW_SITE = ['*']
|
|
|
|
|
|
@dataclass
|
|
class TestConfig(Config):
|
|
DB_URL: str = environ.get('DB_URL', f'mysql+pymysql://{consts.DB_USER_ID}:{consts.DB_USER_PW}@{consts.DB_ADDRESS}/{consts.DB_NAME}_test?charset={consts.DB_CHARSET}')
|
|
TRUSTED_HOSTS = ['*']
|
|
ALLOW_SITE = ['*']
|
|
TEST_MODE: bool = True
|
|
|
|
|
|
@dataclass
|
|
class DevConfig(Config):
|
|
TRUSTED_HOSTS = ['*']
|
|
ALLOW_SITE = ['*']
|
|
DEBUG: bool = True
|
|
DB_URL: str = environ.get('DB_URL', f'mysql+pymysql://{consts.DB_USER_ID}:{consts.DB_USER_PW}@{consts.DB_ADDRESS}/{consts.DB_NAME}_dev?charset={consts.DB_CHARSET}')
|
|
REST_SERVER_PORT = consts.REST_SERVER_PORT + 1
|
|
|
|
SW_TITLE = '[Dev] ' + consts.SW_TITLE
|
|
|
|
|
|
@dataclass
|
|
class MyConfig(Config):
|
|
TRUSTED_HOSTS = ['*']
|
|
ALLOW_SITE = ['*']
|
|
DEBUG: bool = True
|
|
DB_URL: str = environ.get('DB_URL', f'mysql+pymysql://{consts.DB_USER_ID}:{consts.DB_USER_PW}@{consts.DB_ADDRESS}/{consts.DB_NAME}_my?charset={consts.DB_CHARSET}')
|
|
REST_SERVER_PORT = consts.REST_SERVER_PORT + 2
|
|
|
|
# NOTE(hsj100): DEV_TEST_CONNECT_ACCOUNT
|
|
# DEV_TEST_CONNECT_ACCOUNT: UserInfo = UserInfo(**consts.ADMIN_INIT_ACCOUNT_INFO)
|
|
# DEV_TEST_CONNECT_ACCOUNT: str = None
|
|
|
|
# NOTE(hsj100): SERVICE_AUTH_API_KEY (token 방식으로 진행)
|
|
SERVICE_AUTH_API_KEY: bool = False
|
|
|
|
SW_TITLE = '[My] ' + consts.SW_TITLE
|
|
|
|
|
|
def conf():
|
|
"""
|
|
환경 불러오기
|
|
:return:
|
|
"""
|
|
config = dict(prod=ProdConfig, local=LocalConfig, test=TestConfig, dev=DevConfig, my=MyConfig)
|
|
return config[environ.get('API_ENV', 'local')]()
|
|
return config[environ.get('API_ENV', 'dev')]()
|
|
return config[environ.get('API_ENV', 'my')]()
|
|
return config[environ.get('API_ENV', 'test')]()
|
|
|