diff --git a/api/__init__.py b/api/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/api/admin.py b/api/admin.py new file mode 100644 index 00000000..8c38f3f3 --- /dev/null +++ b/api/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/api/migrations/__init__.py b/api/migrations/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/api/models.py b/api/models.py new file mode 100644 index 00000000..71a83623 --- /dev/null +++ b/api/models.py @@ -0,0 +1,3 @@ +from django.db import models + +# Create your models here. diff --git a/api/tests.py b/api/tests.py new file mode 100644 index 00000000..7ce503c2 --- /dev/null +++ b/api/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/api/urls.py b/api/urls.py new file mode 100644 index 00000000..353775fa --- /dev/null +++ b/api/urls.py @@ -0,0 +1,16 @@ +from django.conf.urls import url, include + +from api.views import * +from rest_framework import routers + +# Router config +router = routers.DefaultRouter() + +urlpatterns = [ + + # API + url(r'^', include(router.urls)), + url(r'^login/', include('rest_framework.urls', namespace='rest_framework')), + url(r'^markdown$', RenderMarkdown, name='api_markdown'), + +] \ No newline at end of file diff --git a/api/views/__init__.py b/api/views/__init__.py new file mode 100644 index 00000000..d4036221 --- /dev/null +++ b/api/views/__init__.py @@ -0,0 +1,2 @@ +from .api import * +from .serializers import * \ No newline at end of file diff --git a/api/views/api.py b/api/views/api.py new file mode 100644 index 00000000..8e99c3b3 --- /dev/null +++ b/api/views/api.py @@ -0,0 +1,13 @@ +from rest_framework.response import Response +from rest_framework.decorators import api_view + +from core.templatetags.renderer import markdown + + +@api_view(['GET']) +def RenderMarkdown(request): + """ + Render Markdown + """ + if request.method == 'GET': + return Response(markdown(request.GET['text'])) diff --git a/api/views/serializers.py b/api/views/serializers.py new file mode 100644 index 00000000..236cd38b --- /dev/null +++ b/api/views/serializers.py @@ -0,0 +1 @@ +from rest_framework import serializers diff --git a/core/urls.py b/core/urls.py index d7b2ff99..5b7a7cb3 100644 --- a/core/urls.py +++ b/core/urls.py @@ -39,7 +39,4 @@ urlpatterns = [ url(r'^page/(?P[a-z0-9/-_]*)/rev/(?P[0-9]+)/', PageRevView.as_view(), name='page_rev'), url(r'^page/(?P[a-z0-9/-_]*)/$', PageView.as_view(), name='page'), - # API - url(r'^api/markdown$', render_markdown, name='api_markdown'), ] - diff --git a/core/views/__init__.py b/core/views/__init__.py index 8aacaa16..420e5c1d 100644 --- a/core/views/__init__.py +++ b/core/views/__init__.py @@ -100,5 +100,3 @@ from .user import * from .page import * from .site import * from .group import * -from .api import * - diff --git a/core/views/api.py b/core/views/api.py deleted file mode 100644 index ad082b23..00000000 --- a/core/views/api.py +++ /dev/null @@ -1,5 +0,0 @@ -from core.templatetags.renderer import markdown -from django.http import HttpResponse - -def render_markdown(request): - return HttpResponse(markdown(request.GET['text'])) diff --git a/requirements.txt b/requirements.txt index 9a948359..5b2c3451 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,3 +5,4 @@ mistune django-jinja pyopenssl pytz +djangorestframework diff --git a/sith/settings_sample.py b/sith/settings_sample.py index 7bf0c5b0..955748ef 100644 --- a/sith/settings_sample.py +++ b/sith/settings_sample.py @@ -51,6 +51,7 @@ INSTALLED_APPS = ( 'counter', 'eboutic', 'launderette', + 'rest_framework', 'api', ) diff --git a/sith/urls.py b/sith/urls.py index 39cd5245..445115b6 100644 --- a/sith/urls.py +++ b/sith/urls.py @@ -29,5 +29,6 @@ urlpatterns = [ url(r'^accounting/', include('accounting.urls', namespace="accounting", app_name="accounting")), url(r'^eboutic/', include('eboutic.urls', namespace="eboutic", app_name="eboutic")), url(r'^launderette/', include('launderette.urls', namespace="launderette", app_name="launderette")), + url(r'^api/', include('api.urls', namespace="api", app_name="api")), url(r'^admin/', include(admin.site.urls)), ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) # TODO: remove me for production!!!