first(); $current_time = Carbon::now()->toDateTimeString(); $response = json_decode( file_get_contents('php://input') ); if( isset($response->Data->ParsedResult)){ $data = $response->Data; } else{ Mail::to('matthew@shillam.me.uk') ->send(new BackupDebug($client, $response)); return response()->json(['error' => 'A Problem with the data provided from Duplicati!'], 403); } $schedule = Schedule::updateOrCreate( ['client_id' => $client_id, 'name' => $schedule_name], ['last_backup_status' => $data->ParsedResult, 'last_backup_time' => $current_time] ); // Create Backup DB entry $backup = Backup::Create(array( 'schedule_id' => $schedule->id, 'schedule_name' => $schedule_name, 'status' => $data->ParsedResult, 'deleted_files' => $data->DeletedFiles, 'deleted_folders' => $data->DeletedFolders, 'modified_files' => $data->ModifiedFiles, 'examined_files' => $data->ExaminedFiles, 'opened_files' => $data->OpenedFiles, 'added_files' => $data->AddedFiles, 'size_of_modified_files' => $data->SizeOfModifiedFiles, 'size_of_added_files' => $data->SizeOfAddedFiles, 'size_of_examined_files' => $data->SizeOfExaminedFiles, 'size_of_opened_files' => $data->SizeOfOpenedFiles, 'not_processed_files' => $data->NotProcessedFiles, 'added_folders' => $data->AddedFolders, 'too_large_files' => $data->TooLargeFiles, 'files_with_error' => $data->FilesWithError, 'modified_folders' => $data->ModifiedFolders, 'modified_symlinks' => $data->ModifiedSymlinks, 'added_symlinks' => $data->AddedSymlinks, 'deleted_symlinks' => $data->DeletedSymlinks, 'partial_backup' => $data->PartialBackup, 'dryrun' => $data->Dryrun, 'main_operation' => $data->MainOperation, 'started_at' => date("Y-m-d\ G:i:s",strtotime($data->BeginTime)), 'finished_at' => date("Y-m-d\ G:i:s",strtotime($data->EndTime)), 'duration' => $data->Duration, 'version' => $data->Version )); /** * notify client by email */ if($backup->status == "Success") { Mail::to('reports@mydentalbackup.co.uk') ->send(new BackupSuccess($backup, $client)); } elseif($backup->status == "Warning") { Mail::to('reports@mydentalbackup.co.uk') ->send(new BackupWarning($backup, $client)); } elseif($backup->status == "Error") { Mail::to('reports@mydentalbackup.co.uk') ->send(new BackupError($backup, $client)); } else{ Mail::to('matthew@shillam.me.uk') ->send(new BackupDebug($client, $response)); return response()->json(['error' => 'A Problem with the data provided from Duplicati!'], 403); } } /** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { // } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { // } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { // } }