vbv/server/vbv_lernwelt/api/directory.py

28 lines
1002 B
Python

from rest_framework.decorators import api_view, permission_classes
from rest_framework.permissions import IsAuthenticated
from rest_framework.response import Response
from vbv_lernwelt.core.models import Organisation
from vbv_lernwelt.core.serializers import OrganisationSerializer
from vbv_lernwelt.shop.models import Country
from vbv_lernwelt.shop.serializers import CountrySerializer
@api_view(["GET"])
@permission_classes([IsAuthenticated])
def list_entities(request):
language_code = request.LANGUAGE_CODE if request.LANGUAGE_CODE else "de"
field_mapping = {
"de": "name_de",
"fr": "name_fr",
"it": "name_it",
}
field_name = field_mapping.get(language_code, field_mapping["de"])
organisations = OrganisationSerializer(
Organisation.objects.all().order_by(field_name), many=True
).data
countries = CountrySerializer(Country.objects.all(), many=True).data
return Response({"organisations": organisations, "countries": countries})