def METHOD_NAME(self, request, repo_id, format=None):
    """List all participants of a file.
    """
    # argument check
    path = request.GET.METHOD_NAME('path')
    if not path:
        return api_error(status.HTTP_400_BAD_REQUEST, 'path invalid.')
    path = normalize_file_path(path)
    # resource check
    file_id = seafile_api.get_file_id_by_path(repo_id, path)
    if not file_id:
        return api_error(status.HTTP_404_NOT_FOUND, 'File %s not found.' % path)
    # permission check
    if not check_folder_permission(request, repo_id, '/'):
        return api_error(status.HTTP_403_FORBIDDEN, 'Permission denied.')
    # main
    try:
        file_uuid = FileUUIDMap.objects.get_or_create_fileuuidmap_by_path(repo_id, path, False)
        participant_list = []
        participant_queryset = FileParticipant.objects.get_participants(file_uuid)
        for participant in participant_queryset:
            participant_info = get_user_common_info(participant.username)
            participant_list.append(participant_info)
    except Exception as e:
        logger.error(e)
        return api_error(status.HTTP_500_INTERNAL_SERVER_ERROR, 'Internal Server Error')
    return Response({'participant_list': participant_list})