def METHOD_NAME(self, request, projectid):
    project_obj = Project.objects.get(id=projectid)
    check_supported_regarding_owner_account(project_obj)
    if not project_obj.project_filename:
        raise exceptions.NoQGISProjectError()
    # Check if active packaging job already exists
    # TODO: !!!!!!!!!!!! cache results for some minutes
    query = Q(project=project_obj) & (
        Q(status=PackageJob.Status.PENDING)
        | Q(status=PackageJob.Status.QUEUED)
        | Q(status=PackageJob.Status.STARTED)
    )
    # NOTE uncomment to enforce job creation
    # PackageJob.objects.filter(query).delete()
    if not project_obj.needs_repackaging:
        export_job = (
            PackageJob.objects.filter(status=PackageJob.Status.FINISHED)
            .filter(project=project_obj)
            .latest("started_at")
        )
        if export_job:
            serializer = serializers.ExportJobSerializer(export_job)
            return Response(serializer.data)
    if PackageJob.objects.filter(query).exists():
        serializer = serializers.ExportJobSerializer(PackageJob.objects.get(query))
        return Response(serializer.data)
    export_job = PackageJob.objects.create(
        project=project_obj, created_by=self.request.user
    )
    # TODO: check if user is allowed otherwise ERROR 403
    serializer = serializers.ExportJobSerializer(export_job)
    return Response(serializer.data)