UnisKB/apps/dataset/views/file.py

47 lines
1.8 KiB
Python
Raw Normal View History

2024-07-05 11:02:20 +00:00
# coding=utf-8
"""
@project: maxkb
@Author
@file image.py
@date2024/4/22 16:23
@desc:
"""
from drf_yasg import openapi
from drf_yasg.utils import swagger_auto_schema
from rest_framework.decorators import action
from rest_framework.parsers import MultiPartParser
from rest_framework.views import APIView
from rest_framework.views import Request
from common.auth import TokenAuth
2025-03-17 05:40:23 +00:00
from common.log.log import log
2024-07-05 11:02:20 +00:00
from common.response import result
from dataset.serializers.file_serializers import FileSerializer
2025-01-13 08:38:28 +00:00
from django.utils.translation import gettext_lazy as _
2024-07-05 11:02:20 +00:00
class FileView(APIView):
authentication_classes = [TokenAuth]
parser_classes = [MultiPartParser]
@action(methods=['POST'], detail=False)
2025-01-14 02:37:00 +00:00
@swagger_auto_schema(operation_summary=_('Upload file'),
2025-01-13 08:38:28 +00:00
operation_id=_('Upload file'),
2024-07-05 11:02:20 +00:00
manual_parameters=[openapi.Parameter(name='file',
in_=openapi.IN_FORM,
type=openapi.TYPE_FILE,
required=True,
2025-01-13 08:38:28 +00:00
description=_('Upload file'))],
tags=[_('file')])
@log(menu='file', operate='Upload file')
2024-07-05 11:02:20 +00:00
def post(self, request: Request):
return result.success(FileSerializer(data={'file': request.FILES.get('file')}).upload())
class Operate(APIView):
@action(methods=['GET'], detail=False)
2025-01-13 08:38:28 +00:00
@swagger_auto_schema(operation_summary=_('Get file'),
operation_id=_('Get file'),
tags=[_('file')])
2024-07-05 11:02:20 +00:00
def get(self, request: Request, file_id: str):
return FileSerializer.Operate(data={'id': file_id}).get()