From 3879c3d8331fb92c57f4b20ed4ae3b3f65d59bcd Mon Sep 17 00:00:00 2001 From: Gomnonix Date: Wed, 21 Aug 2024 17:40:16 +0900 Subject: [PATCH] =?UTF-8?q?=EB=8B=AC=EB=9F=AC=20=ED=99=98=EC=9C=A8=20?= =?UTF-8?q?=ED=95=A8=EC=88=98=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- customk/classes/models.py | 18 ++++-------------- customk/classes/serializers.py | 1 - customk/classes/utils.py | 16 ++++++++++++++++ 3 files changed, 20 insertions(+), 15 deletions(-) create mode 100644 customk/classes/utils.py diff --git a/customk/classes/models.py b/customk/classes/models.py index 30c3b58..c98396b 100644 --- a/customk/classes/models.py +++ b/customk/classes/models.py @@ -5,9 +5,6 @@ from common.models import CommonModel from .utils import get_exchange_rate, convert_to_usd -from channels.layers import get_channel_layer -from asgiref.sync import async_to_sync - class Class(CommonModel): title = models.CharField(max_length=400) @@ -15,25 +12,20 @@ class Class(CommonModel): max_person = models.IntegerField(blank=False, default=0) require_person = models.IntegerField(blank=False, default=0) price = models.IntegerField(blank=False, default=0) - # address = models.TextField(blank=False, default="") - address = models.JSONField( - encoder=DjangoJSONEncoder, - default=dict, - blank=True - ) + address = models.JSONField(encoder=DjangoJSONEncoder, default=dict, blank=True) is_viewed = models.BooleanField(default=False) def __str__(self): return self.title - @property def price_in_usd(self): api_key = "530f86837ccd5ef16f5e7de0" # 여러분의 API 키를 여기에 입력하세요 exchange_rates = get_exchange_rate(api_key) - usd_rate = exchange_rates.get('USD', 1) - return convert_to_usd(self.price, usd_rate) + usd_rate = exchange_rates.get("KRW", 1) + price_in_usd = convert_to_usd(self.price, usd_rate) + return round(price_in_usd, 2) class ClassDate(models.Model): @@ -51,5 +43,3 @@ class ClassImages(models.Model): def __str__(self): return f"{self.course.title}" - - diff --git a/customk/classes/serializers.py b/customk/classes/serializers.py index f70d8f0..c7d5ba7 100644 --- a/customk/classes/serializers.py +++ b/customk/classes/serializers.py @@ -34,7 +34,6 @@ class Meta: fields = "__all__" def get_is_new(self, obj): - # 클래스가 생성된 지 30일 이내라면 True 반환 return timezone.now() - obj.created_at <= timedelta(days=30) def get_price_in_usd(self, obj): diff --git a/customk/classes/utils.py b/customk/classes/utils.py new file mode 100644 index 0000000..26b7727 --- /dev/null +++ b/customk/classes/utils.py @@ -0,0 +1,16 @@ +import requests + + +def get_exchange_rate(api_key): + url = f"https://v6.exchangerate-api.com/v6/{api_key}/latest/USD" + response = requests.get(url) + + if response.status_code != 200: + raise Exception(f"API 요청 실패: {response.status_code}") + + data = response.json() + return data["conversion_rates"] + + +def convert_to_usd(price_in_local_currency, exchange_rate): + return price_in_local_currency / exchange_rate