from ares_util.ares import call_ares from django.http import HttpRequest, HttpResponse from django.shortcuts import render, redirect from django.urls import reverse from . import models, forms def build_address(street: str, zip_code: int | str, city: str, city_part: str) -> str: return f"{street}, {zip_code}, {city} - {city_part}" def main_page(req: HttpRequest) -> HttpResponse: subjects = models.Subject.objects.all() return render(req, "subjects/index.html", dict(subjects=subjects)) def create_subject(req: HttpRequest) -> HttpResponse: if req.method == "POST": form = forms.CreateSubjectForm(data=req.POST) if not form.is_valid(): return render(req, "subjects/create.html", dict(form=form)) ares_data = call_ares(form.cleaned_data.get("cin")) ares_address_data = ares_data["address"] ares_legal_data = ares_data["legal"] models.Subject.objects.create( id=ares_legal_data["company_id"], vat_id=ares_legal_data["company_vat_id"], name=ares_legal_data["company_name"], street=ares_address_data["street"], zip_code=ares_address_data["zip_code"], city=ares_address_data["city"], city_part=ares_address_data["city_part"], ) return redirect(reverse("subjects:list")) elif req.method == "GET": form = forms.CreateSubjectForm() return render(req, "subjects/create.html", dict(form=form)) return HttpResponse(status=405)