Skip to content

Commit e654963

Browse files
committed
Refactor generic person API
- Legacy-Id: 15264
1 parent 8e7e0fa commit e654963

3 files changed

Lines changed: 10 additions & 14 deletions

File tree

ietf/api/urls.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@
2020
url(r'^meeting/session/video/url$', meeting_views.api_set_session_video_url),
2121
url(r'^submit/?$', submit_views.api_submit),
2222
url(r'^iesg/position', views_ballot.api_set_position),
23-
url(r'^export/person/$', api_views.PersonExportView.as_view()),
24-
url(r'^export/person/generic', api_views.GenericPersonExportView.as_view()),
23+
url(r'^export/personal-information/$', api_views.PersonExportView.as_view()),
24+
url(r'^v2/person/person', api_views.GenericPersonView.as_view()),
2525
]
2626

2727
# Additional (standard) Tastypie endpoints

ietf/api/views.py

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -79,21 +79,17 @@ def get(self, request):
7979

8080

8181
@method_decorator((csrf_exempt, require_api_key, role_required('Secretariat')), name='dispatch')
82-
class GenericPersonExportView(DetailView, JsonExportMixin):
82+
class GenericPersonView(DetailView, JsonExportMixin):
8383
model = Person
8484

8585
def err(self, code, text):
8686
return HttpResponse(text, status=code, content_type='text/plain')
8787

8888
def post(self, request):
89-
if 'email' not in request.POST:
90-
return self.err(400, "Missing email parameter")
91-
email_address = request.POST.get('email')
92-
try:
93-
email = Email.objects.get(address=email_address)
94-
except Email.DoesNotExist:
95-
return self.err(404, "Email not found '%s'" % (email_address, ))
96-
person = email.person
97-
expand = ['user']
98-
return self.json_view(request, filter={'id': person.id}, expand=expand)
89+
querydict = request.POST.copy()
90+
querydict.pop('apikey', None)
91+
expand = querydict.pop('_expand', [])
92+
if not querydict:
93+
return self.err(400, "No filters provided")
9994

95+
return self.json_view(request, filter=querydict.dict(), expand=expand)

ietf/person/models.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -293,7 +293,7 @@ def salt():
293293
# Manual maintenance: List all endpoints that use @require_api_key here
294294
PERSON_API_KEY_ENDPOINTS = [
295295
("/api/iesg/position", "/api/iesg/position"),
296-
("/api/export/person/generic", "/api/export/person/generic"),
296+
("/api/v2/person/person", "/api/v2/person/person"),
297297
("/api/meeting/session/video/url", "/api/meeting/session/video/url"),
298298
]
299299

0 commit comments

Comments
 (0)