sex
This commit is contained in:
61
app/services/external_api/tcgplayer/tcgplayer_credentials.py
Normal file
61
app/services/external_api/tcgplayer/tcgplayer_credentials.py
Normal file
@ -0,0 +1,61 @@
|
||||
import os
|
||||
import json
|
||||
from typing import Optional
|
||||
import logging
|
||||
from pathlib import Path
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
class TCGPlayerCredentials:
|
||||
_instance = None
|
||||
_credentials_file = Path.home() / ".tcgplayer" / "credentials.json"
|
||||
|
||||
def __new__(cls):
|
||||
if cls._instance is None:
|
||||
cls._instance = super(TCGPlayerCredentials, cls).__new__(cls)
|
||||
cls._instance._initialize()
|
||||
return cls._instance
|
||||
|
||||
def _initialize(self):
|
||||
"""Initialize the credentials manager"""
|
||||
self._cookie = None
|
||||
self._load_credentials()
|
||||
|
||||
def _load_credentials(self):
|
||||
"""Load credentials from the credentials file"""
|
||||
try:
|
||||
if self._credentials_file.exists():
|
||||
with open(self._credentials_file, 'r') as f:
|
||||
data = json.load(f)
|
||||
self._cookie = data.get('cookie')
|
||||
except Exception as e:
|
||||
logger.error(f"Error loading TCGPlayer credentials: {str(e)}")
|
||||
|
||||
def _save_credentials(self):
|
||||
"""Save credentials to the credentials file"""
|
||||
try:
|
||||
# Create directory if it doesn't exist
|
||||
self._credentials_file.parent.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
with open(self._credentials_file, 'w') as f:
|
||||
json.dump({'cookie': self._cookie}, f)
|
||||
|
||||
# Set appropriate file permissions
|
||||
self._credentials_file.chmod(0o600)
|
||||
except Exception as e:
|
||||
logger.error(f"Error saving TCGPlayer credentials: {str(e)}")
|
||||
|
||||
def set_cookie(self, cookie: str):
|
||||
"""Set the authentication cookie"""
|
||||
self._cookie = cookie
|
||||
self._save_credentials()
|
||||
|
||||
def get_cookie(self) -> Optional[str]:
|
||||
"""Get the authentication cookie"""
|
||||
return self._cookie
|
||||
|
||||
def clear_credentials(self):
|
||||
"""Clear stored credentials"""
|
||||
self._cookie = None
|
||||
if self._credentials_file.exists():
|
||||
self._credentials_file.unlink()
|
Reference in New Issue
Block a user