add api session_detail_api

Brightcells %!s(int64=9) %!d(string=hace) años
padre
commit
e0ba30f506
Se han modificado 3 ficheros con 25 adiciones y 0 borrados
  1. 4 0
      api/urls.py
  2. 10 0
      photo/models.py
  3. 11 0
      photo/views.py

+ 4 - 0
api/urls.py

@@ -15,3 +15,7 @@ urlpatterns += [
15 15
     url(r'^uuid$', photo_views.uuid, name='uuid'),
16 16
     url(r'^photos/upload$', photo_views.upload_photo, name='upload_photo'),
17 17
 ]
18
+
19
+urlpatterns += [
20
+    url(r'^s/(?P<session>\w+)$', photo_views.session_detail_api, name='session_detail_api'),
21
+]

+ 10 - 0
photo/models.py

@@ -71,4 +71,14 @@ class PhotosInfo(CreateUpdateMixin):
71 71
             'photo': self.photo_id,
72 72
         }
73 73
 
74
+    def _detail(self):
75
+        return {
76
+            'pk': self.pk,
77
+            'user': self.lensman_id,
78
+            'session': self.session_id,
79
+            'photo': self.photo_id,
80
+            'photo_url': self.p_photo_url,
81
+        }
82
+
74 83
     data = property(_data)
84
+    detail = property(_detail)

+ 11 - 0
photo/views.py

@@ -113,6 +113,17 @@ def upload_photo(request):
113 113
     })
114 114
 
115 115
 
116
+def session_detail_api(request, session):
117
+    photos = PhotosInfo.objects.filter(session_id=session)
118
+    return JsonResponse({
119
+        'status': 200,
120
+        'data': {
121
+            'count': photos.count(),
122
+            'photos': [p.detail for p in photos]
123
+        }
124
+    })
125
+
126
+
116 127
 def session_detail(request, session):
117 128
     photos = PhotosInfo.objects.filter(session_id=session)
118 129
     return render(request, 'photo/session_detail.html', {'photos': photos})