Skip to content

Commit

Permalink
달러 환율 함수 추가
Browse files Browse the repository at this point in the history
  • Loading branch information
Gomnonix committed Aug 21, 2024
1 parent 39d3a53 commit 3879c3d
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 15 deletions.
18 changes: 4 additions & 14 deletions customk/classes/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,35 +5,27 @@
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)
description = models.TextField(blank=True)
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):
Expand All @@ -51,5 +43,3 @@ class ClassImages(models.Model):

def __str__(self):
return f"{self.course.title}"


1 change: 0 additions & 1 deletion customk/classes/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -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):
Expand Down
16 changes: 16 additions & 0 deletions customk/classes/utils.py
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit 3879c3d

Please sign in to comment.