fix: fix api not work

This commit is contained in:
fatelei 2023-08-24 13:51:30 +08:00
parent 79392a2f70
commit 50602ede43
3 changed files with 31 additions and 26 deletions

View file

@ -1,3 +1,4 @@
from api.utils.common_log import myLogger
from api.utils.helper import Singleton
@ -11,20 +12,26 @@ class Settings(object):
def __init__(self):
self._config = {}
self.config_file = '/usr/src/app/config/settings.conf'
def init_config_from_file(self, config_file: str=None):
if config_file:
self.config_file = config_file
def build_config(self):
try:
with open(config_file, 'r') as f:
with open(self.config_file, 'r') as f:
data = f.readlines()
except Exception:
except Exception as e:
data = []
for i in data:
if i.startswith('#'):
continue
i = i.replace('\n', '').replace('\r\n', '')
key, value = i.split('=')
if self._config.get(key) != value:
self._config[key] = value
return self._config
def init_config_from_file(self, config_file: str=None):
if config_file:
self.config_file = config_file
self.build_config()
def update_setting(self, key: str, value: str):
self._config[key] = value
@ -33,17 +40,22 @@ class Settings(object):
def get_setting(self, key: str, default=None):
return self._config.get(key, default)
def list_all_settings(self) -> list:
def list_all_settings(self) -> dict:
self.build_config()
return self._config
def delete_setting(self, key: str, value: str):
if key in self._config:
if self._config.get(key) == value:
del self._config[key]
self.flush_config()
def flush_config(self):
with open(self.config_file, 'w') as f:
for key, value in self._config.items():
f.write(f'{key}={value}\n')
try:
with open(self.config_file, 'w') as f:
for key, value in self._config.items():
f.write(f'{key}={value}\n')
except Exception as e:
myLogger.error_logger(e)

View file

@ -79,11 +79,6 @@ rd_user_list = rd_s + user + rd_e
rd_updateuser_list=rd_s + updateuser + rd_e
class SettingItem(BaseModel):
key: str = Field(description="配置项")
value: str = Field(description="配置项的取值")
@router.api_route("/AppStatus", methods=["GET", "POST"], summary="获取指定APP的信息",
response_description=rd_status,
response_model=Response)
@ -394,7 +389,6 @@ def AppStoreUpdateList(request: Request):
@router.api_route("/AppUpdateList", methods=["GET", "POST"], summary="查询更新內容", response_model=Response, response_description=rd_update_list)
def AppUpdateList(request: Request):
try:
myLogger.info_logger("Receive request: /AppUpdateList")
get_headers(request)
@ -465,7 +459,7 @@ def AppPreviewUpdate(request: Request,preview: Optional[str] = Query(default=Non
return response
@router.api_route("/AppAutoUpdate", methods=["GET", "POST"], summary="软件商店自动更新", response_model=Response, response_description=rd_auto_list)
def AppAutoUpdate(request: Request,auto_update: Optional[str] = Query(default=None, description="自动更新标志(可选值:true,false,None)")):
def AppAutoUpdate(request: Request, auto_update: Optional[str] = Query(default=None, description="自动更新标志(可选值:true,false,None)")):
try:
myLogger.info_logger("Receive request: /AppAutoUpdate")
@ -511,7 +505,7 @@ def AppSearchUsers(request: Request, plugin_name: Optional[str] = Query(default=
return response
@router.api_route("/AppUpdateUser", methods=["GET", "POST"], summary="更新appstore用户信息", response_model=Response, response_description=rd_updateuser_list)
def AppUpdateUser(request: Request,user_name: Optional[str] = Query(default=None, description="用户名"), password: Optional[str] = Query(default=None, description="密码")):
def AppUpdateUser(request: Request, user_name: Optional[str] = Query(default=None, description="用户名"), password: Optional[str] = Query(default=None, description="密码")):
try:
myLogger.info_logger("Receive request: /AppUpdateUser")
@ -545,15 +539,16 @@ def list_settings():
@router.api_route("/AppUpdateSettings", methods=['GET', 'POST'], summary="创建或者更新配置信息")
def create_or_update_settings(item: SettingItem):
settings.update_setting(item.key, item.value)
def create_or_update_settings(request: Request, key: str = Query(description="配置 Key"), value: str = Query(description="配置取值")):
settings.update_setting(key, value)
return JSONResponse(content={})
@router.api_route("/AppDeleteSettings", methods=['GET', 'POST'], summary="删除配置信息")
def delete_settings(item: SettingItem):
settings.delete_setting(item.key, item.value)
def delete_settings(request: Request, key: str = Query(description="配置 Key"), value: str = Query(description="配置取值")):
settings.delete_setting(key, value)
return JSONResponse(content={})
def get_headers(request):
headers = request.headers

View file

@ -65,7 +65,5 @@ async def redoc_html():
if __name__ == "__main__":
parser = argparse.ArgumentParser(description='websoft9')
parser.add_argument("--port", type=int, dest='port', default=5000, metavar="port")
parser.add_argument("--config", type=str, dest="config_file", required=True)
args = parser.parse_args()
settings.init_config_from_file(config_file=args.config_file)
uvicorn.run("main:get_app", host='0.0.0.0', port=args.port, reload=True)