From e737cf70bb2767ef62bba67debdc6aa08b4958ad Mon Sep 17 00:00:00 2001
From: Tanner Prestegard <tanner.prestegard@ligo.org>
Date: Fri, 26 Jan 2018 18:09:13 -0600
Subject: [PATCH] moving api to a submodule of events app

---
 config/urls.py                               |  8 ++-
 gracedb/events/api/__init__.py               |  0
 gracedb/events/{ => api}/throttles.py        |  0
 gracedb/events/{urls_rest.py => api/urls.py} | 59 ++++++--------------
 gracedb/events/{api.py => api/views.py}      | 48 +++++++---------
 gracedb/events/urls.py                       |  2 +-
 6 files changed, 45 insertions(+), 72 deletions(-)
 create mode 100644 gracedb/events/api/__init__.py
 rename gracedb/events/{ => api}/throttles.py (100%)
 rename gracedb/events/{urls_rest.py => api/urls.py} (63%)
 rename gracedb/events/{api.py => api/views.py} (98%)

diff --git a/config/urls.py b/config/urls.py
index d24b8f99e..2a879ecb3 100644
--- a/config/urls.py
+++ b/config/urls.py
@@ -26,9 +26,11 @@ urlpatterns = [
     url(r'^SPPrivacy', events.views.spprivacy, name="spprivacy"),
     url(r'^DiscoveryService', events.views.discovery, name="discovery"),
     url(r'^events/', include('events.urls')),
-    url(r'^api/',    include('events.urls_rest', app_name="api", namespace="x509")),
-    url(r'^apiweb/', include('events.urls_rest', app_name="api", namespace="shib")),
-    url(r'^apibasic/', include('events.urls_rest', app_name="api", namespace="basic")),
+    url(r'^apiweb/', include('events.api.urls', app_name="api",
+        namespace="shib")),
+    url(r'^api/', include('events.api.urls', app_name="api", namespace="x509")),
+    url(r'^apibasic/', include('events.api.urls', app_name="api",
+        namespace="basic")),
     url(r'^options/', include('userprofile.urls')),
     url(r'^feeds/(?P<url>.*)/$', EventFeed()),
     url(r'^feeds/$', feedview, name="feeds"),
diff --git a/gracedb/events/api/__init__.py b/gracedb/events/api/__init__.py
new file mode 100644
index 000000000..e69de29bb
diff --git a/gracedb/events/throttles.py b/gracedb/events/api/throttles.py
similarity index 100%
rename from gracedb/events/throttles.py
rename to gracedb/events/api/throttles.py
diff --git a/gracedb/events/urls_rest.py b/gracedb/events/api/urls.py
similarity index 63%
rename from gracedb/events/urls_rest.py
rename to gracedb/events/api/urls.py
index 4c9f76766..016817ccf 100644
--- a/gracedb/events/urls_rest.py
+++ b/gracedb/events/api/urls.py
@@ -2,55 +2,35 @@
 # Changed for Django 1.11
 from django.conf.urls import url
 
-# rest_framework
-from .api import GracedbRoot
-from .api import EventList, EventDetail
-from .api import EventLogList, EventLogDetail
-from .api import EMBBEventLogList, EMBBEventLogDetail
-from .api import EMObservationList, EMObservationDetail
-#from .api import EMFootprintList, EMFootprintDetail
-from .api import TagList
-# from .api import TagDetail
-from .api import EventTagList, EventTagDetail
-from .api import EventLogTagList, EventLogTagDetail
-from .api import Files, FileMeta
-from .api import EventNeighbors, EventLabel
-from .api import PerformanceInfo
-from .api import EventPermissionList
-from .api import GroupEventPermissionList
-from .api import GroupEventPermissionDetail
-from .api import VOEventList, VOEventDetail
-from .api import OperatorSignoffList
-from .api import download as download_view
+from .views import * 
 
 urlpatterns = [
     url(r'^$', GracedbRoot.as_view(), name="api-root"),
 
     # Event Resources
     # events/[{graceid}[/{version}]]
-    url(r'events/$',
-        EventList.as_view(), name='event-list'),
-    url(r'events/(?P<graceid>[GEHMT]\d+)$',
-        EventDetail.as_view(), name='event-detail'),
+    url(r'events/$', EventList.as_view(), name='event-list'),
+    url(r'events/(?P<graceid>[GEHMT]\d+)$', EventDetail.as_view(),
+        name='event-detail'),
 
     # Event Log Resources
     # events/{graceid}/logs/[{logid}]
-    url(r'events/(?P<graceid>[GEHMT]\d+)/log/$',
-        EventLogList.as_view(), name='eventlog-list'),
+    url(r'events/(?P<graceid>[GEHMT]\d+)/log/$', EventLogList.as_view(),
+        name='eventlog-list'),
     url(r'events/(?P<graceid>[GEHMT]\d+)/log/(?P<n>\d+)$',
         EventLogDetail.as_view(), name='eventlog-detail'),
 
     # VOEvent Resources
     # events/{graceid}/voevent/[{serial_number}]
-    url(r'events/(?P<graceid>[GEHMT]\d+)/voevent/$',
-        VOEventList.as_view(), name='voevent-list'),
+    url(r'events/(?P<graceid>[GEHMT]\d+)/voevent/$', VOEventList.as_view(),
+        name='voevent-list'),
     url(r'events/(?P<graceid>[GEHMT]\d+)/voevent/(?P<n>\d+)$',
         VOEventDetail.as_view(), name='voevent-detail'),
 
     # EMBB Resources
     # events/{graceid}/logs/[{logid}]
-    url(r'events/(?P<graceid>[GEHMT]\d+)/embb/$',
-        EMBBEventLogList.as_view(), name='embbeventlog-list'),
+    url(r'events/(?P<graceid>[GEHMT]\d+)/embb/$', EMBBEventLogList.as_view(),
+        name='embbeventlog-list'),
     url(r'events/(?P<graceid>[GEHMT]\d+)/embb/(?P<n>\d+)$',
         EMBBEventLogDetail.as_view(), name='embbeventlog-detail'),
     url(r'events/(?P<graceid>[GEHMT]\d+)/emobservation/$',
@@ -65,10 +45,9 @@ urlpatterns = [
     # Tag Resources
     url(r'^tag/$', TagList.as_view(), name='tag-list'),
     # XXX unclear what the tag detail resource should be.
-    #url(r'^tag/(?P<tagname>.+)$', 
-    #    TagDetail.as_view(), name='tag-detail'),
-    url(r'events/(?P<graceid>[GEHMT]\d+)/tag/$',
-        EventTagList.as_view(), name='eventtag-list'),
+    #url(r'^tag/(?P<tagname>.+)$', TagDetail.as_view(), name='tag-detail'),
+    url(r'events/(?P<graceid>[GEHMT]\d+)/tag/$', EventTagList.as_view(),
+        name='eventtag-list'),
     url(r'events/(?P<graceid>[GEHMT]\d+)/tag/(?P<tagname>.+)$',
         EventTagDetail.as_view(), name='eventtag-detail'),
     url(r'events/(?P<graceid>[GEHMT]\d+)/log/(?P<n>\d+)/tag/$',
@@ -99,19 +78,17 @@ urlpatterns = [
 
     # Event Neighbors
     # events/{graceid}/neighbors/[?delta=(N|(N,N))]
-    url(r'^events/(?P<graceid>\w[\d]+)/neighbors/$',
-        EventNeighbors.as_view(), name="neighbors"),
+    url(r'^events/(?P<graceid>\w[\d]+)/neighbors/$', EventNeighbors.as_view(),
+        name="neighbors"),
 
     # Operator Signoff Resources
     url(r'events/(?P<graceid>[GEHMT]\d+)/signoff/$',
         OperatorSignoffList.as_view(), name='signoff-list'),
 
-
     # Performance stats
-    url(r'^performance/$', 
-        PerformanceInfo.as_view(), name='performance-info'),
+    url(r'^performance/$', PerformanceInfo.as_view(), name='performance-info'),
 
     # Legacy
-    #url(r'^events/(?P<graceid>\w[\d]+)/files/(?P<filename>.+)?$', 'download', name="files"),
-    url(r'^event/(?P<graceid>\w[\d]+)/files/(?P<filename>.+)?$', download_view, name="download2"),
+    url(r'^event/(?P<graceid>\w[\d]+)/files/(?P<filename>.+)?$', download,
+        name="download2"),
 ]
diff --git a/gracedb/events/api.py b/gracedb/events/api/views.py
similarity index 98%
rename from gracedb/events/api.py
rename to gracedb/events/api/views.py
index ecf5aed5c..376db95e0 100644
--- a/gracedb/events/api.py
+++ b/gracedb/events/api/views.py
@@ -7,49 +7,44 @@ from django.conf import settings
 from django.utils.functional import wraps
 from django.db import IntegrityError
 
-import json
-
 from django.contrib.auth.models import User, Permission
 from django.contrib.auth.models import Group as AuthGroup
 from django.contrib.contenttypes.models import ContentType
-from .models import Event, Group, Search, Pipeline, EventLog, Tag, Label
-from .models import EMGroup, EMBBEventLog, EMSPECTRUM
-#from .models import EMObservation, EMFootprint
-from .models import VOEvent
-from .view_logic import create_label, get_performance_info, delete_label
-from .view_logic import _createEventFromForm
-from .view_logic import create_eel
-from .view_logic import create_emobservation
-from .view_utils import eventToDict, eventLogToDict, labelToDict
-from .view_utils import embbEventLogToDict, voeventToDict
-from .view_utils import emObservationToDict, skymapViewerEMObservationToDict
-from .view_utils import signoffToDict
-from .view_utils import reverse
-
-from .translator import handle_uploaded_data
-from .forms import CreateEventForm
-from .permission_utils import user_has_perm, filter_events_for_user, is_external
-from .permission_utils import check_external_file_access
-from guardian.models import GroupObjectPermission
+
+from ..alert import issueAlertForUpdate
+from ..buildVOEvent import buildVOEvent, VOEventBuilderException
+from ..view_utils import BadFARRange, check_query_far_range
+from ..query import parseQuery, ParseException
+from ..models import Event, Group, Search, Pipeline, EventLog, Tag, Label, \
+    EMGroup, EMBBEventLog, EMSPECTRUM, VOEvent
+from ..view_logic import create_label, get_performance_info, delete_label, \
+    _createEventFromForm, create_eel, create_emobservation
+from ..view_utils import eventToDict, eventLogToDict, labelToDict, reverse, \
+    embbEventLogToDict, voeventToDict, emObservationToDict, signoffToDict, \
+    skymapViewerEMObservationToDict
+from ..forms import SimpleSearchForm
+from ..translator import handle_uploaded_data
+from ..forms import CreateEventForm
+from ..permission_utils import user_has_perm, filter_events_for_user, \
+    is_external, check_external_file_access
 
 from .throttles import EventCreationThrottle, AnnotationThrottle
 
-from .alert import issueAlertForUpdate
-from .buildVOEvent import buildVOEvent, VOEventBuilderException
+from core.vfile import VersionedFile
+
+from guardian.models import GroupObjectPermission
 
 import os
 import urllib
 import shutil
 import exceptions
+import json
 
-from core.vfile import VersionedFile
 
 import logging; logger = logging.getLogger(__name__)
 # 
 # for checking queries in the evnet that the user is external
 #
-from .view_utils import BadFARRange, check_query_far_range
-from .query import parseQuery, ParseException
 
 ##################################################################
 
@@ -73,7 +68,6 @@ from rest_framework.views import APIView
 
 MAX_FAILED_OPEN_ATTEMPTS = 5
 
-from .forms import SimpleSearchForm
 
 
 ##################################################################
diff --git a/gracedb/events/urls.py b/gracedb/events/urls.py
index 9cc42644a..4825c55f4 100644
--- a/gracedb/events/urls.py
+++ b/gracedb/events/urls.py
@@ -6,7 +6,7 @@ from django.conf.urls import url
 from . import views
 #import django.views.generic.list_detail
 
-from .api import download
+from .api.views import download
 
 urlpatterns = [
     url(r'^$', views.index, name="home-events"),
-- 
GitLab