From 00b61fb5c6729b57afff2838292e6f4cc1999cd5 Mon Sep 17 00:00:00 2001 From: Miklos Marton Date: Wed, 1 May 2024 11:46:34 +0200 Subject: [PATCH 1/3] Add field description to the currency_exchange_retrieve API call --- src/backend/InvenTree/common/api.py | 1 + src/backend/InvenTree/common/serializers.py | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/src/backend/InvenTree/common/api.py b/src/backend/InvenTree/common/api.py index bba5ac766bf9..18034b92289d 100644 --- a/src/backend/InvenTree/common/api.py +++ b/src/backend/InvenTree/common/api.py @@ -127,6 +127,7 @@ class CurrencyExchangeView(APIView): permission_classes = [permissions.IsAuthenticated] serializer_class = None + @extend_schema(responses={200: common.serializers.CurrencyExchangeSerializer()}) def get(self, request, format=None): """Return information on available currency conversions.""" # Extract a list of all available rates diff --git a/src/backend/InvenTree/common/serializers.py b/src/backend/InvenTree/common/serializers.py index 5bc1759d9a34..40c4d86e2f03 100644 --- a/src/backend/InvenTree/common/serializers.py +++ b/src/backend/InvenTree/common/serializers.py @@ -125,6 +125,17 @@ class Meta: user = serializers.PrimaryKeyRelatedField(read_only=True) +class CurrencyExchangeSerializer(serializers.Serializer): + """Serializer for a Currency Exchange request. + + It's only purpose is describing the results correctly in the API schema right now. + """ + + base_currency = serializers.CharField(read_only=True) + exchange_rates = serializers.DictField(child=serializers.FloatField()) + updated = serializers.DateTimeField(read_only=True) + + class GenericReferencedSettingSerializer(SettingsSerializer): """Serializer for a GenericReferencedSetting model. From c4cf54ace90b7f55f65aeedee9bb321516d4b12b Mon Sep 17 00:00:00 2001 From: Miklos Marton Date: Wed, 1 May 2024 19:37:52 +0200 Subject: [PATCH 2/3] Bump API version --- src/backend/InvenTree/InvenTree/api_version.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/backend/InvenTree/InvenTree/api_version.py b/src/backend/InvenTree/InvenTree/api_version.py index 0d405b6de012..31c3f08e8a19 100644 --- a/src/backend/InvenTree/InvenTree/api_version.py +++ b/src/backend/InvenTree/InvenTree/api_version.py @@ -1,11 +1,14 @@ """InvenTree API version information.""" # InvenTree API version -INVENTREE_API_VERSION = 193 +INVENTREE_API_VERSION = 194 """Increment this API version number whenever there is a significant change to the API that any clients need to know about.""" INVENTREE_API_TEXT = """ +v194 - 2024-05-01 : https://github.com/inventree/InvenTree/pull/7147 + - Adds field description to the currency_exchange_retrieve API call + v193 - 2024-04-30 : https://github.com/inventree/InvenTree/pull/7144 - Adds "assigned_to" filter to PurchaseOrder / SalesOrder / ReturnOrder API endpoints From 8c0cf2f6fd7d667444054faeb81d7e7be2f5b6cf Mon Sep 17 00:00:00 2001 From: Miklos Marton Date: Thu, 2 May 2024 14:55:44 +0200 Subject: [PATCH 3/3] Do not call constuctor for the serializer exposed for extend schema in the CurrencyExchangeView --- src/backend/InvenTree/common/api.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/backend/InvenTree/common/api.py b/src/backend/InvenTree/common/api.py index 18034b92289d..52ef790c4a1d 100644 --- a/src/backend/InvenTree/common/api.py +++ b/src/backend/InvenTree/common/api.py @@ -127,7 +127,7 @@ class CurrencyExchangeView(APIView): permission_classes = [permissions.IsAuthenticated] serializer_class = None - @extend_schema(responses={200: common.serializers.CurrencyExchangeSerializer()}) + @extend_schema(responses={200: common.serializers.CurrencyExchangeSerializer}) def get(self, request, format=None): """Return information on available currency conversions.""" # Extract a list of all available rates