O2Sound_ver2_final/backend/app/services/mureka_service.py

53 lines
1.6 KiB
Python

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()