Your IP : 216.73.216.165


Current Path : /var/www/nsr_sok/current/src/Controller/
Upload File :
Current File : /var/www/nsr_sok/current/src/Controller/SokController.php

<?php

namespace App\Controller;

use App\Repository\EnhetRepository;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Contracts\HttpClient\HttpClientInterface;

class SokController extends AbstractController
{
    /**
     * @Route("/sok/{searchText}", name="sok")
     */
    public function index(string $searchText, EnhetRepository $enhetRepository): Response
    {
        $result = $enhetRepository->findByName($searchText);

        return new JsonResponse($result);
//        return $this->json(
//           $result
//        );
    }

    /**
     * @Route("/enhet/{orgNr}", name="enhet")
     */
    public function enhet(string $orgNr, EnhetRepository $enhetRepository, HttpClientInterface $client): Response
    {
        $testOrgnr = [
            "956326500"=>["OrgNr"=> "956326500","KommuneNavn"=> "Osp","ErSkole"=>true, "Navn"=>"Hassel barneskole","Leder"=>"Testrektor Prøvesen","PersonEpost"=> "testrektor@testskole.testkommune.no", "Besoksadresse"=>["Adress"=>"Testveien 1", "Postnr"=>"1234", "Poststed"=>"Hassel", "Land"=>"Norge"]],
            "856326502"=>["OrgNr"=> "856326502","KommuneNavn"=> "Osp","ErSkole"=>false,"Navn"=>"Osp kommune","Besoksadresse"=>["Adress"=>"Ospveien 1", "Postnr"=>"4321", "Poststed"=>"Osp", "Land"=>"Norge"]],
        ];


        if (array_key_exists($orgNr, $testOrgnr)) {
            return $this->json(
                $testOrgnr[$orgNr]
            );
        }

        $response = $client->request(
            'GET',
            'https://data-nsr.udir.no/enhet/'.$orgNr,
            [
                'headers' => [
                    'Accept' => 'application/json'
                ]
            ]);
$raw = $response->getContent(false); // do not throw on invalid JSON
$info = $response->getInfo();

error_log("NSR enhet response status={$response->getStatusCode()} orgNr={$orgNr}");
error_log("NSR enhet headers: " . json_encode($info['response_headers'] ?? []));
error_log("NSR enhet raw (first 500): " . substr($raw, 0, 500));

	$data = $response->getStatusCode() == 200 ?  $data = $response->toArray() : null;


        //return new JsonResponse($result);
        return new JsonResponse(
            $data
        );
    }
}