From 9726ea4f99185b329a768bcbad1a8c822e04dd18 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Sat, 7 Sep 2019 19:18:18 +1000 Subject: [PATCH] Add serializer / API for currency objects --- InvenTree/InvenTree/urls.py | 2 ++ InvenTree/common/api.py | 35 +++++++++++++++++++++++++++++++++ InvenTree/common/serializers.py | 22 +++++++++++++++++++++ 3 files changed, 59 insertions(+) create mode 100644 InvenTree/common/api.py create mode 100644 InvenTree/common/serializers.py diff --git a/InvenTree/InvenTree/urls.py b/InvenTree/InvenTree/urls.py index ea7b10504c..bb400af615 100644 --- a/InvenTree/InvenTree/urls.py +++ b/InvenTree/InvenTree/urls.py @@ -19,6 +19,7 @@ from stock.urls import stock_urls from build.urls import build_urls from order.urls import order_urls +from common.api import common_api_urls from part.api import part_api_urls, bom_api_urls from company.api import company_api_urls from stock.api import stock_api_urls @@ -39,6 +40,7 @@ from users.urls import user_urls admin.site.site_header = "InvenTree Admin" apipatterns = [ + url(r'^common/', include(common_api_urls)), url(r'^part/', include(part_api_urls)), url(r'^bom/', include(bom_api_urls)), url(r'^company/', include(company_api_urls)), diff --git a/InvenTree/common/api.py b/InvenTree/common/api.py new file mode 100644 index 0000000000..6da2f98472 --- /dev/null +++ b/InvenTree/common/api.py @@ -0,0 +1,35 @@ +""" +Provides a JSON API for common components. +""" + +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from rest_framework import permissions, generics + +from django.conf.urls import url + +from .models import Currency +from .serializers import CurrencySerializer + + +class CurrencyList(generics.ListCreateAPIView): + """ API endpoint for accessing a list of Currency objects. + + - GET: Return a list of Currencies + - POST: Create a new currency + """ + + queryset = Currency.objects.all() + serializer_class = CurrencySerializer + + permission_classes = [ + permissions.IsAuthenticated, + ] + + ordering_fields = ['name', 'value'] + + +common_api_urls = [ + url(r'^currency/?$', CurrencyList.as_view(), name='api-currency-list'), +] diff --git a/InvenTree/common/serializers.py b/InvenTree/common/serializers.py new file mode 100644 index 0000000000..73b4da8adf --- /dev/null +++ b/InvenTree/common/serializers.py @@ -0,0 +1,22 @@ +""" +JSON serializers for common components +""" + +from .models import Currency + +from InvenTree.serializers import InvenTreeModelSerializer + + +class CurrencySerializer(InvenTreeModelSerializer): + """ Serializer for Currency object """ + + class Meta: + model = Currency + fields = [ + 'pk', + 'symbol', + 'suffix', + 'description', + 'value', + 'base' + ]