def METHOD_NAME(self, request):
    """
    List Files
    Filter files with query parameters,
    """
    serializer = FileQuerySerializer(data=request.GET)
    if serializer.is_valid(raise_exception=True):
        name = serializer.validated_data.get("name")
        file_type = serializer.validated_data.get("type")
        organization = serializer.validated_data.get("organization")
        page = serializer.validated_data.get("page")
        per_page = serializer.validated_data.get("per_page")
        if organization is not None and not request.user.is_operator:
            raise PermissionDenied
        query_filter = {}
        if name:
            query_filter.update({"name__icontains": name})
        if file_type:
            query_filter.update({"type": file_type})
        if organization:
            query_filter.update({"organization": organization})
        files = File.objects.filter(**query_filter)
        p = Paginator(files, per_page)
        files = p.page(page)
        files = [
            {
                "id": str(file.id),
                "name": file.name,
                "type": file.type,
                "url": request.build_absolute_uri(file.file.url),
                "organization": file.organization.id,
            }
            for file in files
        ]
        response = FileListSerializer(
            data={"data": files, "total": p.count}
        )
        if response.is_valid(raise_exception=True):
            return Response(
                response.validated_data, status=status.HTTP_200_OK
            )