| Current Path : /var/www/nsr_sok/current/src/Controller/ |
| 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
);
}
}