/** * Update the specified resource in storage. * * @param int $id * @return Response */ public function update(Request $request) { // Validate the request... $updateAPI = ApiModel::where('uuid', $request->uuid)->update(['server_id' => $request->server_id, 'name' => $request->name, 'type' => $request->type, 'address' => $request->address]); return redirect("/apis"); }
/** * Execute the console command. * * @return mixed */ public function handle() { //Perintah untuk melakukan parsing $this->info('Sibankum API Parser is Running'); $this->info('mengambil data API dari database'); $this->info('======================='); $this->info(''); // Ambil data url address API dari database tabel api $apis = ApiModel::all(); $output = date("Y-m-d H:i:s") . "\n"; // loop row data api foreach ($apis as $api) { $url = $api['address']; $id = $api['id']; $instansi_id = $api->server->instansi_id; $output .= $url . "\n"; $db_last_modified = $api['last_modified']; $this->info(''); $this->info('Memeriksa file API di tujuan'); // Ambil data last modified dari remote file $last_modified = SibankumParser::curl_get_last_modified($url); // Tampilkan informasi last modified dari database dan dari remote file $output .= "Database Last Modified : " . $db_last_modified . "\n"; $this->info(''); $output .= "Remote File Last Modified : " . $last_modified . "\n"; $this->info(''); if ($last_modified === "Error") { $output .= "Error : unable retrieve remote file information" . "\n"; } else { // Jika http code 200 (OK) // Compare antara last modified di database dengan last modified remote file if ($db_last_modified === $last_modified) { $output .= "Do Nothing" . "\n"; } else { // Jika last modified berbeda, ambil data dari remote file lalu simpan di local $contents = SibankumParser::curl_get_data($url); Storage::disk('local')->append('sibankum/temp/api.csv', $contents); // Parsing file csv lokal $csvfile = storage_path() . '\\app\\sibankum\\temp\\api.csv'; // hapus dulu data yang didapat dari api lama dari database // $deletedRows = DataModel::where('api_id', '=', $id)->delete(); // Populasi table data dengan isi dari manifest api $csv = SibankumParser::importCSV($csvfile, $id, $instansi_id); $output .= $csv . "\n"; // Parsing file remote xls //$xlsfile = $url; //$xlslokal = storage_path().'\app\sibankum\temp\tutorial.xls'; //SibankumParser::downloadAPIFile($url, $xlslokal); // hapus dulu data yang didapat dari api lama dari database //$deletedRows = DataModel::where('api_id', '=', $id)->delete(); // Populasi table data dengan isi dari manifest api //$csv = SibankumParser::importCSV($xlslokal, $id); //$xls = SibankumParser::importXLS($xlslokal, $id); //$output .= $xls."\n"; // Update Last Modified menjadi sesuai dengan remote file $apidata = ApiModel::find($id); $apidata->last_modified = $last_modified; $apidata->save(); // hapus api.csv temporary file Storage::delete('sibankum/temp/api.csv'); $output .= "Do Something" . "\n"; } } $output .= "=======================" . "\n"; } Storage::disk('local')->append('sibankum/logs/' . date('Y') . '/' . date('m') . '/' . date('d') . '-parser.log', $output); return $output; }