mirror of
https://github.com/RoboSats/robosats.git
synced 2025-01-18 20:21:35 +00:00
backend and BookPage.js use currencies.json
This commit is contained in:
parent
5640b11e6f
commit
4516f1974a
6
api/currencies.json
Normal file
6
api/currencies.json
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"1":"USD",
|
||||||
|
"2":"EUR",
|
||||||
|
"3":"ETH",
|
||||||
|
"4":"ABC"
|
||||||
|
}
|
@ -7,6 +7,7 @@ from django.dispatch import receiver
|
|||||||
from django.utils.html import mark_safe
|
from django.utils.html import mark_safe
|
||||||
|
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
import json
|
||||||
|
|
||||||
#############################
|
#############################
|
||||||
# TODO
|
# TODO
|
||||||
@ -65,11 +66,6 @@ class Order(models.Model):
|
|||||||
BUY = 0, 'BUY'
|
BUY = 0, 'BUY'
|
||||||
SELL = 1, 'SELL'
|
SELL = 1, 'SELL'
|
||||||
|
|
||||||
class Currencies(models.IntegerChoices):
|
|
||||||
USD = 1, 'USD'
|
|
||||||
EUR = 2, 'EUR'
|
|
||||||
ETH = 3, 'ETH'
|
|
||||||
|
|
||||||
class Status(models.IntegerChoices):
|
class Status(models.IntegerChoices):
|
||||||
WFB = 0, 'Waiting for bond'
|
WFB = 0, 'Waiting for bond'
|
||||||
PUB = 1, 'Published in order book'
|
PUB = 1, 'Published in order book'
|
||||||
@ -92,6 +88,9 @@ class Order(models.Model):
|
|||||||
TLD = 18, 'Taker lost dispute'
|
TLD = 18, 'Taker lost dispute'
|
||||||
EXP = 19, 'Expired'
|
EXP = 19, 'Expired'
|
||||||
|
|
||||||
|
currency_dict = json.load(open('./api/currencies.json'))
|
||||||
|
currency_choices = [(int(val), label) for val, label in list(currency_dict.items())]
|
||||||
|
print(currency_choices)
|
||||||
# order info
|
# order info
|
||||||
status = models.PositiveSmallIntegerField(choices=Status.choices, null=False, default=Status.WFB)
|
status = models.PositiveSmallIntegerField(choices=Status.choices, null=False, default=Status.WFB)
|
||||||
created_at = models.DateTimeField(auto_now_add=True)
|
created_at = models.DateTimeField(auto_now_add=True)
|
||||||
@ -99,7 +98,7 @@ class Order(models.Model):
|
|||||||
|
|
||||||
# order details
|
# order details
|
||||||
type = models.PositiveSmallIntegerField(choices=Types.choices, null=False)
|
type = models.PositiveSmallIntegerField(choices=Types.choices, null=False)
|
||||||
currency = models.PositiveSmallIntegerField(choices=Currencies.choices, null=False)
|
currency = models.PositiveSmallIntegerField(choices=currency_choices, null=False)
|
||||||
amount = models.DecimalField(max_digits=9, decimal_places=4, validators=[MinValueValidator(0.00001)])
|
amount = models.DecimalField(max_digits=9, decimal_places=4, validators=[MinValueValidator(0.00001)])
|
||||||
payment_method = models.CharField(max_length=30, null=False, default="not specified", blank=True)
|
payment_method = models.CharField(max_length=30, null=False, default="not specified", blank=True)
|
||||||
|
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
from django.urls import path
|
from django.urls import path
|
||||||
from .views import OrderMakerView, OrderView, UserView, BookView
|
from .views import OrderMakerView, OrderView, UserView, BookView, get_currencies_json
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path('make/', OrderMakerView.as_view()),
|
path('make/', OrderMakerView.as_view()),
|
||||||
path('order/', OrderView.as_view({'get':'get','post':'take_or_update'})),
|
path('order/', OrderView.as_view({'get':'get','post':'take_or_update'})),
|
||||||
path('usergen/', UserView.as_view()),
|
path('usergen/', UserView.as_view()),
|
||||||
path('book/', BookView.as_view()),
|
path('book/', BookView.as_view()),
|
||||||
|
path('currencies/', get_currencies_json),
|
||||||
]
|
]
|
@ -21,6 +21,9 @@ from pathlib import Path
|
|||||||
from datetime import timedelta
|
from datetime import timedelta
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
|
|
||||||
|
import json
|
||||||
|
from django.http import HttpResponse
|
||||||
|
|
||||||
# .env
|
# .env
|
||||||
expiration_time = 8
|
expiration_time = 8
|
||||||
|
|
||||||
@ -263,6 +266,7 @@ class BookView(ListAPIView):
|
|||||||
|
|
||||||
def get(self,request, format=None):
|
def get(self,request, format=None):
|
||||||
currency = request.GET.get('currency')
|
currency = request.GET.get('currency')
|
||||||
|
print("currency:", currency)
|
||||||
type = request.GET.get('type')
|
type = request.GET.get('type')
|
||||||
queryset = Order.objects.filter(currency=currency, type=type, status=int(Order.Status.PUB))
|
queryset = Order.objects.filter(currency=currency, type=type, status=int(Order.Status.PUB))
|
||||||
if len(queryset)== 0:
|
if len(queryset)== 0:
|
||||||
@ -282,6 +286,9 @@ class BookView(ListAPIView):
|
|||||||
|
|
||||||
return Response(book_data, status=status.HTTP_200_OK)
|
return Response(book_data, status=status.HTTP_200_OK)
|
||||||
|
|
||||||
|
def get_currencies_json(request):
|
||||||
|
currency_dict = json.load(open('./api/currencies.json'))
|
||||||
|
return HttpResponse(json.dumps(currency_dict),content_type="application/json")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -8,8 +8,10 @@ export default class BookPage extends Component {
|
|||||||
orders: new Array(),
|
orders: new Array(),
|
||||||
currency: 1,
|
currency: 1,
|
||||||
type: 1,
|
type: 1,
|
||||||
|
currencies_dict: {"1":"USD"}
|
||||||
};
|
};
|
||||||
this.getOrderDetails()
|
this.getOrderDetails()
|
||||||
|
this.getCurrencyDict()
|
||||||
this.state.currencyCode = this.getCurrencyCode(this.state.currency)
|
this.state.currencyCode = this.getCurrencyCode(this.state.currency)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -24,6 +26,15 @@ export default class BookPage extends Component {
|
|||||||
not_found: data.not_found,
|
not_found: data.not_found,
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
getCurrencyDict() {
|
||||||
|
fetch('/api/currencies')
|
||||||
|
.then((response) => response.json())
|
||||||
|
.then((data) =>
|
||||||
|
this.setState({
|
||||||
|
currencies_dict: data
|
||||||
|
}));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
handleCardClick=(e)=>{
|
handleCardClick=(e)=>{
|
||||||
console.log(e)
|
console.log(e)
|
||||||
@ -48,7 +59,7 @@ export default class BookPage extends Component {
|
|||||||
// Gets currency code (3 letters) from numeric (e.g., 1 -> USD)
|
// Gets currency code (3 letters) from numeric (e.g., 1 -> USD)
|
||||||
// Improve this function so currencies are read from json
|
// Improve this function so currencies are read from json
|
||||||
getCurrencyCode(val){
|
getCurrencyCode(val){
|
||||||
return (val == 1 ) ? "USD": ((val == 2 ) ? "EUR":"ETH")
|
return this.state.currencies_dict[val.toString()]
|
||||||
}
|
}
|
||||||
|
|
||||||
// pretty numbers
|
// pretty numbers
|
||||||
@ -156,9 +167,10 @@ export default class BookPage extends Component {
|
|||||||
}}
|
}}
|
||||||
onChange={this.handleCurrencyChange}
|
onChange={this.handleCurrencyChange}
|
||||||
>
|
>
|
||||||
<MenuItem value={1}>USD</MenuItem>
|
{
|
||||||
<MenuItem value={2}>EUR</MenuItem>
|
Object.entries(this.state.currencies_dict)
|
||||||
<MenuItem value={3}>ETH</MenuItem>
|
.map( ([key, value]) => <MenuItem value={parseInt(key)}>{value}</MenuItem> )
|
||||||
|
}
|
||||||
</Select>
|
</Select>
|
||||||
</FormControl>
|
</FormControl>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
@ -9,4 +9,5 @@ urlpatterns = [
|
|||||||
path('book/', index),
|
path('book/', index),
|
||||||
path('order/<int:orderId>', index),
|
path('order/<int:orderId>', index),
|
||||||
path('wait/', index),
|
path('wait/', index),
|
||||||
|
path('currencies/',index)
|
||||||
]
|
]
|
Loading…
Reference in New Issue
Block a user