from app.presentation.schemas.mureka_schema import CreateMusic import requests from app.shared.logger import setup_logger from app.core.env_setting import EnvSetting logger = setup_logger(__name__) settings = EnvSetting() # mureka 서비스 class MurekaService: def __init__(self): self.useapi_token = settings.USEAPINET_API_TOKEN self.session_token = settings.MUREAKA_SESSION_TOKEN self.user_id = settings.MUREAKA_USER_ID self.base_url = "https://api.useapi.net/v1/mureka" self.headers = { "Content-Type": "application/json", "Authorization": f"Bearer {self.useapi_token}" } # mureka 연동 확인 def connect_useapi(self): url = f"{self.base_url}/accounts/{self.user_id}" body = { "account": self.user_id, "token": self.session_token } logger.info(f"mureka connect useapi body: {url}") response = requests.post( url, headers=self.headers, json=body ) logger.info(f"mureka connect useapi response: {response}") return response # 노래 생성 def generate_music(self, req: CreateMusic): url = f"{self.base_url}/music/create-advanced" body = { "lyrics": req.lyrics, } body = {k: v for k, v in body.items() if v is not None} logger.info(f"create music body: {body}") response = requests.post( url, headers=self.headers, json=body ) return response.json()