From 883fe61efc93d0602e2c104028a2a50b3495673d Mon Sep 17 00:00:00 2001 From: Brian Moe <brian.moe@ligo.org> Date: Tue, 4 Dec 2012 15:05:21 -0600 Subject: [PATCH] Futzing around with Event Neighbors resource. --- gracedb/api.py | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/gracedb/api.py b/gracedb/api.py index 61e346fa6..2e0ce7fd5 100644 --- a/gracedb/api.py +++ b/gracedb/api.py @@ -341,6 +341,14 @@ class EventDetail(APIView): # Neighbors class EventNeighbors(APIView): + """The neighbors of an event. + ### GET + The `neighborhood` parameter lets you select a GPS time + range for what it means to be a neighbor. Can be of the + form `neighborhood=N` or `neighborhood=N,M` to select + neighbors in the (inclusive) GPS time range [x-N,x+N] or [x-N, x+M], + where x is the GPS time of the event in question. + """ def get(self, request, graceid): try: event = Event.getByGraceid(graceid) @@ -348,20 +356,26 @@ class EventNeighbors(APIView): # XXX Real error message. return Response("Event does not exist.", status=status.HTTP_404_NOT_FOUND) - if request.QUERY_PARAMS.has_key('delta'): - delta = request.QUERY_PARAMS['delta'] - if delta.find(',') < 0: - delta = delta2 = int(delta) - else: - delta , delta2 = map(int, delta.split(',')) - neighbors = event.neighbors(delta=delta, delta2=delta2) + if request.QUERY_PARAMS.has_key('neighborhood'): + delta = request.QUERY_PARAMS['neighborhood'] + try: + if delta.find(',') < 0: + neighborhood = (int(delta), int(delta)) + else: + neighborhood = map(int, delta.split(',')) + except ValueError: + pass else: - neighbors = event.neighbors() + neighborhood = event.DEFAULT_EVENT_NEIGHBORHOOD + + neighbors = event.neighbors(neighborhood=neighborhood) + neighbors = [eventToDict(neighbor, request=request) for neighbor in neighbors] return Response({ 'neighbors' : neighbors, - 'delta' : (5,5), # XXX get from Event, or request. + 'neighborhood' : neighborhood, + 'numRows' : len(neighbors), 'links' : { 'self': request.build_absolute_uri(), 'event': reverse("event-detail", args=[graceid], request=request), -- GitLab