production-taskbar / backend / links / views.py
views.py
Raw
from django.shortcuts import get_object_or_404
from rest_framework.decorators import api_view
from rest_framework.request import Request
from rest_framework.response import Response
from taskbar.models import Workplace

from .serializers import (ProcessSerializer, SourceSerializer,
                          SubProcessSerializer)


@api_view(['GET'])
def sourve_view(request: Request, hostname: str) -> Response:
    workplace = get_object_or_404(Workplace, hostname=hostname)
    process = ProcessSerializer(workplace.process.all(), many=True).data
    sub_process = SubProcessSerializer(workplace.sub_process.all(),
                                       many=True).data
    sources_data = SourceSerializer(workplace.sources.all(), many=True).data
    no_process = {'id': 0, 'name': 'NO_PROCESS', 'sources': sources_data}
    process.extend(sub_process)    #type: ignore
    process.append(no_process)    #type: ignore
    return Response(process, 200)