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 --";
|
|
}
|
|
}
|