146 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			PHP
		
	
	
			
		
		
	
	
			146 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			PHP
		
	
	
<?php
 | 
						|
 | 
						|
namespace App\Http\Controllers\Api;
 | 
						|
 | 
						|
use App\Http\Controllers\Controller;
 | 
						|
use Illuminate\Http\Request;
 | 
						|
use Illuminate\Support\Facades\Http;
 | 
						|
use App\Models\Master\Provinsi;
 | 
						|
use App\Models\Master\Kabupaten;
 | 
						|
use App\Models\Master\Kecamatan;
 | 
						|
use App\Models\Master\Sekolah;
 | 
						|
use App\Models\Master\MasterTingkatSekolah;
 | 
						|
 | 
						|
class ApiController extends Controller
 | 
						|
{
 | 
						|
    public function getProvince()
 | 
						|
    {
 | 
						|
            $curl = curl_init();
 | 
						|
            curl_setopt_array($curl, array(
 | 
						|
              CURLOPT_URL => 'https://dapo.dikdasmen.go.id/rekap/dataSekolah?id_level_wilayah=0&kode_wilayah=000000&semester_id=20242',
 | 
						|
              CURLOPT_RETURNTRANSFER    => true,
 | 
						|
              CURLOPT_ENCODING          => '',
 | 
						|
              CURLOPT_MAXREDIRS         => 10,
 | 
						|
              CURLOPT_TIMEOUT           => 0,
 | 
						|
              CURLOPT_FOLLOWLOCATION    => true,
 | 
						|
              CURLOPT_HTTP_VERSION      => CURL_HTTP_VERSION_1_1,
 | 
						|
              CURLOPT_CUSTOMREQUEST     => 'GET',
 | 
						|
            ));
 | 
						|
 | 
						|
            $response = curl_exec($curl);
 | 
						|
 | 
						|
            curl_close($curl);
 | 
						|
 | 
						|
            $data   = json_decode($response);
 | 
						|
            $_data  = [];
 | 
						|
            foreach($data as $k => $val){
 | 
						|
                $_data = Provinsi::updateOrCreate([
 | 
						|
                    'kode_wilayah' => str_replace(' ', '', $val->kode_wilayah)
 | 
						|
                ],[
 | 
						|
                    'name' => str_replace('Prov. ','',$val->nama),
 | 
						|
                    'kode_wilayah' => str_replace(' ', '', $val->kode_wilayah),
 | 
						|
                ]);
 | 
						|
            }
 | 
						|
 | 
						|
            echo "-- DONE --";
 | 
						|
       
 | 
						|
    }
 | 
						|
 | 
						|
    public function getKabupaten()
 | 
						|
    {
 | 
						|
        $prov = Provinsi::where('kode_wilayah','010000')->first();
 | 
						|
        $curl = curl_init();
 | 
						|
        curl_setopt_array($curl, array(
 | 
						|
          CURLOPT_URL => 'https://dapo.dikdasmen.go.id/rekap/dataSekolah?id_level_wilayah=1&kode_wilayah=010000&semester_id=20242',
 | 
						|
          CURLOPT_RETURNTRANSFER  => true,
 | 
						|
          CURLOPT_ENCODING        => '',
 | 
						|
          CURLOPT_MAXREDIRS       => 10,
 | 
						|
          CURLOPT_TIMEOUT         => 0,
 | 
						|
          CURLOPT_FOLLOWLOCATION  => true,
 | 
						|
          CURLOPT_HTTP_VERSION    => CURL_HTTP_VERSION_1_1,
 | 
						|
          CURLOPT_CUSTOMREQUEST   => 'GET',
 | 
						|
        ));
 | 
						|
 | 
						|
        $response = curl_exec($curl);
 | 
						|
 | 
						|
        curl_close($curl);
 | 
						|
        $data   = json_decode($response);
 | 
						|
            $_data  = [];
 | 
						|
 | 
						|
            
 | 
						|
            foreach($data as $k => $val){
 | 
						|
                $_data = Kabupaten::updateOrCreate([
 | 
						|
                    'kode_wilayah'      => str_replace(' ', '', $val->kode_wilayah),
 | 
						|
                ],[
 | 
						|
                    'ms_provinsi_id'    => $prov->MsProvinsiId,
 | 
						|
                    'name'              => str_replace('Kab. ','',$val->nama),
 | 
						|
                    'kode_wilayah'      => str_replace(' ', '', $val->kode_wilayah),
 | 
						|
                ]);
 | 
						|
            }
 | 
						|
 | 
						|
            echo "-- DONE --";
 | 
						|
 | 
						|
    }
 | 
						|
 | 
						|
    public function getKecamatan()
 | 
						|
    {
 | 
						|
        //get kabupaten jakarta
 | 
						|
        $prov = Provinsi::where('kode_wilayah','010000')->first();
 | 
						|
        $kab = Kabupaten::where('ms_provinsi_id',$prov->MsProvinsiId)->get();
 | 
						|
        foreach($kab as $data){
 | 
						|
            $response = Http::timeout(300)->withoutVerifying()->get('https://dapo.dikdasmen.go.id/rekap/dataSekolah?id_level_wilayah=2&kode_wilayah='.$data->kode_wilayah.'&semester_id=20242');   
 | 
						|
 | 
						|
            $kec = json_decode($response->body());
 | 
						|
            foreach($kec as $val){
 | 
						|
                $_data = Kecamatan::updateOrCreate([
 | 
						|
                    'kode_wilayah'      => str_replace(' ', '', $val->kode_wilayah),
 | 
						|
                ],[
 | 
						|
                    'ms_provinsi_id'    => $prov->MsProvinsiId,
 | 
						|
                    'ms_kabupaten_id'   => $data->MsKabupatenId,
 | 
						|
                    'name'              => str_replace('Kec. ','',$val->nama),
 | 
						|
                    'kode_wilayah'      => str_replace(' ', '', $val->kode_wilayah),
 | 
						|
                ]);
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        echo "-- DONE --";
 | 
						|
    }
 | 
						|
 | 
						|
    public function getSekolah()
 | 
						|
    {
 | 
						|
 | 
						|
        $type = request()->type;
 | 
						|
 | 
						|
        $level = MasterTingkatSekolah::where('name',strtoupper($type))->first();
 | 
						|
        //get kabupaten jakarta
 | 
						|
        $prov = Provinsi::where('kode_wilayah','010000')->first();
 | 
						|
        $kab = Kabupaten::where('ms_provinsi_id',$prov->MsProvinsiId)->get();
 | 
						|
        foreach($kab as $data){
 | 
						|
            $kec = Kecamatan::where('ms_kabupaten_id',$data->MsKabupatenId)->get();
 | 
						|
 | 
						|
            foreach($kec as $dataKec){
 | 
						|
                $response = Http::timeout(300)->withoutVerifying()->get('https://dapo.dikdasmen.go.id/rekap/progresSP?id_level_wilayah=3&kode_wilayah='.$dataKec->kode_wilayah.'&semester_id=20242&bentuk_pendidikan_id='.$type); 
 | 
						|
 | 
						|
                $dataSekolah = json_decode($response->body());
 | 
						|
 | 
						|
                foreach($dataSekolah as $val){
 | 
						|
                    $_data = Sekolah::updateOrCreate([
 | 
						|
                        'npsn'                      => $val->npsn,
 | 
						|
                    ],[
 | 
						|
                        'ms_provinsi_id'               => $prov->MsProvinsiId,
 | 
						|
                        'ms_kabupaten_id'              => $data->MsKabupatenId,
 | 
						|
                        'ms_kecamatan_id'              => $dataKec->MsKecamatanId,
 | 
						|
                        'ms_tingkat_sekolah_id'     => $level->MsTingkatSekolahId,    
 | 
						|
                        'status'                    => $val->status_sekolah,
 | 
						|
                        'nama_sekolah'              => $val->nama,
 | 
						|
                        'npsn'                      => $val->npsn,
 | 
						|
                    ]);
 | 
						|
                }
 | 
						|
            }
 | 
						|
            
 | 
						|
        }
 | 
						|
 | 
						|
        echo "-- DONE --";
 | 
						|
    }
 | 
						|
}
 |