Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 4 additions & 13 deletions apps/application/api/application_api_key.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from drf_spectacular.types import OpenApiTypes
from drf_spectacular.utils import OpenApiParameter

from application.serializers.application_access_token import ApiKeyEnableEditSerializer
from application.serializers.application_access_token import ApiKeyEnableSerializer
from application.serializers.application_api_key import EditApplicationKeySerializer, ApplicationKeySerializerModel
from common.mixins.api_mixin import APIMixin
from common.result import ResultSerializer
Expand All @@ -19,7 +19,7 @@ def get_data(self):

class ApiKeyEnableResult(ResultSerializer):
def get_data(self):
return ApiKeyEnableEditSerializer()
return ApiKeyEnableSerializer()


class ApplicationKeyAPI(APIMixin):
Expand Down Expand Up @@ -72,20 +72,11 @@ def get_request():
class Enable(APIMixin):
@staticmethod
def get_parameters():
return [
*ApplicationKeyAPI.get_parameters(),
OpenApiParameter(
name="enable_api_key",
description="是否启用 api key 访问应用",
type=OpenApiTypes.BOOL,
location="query",
required=True,
),
]
return []

@staticmethod
def get_request():
return None
return ApiKeyEnableSerializer

@staticmethod
def get_response():
Expand Down
15 changes: 4 additions & 11 deletions apps/application/serializers/application_access_token.py
Original file line number Diff line number Diff line change
Expand Up @@ -136,14 +136,10 @@ def one(self, with_valid=True):
}


class ApiKeyEnableEditSerializer(serializers.Serializer):
application_id = serializers.UUIDField(required=True, label=_("Application ID"))
enable_api_key = serializers.BooleanField(required=True, label=_("Enable API key"))


class ApiKeyEnableSerializer(serializers.Serializer):
workspace_id = serializers.CharField(required=False, allow_null=True, allow_blank=True, label=_("Workspace ID"))
application_id = serializers.UUIDField(required=True, label=_("Application ID"))
enable_api_key = serializers.BooleanField(required=True, label=_("Enable API key"))

def is_valid(self, *, raise_exception=False):
super().is_valid(raise_exception=True)
Expand All @@ -154,12 +150,8 @@ def is_valid(self, *, raise_exception=False):
if not query_set.exists():
raise AppApiException(500, _("Application id does not exist"))

def edit(self, instance):
def edit(self):
self.is_valid(raise_exception=True)
enable_api_key_serializer = ApiKeyEnableEditSerializer(
data={**instance, "application_id": self.data.get("application_id")}
)
enable_api_key_serializer.is_valid(raise_exception=True)
application_access_token = (
QuerySet(ApplicationAccessToken).filter(application_id=self.data.get("application_id")).first()
)
Expand All @@ -169,9 +161,10 @@ def edit(self, instance):
access_token=hashlib.md5(str(uuid.uuid7()).encode()).hexdigest()[8:24],
is_active=True,
)
application_access_token.enable_api_key = enable_api_key_serializer.validated_data.get("enable_api_key")
application_access_token.enable_api_key = self.validated_data.get("enable_api_key")
application_access_token.save()
return {
"workspace_id": self.validated_data.get("workspace_id"),
"application_id": application_access_token.application_id,
"enable_api_key": application_access_token.enable_api_key,
}
8 changes: 4 additions & 4 deletions apps/application/views/application_api_key.py
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,7 @@ class ApplicationApiKeyEnable(APIView):
summary=_("Enable or disable application API key access"),
operation_id=_("Enable or disable application API key access"), # type: ignore
parameters=ApplicationKeyAPI.Enable.get_parameters(),
request=None,
request=ApplicationKeyAPI.Enable.get_request(),
responses=ApplicationKeyAPI.Enable.get_response(),
tags=[_("Application Api Key")], # type: ignore
)
Expand All @@ -190,7 +190,7 @@ class ApplicationApiKeyEnable(APIView):
)
def put(self, request: Request, workspace_id: str, application_id: str):
return result.success(
ApiKeyEnableSerializer(data={"workspace_id": workspace_id, "application_id": application_id}).edit(
request.query_params.dict()
)
ApiKeyEnableSerializer(
data={**request.data, "workspace_id": workspace_id, "application_id": application_id}
).edit()
)
Loading