From 5d68a5133ec3cbb247de31302c1db4ddabeb861b Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Mon, 13 Aug 2018 08:55:57 +0200 Subject: [PATCH] Add pseudonymization_id filter to API --- doc/api/resources/orders.rst | 1 + src/pretix/api/views/order.py | 3 ++- src/tests/api/test_orders.py | 8 ++++++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/doc/api/resources/orders.rst b/doc/api/resources/orders.rst index 4f0dc3218c..91aebd933f 100644 --- a/doc/api/resources/orders.rst +++ b/doc/api/resources/orders.rst @@ -1022,6 +1022,7 @@ List of all order positions :query string attendee_name: Only return positions with the given value in the attendee_name field. Also, add-on products positions are shown if they refer to an attendee with the given name. :query string secret: Only return positions with the given ticket secret. + :query string pseudonymization_id: Only return positions with the given pseudonymization ID. :query string order__status: Only return positions with the given order status. :query string order__status__in: Only return positions with one the given comma-separated order status. :query boolean has_checkin: If set to ``true`` or ``false``, only return positions that have or have not been diff --git a/src/pretix/api/views/order.py b/src/pretix/api/views/order.py index 7e3112543f..bab0322bcd 100644 --- a/src/pretix/api/views/order.py +++ b/src/pretix/api/views/order.py @@ -335,7 +335,8 @@ class OrderPositionFilter(FilterSet): 'secret': ['exact'], 'order__status': ['exact', 'in'], 'addon_to': ['exact', 'in'], - 'subevent': ['exact', 'in'] + 'subevent': ['exact', 'in'], + 'pseudonymization_id': ['exact'], } diff --git a/src/tests/api/test_orders.py b/src/tests/api/test_orders.py index 3da3577599..293dc11d22 100644 --- a/src/tests/api/test_orders.py +++ b/src/tests/api/test_orders.py @@ -593,6 +593,14 @@ def test_orderposition_list(token_client, organizer, event, order, item, subeven '/api/v1/organizers/{}/events/{}/orderpositions/?secret=abc123'.format(organizer.slug, event.slug)) assert [] == resp.data['results'] + resp = token_client.get( + '/api/v1/organizers/{}/events/{}/orderpositions/?pseudonymization_id=ABCDEFGHKL'.format( + organizer.slug, event.slug)) + assert [res] == resp.data['results'] + resp = token_client.get( + '/api/v1/organizers/{}/events/{}/orderpositions/?pseudonymization_id=FOO'.format(organizer.slug, event.slug)) + assert [] == resp.data['results'] + resp = token_client.get( '/api/v1/organizers/{}/events/{}/orderpositions/?search=FO'.format(organizer.slug, event.slug)) assert [res] == resp.data['results']