Skip to content

Commit 9a9a7f0

Browse files
committed
Add swagger docs
Signed-off-by: Kipchirchir Sigei <[email protected]>
1 parent cb2c06e commit 9a9a7f0

File tree

6 files changed

+17
-8
lines changed

6 files changed

+17
-8
lines changed

onadata/apps/api/viewsets/open_data_viewset.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -312,7 +312,7 @@ def destroy(self, request, *args, **kwargs):
312312
return Response(status=status.HTTP_204_NO_CONTENT)
313313

314314
@action(methods=["GET"], detail=True)
315-
def schema(self, request, **kwargs):
315+
def open_data_schema(self, request, **kwargs):
316316
"""Tableau schema - headers and table alias."""
317317
# pylint: disable=attribute-defined-outside-init
318318
self.object = self.get_object()

onadata/apps/api/viewsets/v2/tableau_viewset.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -351,7 +351,7 @@ def get_tableau_table_schemas(self) -> List[dict]:
351351
return ret
352352

353353
@action(methods=["GET"], detail=True)
354-
def schema(self, request, **kwargs):
354+
def open_data_schema(self, request, **kwargs):
355355
# pylint: disable=attribute-defined-outside-init
356356
self.object = self.get_object()
357357
if isinstance(self.object.content_object, XForm):

onadata/apps/main/urls.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
# enable the admin:
1212
from django.contrib import admin
1313
from django.contrib.staticfiles import views as staticfiles_views
14-
from django.urls import include, re_path
14+
from django.urls import include, re_path, path
1515
from django.views.generic import RedirectView
1616

1717
from onadata.apps import sms_support
@@ -32,11 +32,19 @@
3232
from onadata.apps.viewer import views as viewer_views
3333
from onadata.libs.utils.analytics import init_analytics
3434

35+
from drf_spectacular.views import SpectacularAPIView, SpectacularRedocView, SpectacularSwaggerView, SpectacularJSONAPIView
36+
3537
TESTING = len(sys.argv) > 1 and sys.argv[1] == "test"
3638

3739
admin.autodiscover()
3840

3941
urlpatterns = [
42+
path('schema/', SpectacularAPIView.as_view(), name='schema'),
43+
path('schema/ui/', SpectacularSwaggerView.as_view(url_name='schema'), name='swagger-ui'),
44+
path('schema/redoc/', SpectacularRedocView.as_view(), name='redoc'),
45+
path('schema/json/', SpectacularJSONAPIView.as_view(), name='schema-json'),
46+
path('schema/yaml/', SpectacularAPIView.as_view(), name='schema-yaml'),
47+
4048
# change Language
4149
re_path(r"^i18n/", include(i18n)),
4250
re_path("^api/v1/", include(api_v1_router.urls)),

onadata/apps/messaging/serializers.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ def to_representation(self, value):
3232
"""
3333
Get the model from ContentType object
3434
"""
35-
return value.model
35+
return value
3636

3737

3838
class MessageSerializer(serializers.ModelSerializer):

onadata/libs/filters.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ class XFormListObjectPermissionFilter(AnonDjangoObjectPermissionFilter):
108108
perm_format = "%(app_label)s.report_%(model_name)s"
109109

110110

111-
class XFormListXFormPKFilter:
111+
class XFormListXFormPKFilter(filters.BaseFilterBackend):
112112
"""Filter forms via 'xform_pk' param."""
113113

114114
def filter_queryset(self, request, queryset, view):
@@ -761,7 +761,7 @@ def filter_queryset(self, request, queryset, view):
761761

762762

763763
# pylint: disable=too-few-public-methods
764-
class PublicDatasetsFilter:
764+
class PublicDatasetsFilter(filters.BaseFilterBackend):
765765
"""Public data set filter where the share attribute is True"""
766766

767767
# pylint: disable=unused-argument

onadata/libs/mixins/anonymous_user_public_forms_mixin.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ def _get_public_forms_queryset(self):
1919

2020
def get_queryset(self):
2121
"""Public forms only for anonymous Users."""
22-
if self.request and self.request.user.is_anonymous:
23-
return self._get_public_forms_queryset()
22+
if hasattr(self, 'request'):
23+
if self.request and self.request.user.is_anonymous:
24+
return self._get_public_forms_queryset()
2425

2526
return super().get_queryset()

0 commit comments

Comments
 (0)