51 lines
1.7 KiB
Python
51 lines
1.7 KiB
Python
from django.contrib.auth.decorators import permission_required
|
|
from rest_framework import routers, viewsets
|
|
from django.urls import re_path
|
|
from rest_framework.decorators import api_view, permission_classes
|
|
from rest_framework.permissions import IsAuthenticated
|
|
from rest_framework.response import Response
|
|
|
|
from notifications.models import MessageTemplate, UserNotificationChannel
|
|
from rest_framework import serializers
|
|
|
|
from notifications.templates import TEMPLATE_VARS
|
|
from authentication.serializers import UserSerializer
|
|
|
|
|
|
class MessageTemplateSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = MessageTemplate
|
|
fields = '__all__'
|
|
|
|
|
|
class UserNotificationChannelSerializer(serializers.ModelSerializer):
|
|
user = UserSerializer()
|
|
|
|
class Meta:
|
|
model = UserNotificationChannel
|
|
fields = '__all__'
|
|
|
|
|
|
class MessageTemplateViewSet(viewsets.ModelViewSet):
|
|
serializer_class = MessageTemplateSerializer
|
|
queryset = MessageTemplate.objects.all()
|
|
|
|
|
|
class UserNotificationChannelViewSet(viewsets.ModelViewSet):
|
|
serializer_class = UserNotificationChannelSerializer
|
|
queryset = UserNotificationChannel.objects.all()
|
|
|
|
|
|
@api_view(['GET'])
|
|
@permission_classes([IsAuthenticated])
|
|
@permission_required('tickets.add_issuethread_manual', raise_exception=True) # TDOO: change this permission
|
|
def get_template_vars(self):
|
|
return Response(TEMPLATE_VARS, status=200)
|
|
|
|
|
|
router = routers.SimpleRouter()
|
|
router.register(r'message_templates', MessageTemplateViewSet)
|
|
router.register(r'user_notification_channels', UserNotificationChannelViewSet)
|
|
urlpatterns = ([
|
|
re_path('message_template_variables', get_template_vars),
|
|
] + router.urls)
|