sekolah_adiwiyata/app/Http/Controllers/Api/ApiController.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 --";
}
}