UnisKB/apps/setting/views/system_setting.py

59 lines
2.6 KiB
Python
Raw Normal View History

2024-03-19 12:38:28 +00:00
# coding=utf-8
"""
@project: maxkb
@Author
@file system_setting.py
@date2024/3/19 16:01
@desc:
"""
from drf_yasg.utils import swagger_auto_schema
from rest_framework.decorators import action
from rest_framework.request import Request
from rest_framework.views import APIView
from common.auth import TokenAuth, has_permissions
2024-03-21 06:49:21 +00:00
from common.constants.permission_constants import RoleConstants
2024-03-19 12:38:28 +00:00
from common.response import result
from setting.serializers.system_setting import SystemSettingSerializer
from setting.swagger_api.system_setting import SystemSettingEmailApi
2025-01-13 03:15:51 +00:00
from django.utils.translation import gettext_lazy as _
2024-03-19 12:38:28 +00:00
class SystemSetting(APIView):
class Email(APIView):
authentication_classes = [TokenAuth]
@action(methods=['PUT'], detail=False)
2025-01-13 03:15:51 +00:00
@swagger_auto_schema(operation_summary=_('Create or update email settings'),
operation_id=_('Create or update email settings'),
request_body=SystemSettingEmailApi.get_request_body_api(), tags=[_('Email settings')],
2024-03-19 12:38:28 +00:00
responses=result.get_api_response(SystemSettingEmailApi.get_response_body_api()))
@has_permissions(RoleConstants.ADMIN)
def put(self, request: Request):
return result.success(
SystemSettingSerializer.EmailSerializer.Create(
data=request.data).update_or_save())
@action(methods=['POST'], detail=False)
2025-01-13 03:15:51 +00:00
@swagger_auto_schema(operation_summary=_('Test email settings'),
operation_id=_('Test email settings'),
2024-03-19 12:38:28 +00:00
request_body=SystemSettingEmailApi.get_request_body_api(),
responses=result.get_default_response(),
2025-01-13 03:15:51 +00:00
tags=[_('Email settings')])
2024-03-19 12:38:28 +00:00
@has_permissions(RoleConstants.ADMIN)
def post(self, request: Request):
return result.success(
SystemSettingSerializer.EmailSerializer.Create(
data=request.data).is_valid())
@action(methods=['GET'], detail=False)
2025-01-13 03:15:51 +00:00
@swagger_auto_schema(operation_summary=_('Get email settings'),
operation_id=_('Get email settings'),
2024-03-19 12:38:28 +00:00
responses=result.get_api_response(SystemSettingEmailApi.get_response_body_api()),
2025-01-13 03:15:51 +00:00
tags=[_('Email settings')])
2024-03-19 12:38:28 +00:00
@has_permissions(RoleConstants.ADMIN)
def get(self, request: Request):
return result.success(
SystemSettingSerializer.EmailSerializer.one())