Форматирование всего серверного кода по стандартам (black)
This commit is contained in:
parent
e61ffd793c
commit
06a5a758a3
28 changed files with 611 additions and 305 deletions
|
|
@ -9,6 +9,7 @@ from models.auth import UserCreate, UserResponse
|
|||
logging.basicConfig(level=logging.INFO)
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class JsonStorage:
|
||||
"""Хранилище пользователей в JSON-файле"""
|
||||
|
||||
|
|
@ -32,7 +33,9 @@ class JsonStorage:
|
|||
else:
|
||||
logger.info(f"Файл {self.file_path} уже существует")
|
||||
except Exception as e:
|
||||
logger.error(f"Ошибка при создании файла {self.file_path}: {type(e).__name__} - {str(e)}")
|
||||
logger.error(
|
||||
f"Ошибка при создании файла {self.file_path}: {type(e).__name__} - {str(e)}"
|
||||
)
|
||||
raise
|
||||
|
||||
def _read_data(self) -> dict:
|
||||
|
|
@ -41,10 +44,14 @@ class JsonStorage:
|
|||
with open(self.file_path, "r") as f:
|
||||
return json.load(f)
|
||||
except FileNotFoundError:
|
||||
logger.info(f"Файл {self.file_path} не существует, возвращаем пустую структуру")
|
||||
logger.info(
|
||||
f"Файл {self.file_path} не существует, возвращаем пустую структуру"
|
||||
)
|
||||
return {"users": [], "next_id": 1}
|
||||
except Exception as e:
|
||||
logger.error(f"Ошибка при чтении файла {self.file_path}: {type(e).__name__} - {str(e)}")
|
||||
logger.error(
|
||||
f"Ошибка при чтении файла {self.file_path}: {type(e).__name__} - {str(e)}"
|
||||
)
|
||||
raise
|
||||
|
||||
def _write_data(self, data: dict):
|
||||
|
|
@ -53,7 +60,9 @@ class JsonStorage:
|
|||
with open(self.file_path, "w") as f:
|
||||
json.dump(data, f, indent=2)
|
||||
except Exception as e:
|
||||
logger.error(f"Ошибка при записи файла {self.file_path}: {type(e).__name__} - {str(e)}")
|
||||
logger.error(
|
||||
f"Ошибка при записи файла {self.file_path}: {type(e).__name__} - {str(e)}"
|
||||
)
|
||||
raise
|
||||
|
||||
def create_user(self, user: UserCreate) -> UserResponse:
|
||||
|
|
@ -70,22 +79,30 @@ class JsonStorage:
|
|||
"id": next_id,
|
||||
"username": user.username,
|
||||
"password_hash": password_hash,
|
||||
"is_admin": user.is_admin
|
||||
"is_admin": user.is_admin,
|
||||
}
|
||||
users.append(new_user)
|
||||
data["next_id"] = next_id + 1
|
||||
self._write_data(data)
|
||||
logger.info(f"Пользователь {user.username} успешно зарегистрирован")
|
||||
return UserResponse(id=new_user["id"], username=new_user["username"], is_admin=new_user["is_admin"])
|
||||
return UserResponse(
|
||||
id=new_user["id"],
|
||||
username=new_user["username"],
|
||||
is_admin=new_user["is_admin"],
|
||||
)
|
||||
except Exception as e:
|
||||
logger.error(f"Ошибка при создании пользователя {user.username}: {type(e).__name__} - {str(e)}")
|
||||
logger.error(
|
||||
f"Ошибка при создании пользователя {user.username}: {type(e).__name__} - {str(e)}"
|
||||
)
|
||||
raise
|
||||
|
||||
def get_user_by_username(self, username: str) -> Optional[dict]:
|
||||
"""Получает пользователя по имени"""
|
||||
try:
|
||||
if not os.path.exists(self.file_path):
|
||||
logger.info(f"Файл {self.file_path} не существует, пользователь {username} не найден")
|
||||
logger.info(
|
||||
f"Файл {self.file_path} не существует, пользователь {username} не найден"
|
||||
)
|
||||
return None
|
||||
data = self._read_data()
|
||||
for user in data["users"]:
|
||||
|
|
@ -93,9 +110,11 @@ class JsonStorage:
|
|||
return user
|
||||
return None
|
||||
except Exception as e:
|
||||
logger.error(f"Ошибка при получении пользователя {username}: {type(e).__name__} - {str(e)}")
|
||||
logger.error(
|
||||
f"Ошибка при получении пользователя {username}: {type(e).__name__} - {str(e)}"
|
||||
)
|
||||
raise
|
||||
|
||||
def verify_password(self, plain_password: str, hashed_password: str) -> bool:
|
||||
"""Проверяет пароль"""
|
||||
return self.pwd_context.verify(plain_password, hashed_password)
|
||||
return self.pwd_context.verify(plain_password, hashed_password)
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ from datetime import datetime, timedelta
|
|||
logging.basicConfig(level=logging.INFO)
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class SessionStorage:
|
||||
def __init__(self, file_path: str = "/etc/gonets/sessions.json"):
|
||||
self.file_path = file_path
|
||||
|
|
@ -28,7 +29,9 @@ class SessionStorage:
|
|||
else:
|
||||
logger.info(f"Файл {self.file_path} уже существует")
|
||||
except Exception as e:
|
||||
logger.error(f"Ошибка при создании файла {self.file_path}: {type(e).__name__} - {str(e)}")
|
||||
logger.error(
|
||||
f"Ошибка при создании файла {self.file_path}: {type(e).__name__} - {str(e)}"
|
||||
)
|
||||
raise
|
||||
|
||||
def _read_data(self) -> Dict:
|
||||
|
|
@ -36,7 +39,9 @@ class SessionStorage:
|
|||
with open(self.file_path, "r") as f:
|
||||
return json.load(f)
|
||||
except Exception as e:
|
||||
logger.error(f"Ошибка при чтении файла {self.file_path}: {type(e).__name__} - {str(e)}")
|
||||
logger.error(
|
||||
f"Ошибка при чтении файла {self.file_path}: {type(e).__name__} - {str(e)}"
|
||||
)
|
||||
raise
|
||||
|
||||
def _write_data(self, data: Dict):
|
||||
|
|
@ -44,7 +49,9 @@ class SessionStorage:
|
|||
with open(self.file_path, "w") as f:
|
||||
json.dump(data, f, indent=2)
|
||||
except Exception as e:
|
||||
logger.error(f"Ошибка при записи файла {self.file_path}: {type(e).__name__} - {str(e)}")
|
||||
logger.error(
|
||||
f"Ошибка при записи файла {self.file_path}: {type(e).__name__} - {str(e)}"
|
||||
)
|
||||
raise
|
||||
|
||||
def create_session(self, username: str, token: str, client_id: str) -> str:
|
||||
|
|
@ -60,13 +67,17 @@ class SessionStorage:
|
|||
"token": token,
|
||||
"client_id": client_id,
|
||||
"created_at": created_at,
|
||||
"expiry": expiry
|
||||
"expiry": expiry,
|
||||
}
|
||||
self._write_data(data)
|
||||
logger.info(f"Сессия создана для пользователя {username} с session_id {session_id}")
|
||||
logger.info(
|
||||
f"Сессия создана для пользователя {username} с session_id {session_id}"
|
||||
)
|
||||
return session_id
|
||||
except Exception as e:
|
||||
logger.error(f"Ошибка при создании сессии для {username}: {type(e).__name__} - {str(e)}")
|
||||
logger.error(
|
||||
f"Ошибка при создании сессии для {username}: {type(e).__name__} - {str(e)}"
|
||||
)
|
||||
raise
|
||||
|
||||
def get_latest_session(self, client_id: str) -> Optional[Dict]:
|
||||
|
|
@ -95,7 +106,9 @@ class SessionStorage:
|
|||
self._write_data(data)
|
||||
return None
|
||||
except Exception as e:
|
||||
logger.error(f"Ошибка при получении сессии для client_id {client_id}: {type(e).__name__} - {str(e)}")
|
||||
logger.error(
|
||||
f"Ошибка при получении сессии для client_id {client_id}: {type(e).__name__} - {str(e)}"
|
||||
)
|
||||
raise
|
||||
|
||||
def delete_session(self, session_id: str):
|
||||
|
|
@ -108,7 +121,9 @@ class SessionStorage:
|
|||
self._write_data(data)
|
||||
logger.info(f"Сессия с session_id {session_id} удалена")
|
||||
except Exception as e:
|
||||
logger.error(f"Ошибка при удалении сессии {session_id}: {type(e).__name__} - {str(e)}")
|
||||
logger.error(
|
||||
f"Ошибка при удалении сессии {session_id}: {type(e).__name__} - {str(e)}"
|
||||
)
|
||||
raise
|
||||
|
||||
def clean_expired_sessions(self):
|
||||
|
|
@ -137,5 +152,7 @@ class SessionStorage:
|
|||
logger.debug("Истекшие сессии не найдены")
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"Ошибка при очистке истекших сессий: {type(e).__name__} - {str(e)}")
|
||||
raise
|
||||
logger.error(
|
||||
f"Ошибка при очистке истекших сессий: {type(e).__name__} - {str(e)}"
|
||||
)
|
||||
raise
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue