GUS API skrypty użytkowe

Skrypt php po stronie backendu

public function getFromGus()
{
  if( $this->request->is('ajax') )
  {
    $gus = new GusApi('abcde12345abcde12345', 'dev');
    $input = $this->request->input('json_decode');
    $nip = filter_var($input->nip, FILTER_SANITIZE_STRING );
    $gusResults = [];
    if($nip) {
      try {
    $gus->login();
    $gusReports = $gus->getByNip($nip);

    foreach ($gusReports as $ind => $gusReport) {
      $nr_domu = $gusReport->getPropertyNumber() ? $gusReport->getPropertyNumber() : '';
      $nr_lokalu = $gusReport->getApartmentNumber() ? $gusReport->getApartmentNumber() : '';
      $separator = $nr_domu && $nr_lokalu ? '/' : '';

      $gusResults[$ind]['name'] = $gusReport->getName();
      $gusResults[$ind]['street'] = $gusReport->getStreet();
      $gusResults[$ind]['number'] = $nr_domu . $separator . $nr_lokalu;
      $gusResults[$ind]['zip'] = $gusReport->getZipCode();
      $gusResults[$ind]['city'] = $gusReport->getCity();
    }
      $result = $gusResults;
      } catch (InvalidUserKeyException $e) {
        $result = ['error' => 'Błędny klucz użytkownika'];
      } catch (NotFoundException $e) {
        $result = ['error' => $gus->getResultSearchMessage()]; 
      }
    }
    $this->set('result', $result); 
    $this->set('_serialize', 'result'); 
  }
}

Skrypt Ajax – reakcja po naciśnięciu przycisku „POBIERZ DANE Z GUS”

let enterFields = function(resp){
    if(resp.error) {
        alert('Błędne dane');
        console.error(resp.error);
        return;
    }
    var adres = resp[0].street + " / " + resp[0].number;
    $('#nazwa-klienta').val(resp[0].name);
    $('#kod-klienta').val(resp[0].zip);
    $('#miasto-klienta').val(resp[0].city);
    $('#adres-klienta').val(adres);
    $('#gus-button').remove();
};

let getDataFromGus = function(nip){
    var url = '/companies/get-from-gus.json';
    var data = JSON.stringify({nip});
    $.ajax({
        url     : url,
        data    : data,
        dataType: 'json',
        type    : 'post',
        success : function(resp){ enterFields(resp); },
        error   : function(e){ console.error(e.message);}
    });
};

Przycisk generowany przez JS

let showGusButton = function(nip){
    var gusButton = $('<button type="button" id="gus-button" class="btn btn-success btn-block">POBIERZ DANE Z GUS</button>');
    $(gusButton).on('click', function(){ getDataFromGus(nip); });
    $('.cname-error').append(gusButton);
};

Dodaj komentarz