132 lines
4.3 KiB
PHP
132 lines
4.3 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\API\v1;
|
|
|
|
use Illuminate\Http\Request;
|
|
use App\Http\Controllers\Controller;
|
|
use App\Schedule;
|
|
use App\Backup;
|
|
use Carbon\Carbon;
|
|
|
|
class BackupController extends Controller
|
|
{
|
|
/**
|
|
* Display a listing of the resource.
|
|
*
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
public function test()
|
|
{
|
|
$created_at = Backup::all()-> pluck('created_at');
|
|
return $created_at;
|
|
}
|
|
|
|
/**
|
|
* Store a newly created resource in storage.
|
|
*
|
|
* @param \Illuminate\Http\Request $request
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
public function store($client_id, $schedule_name, Request $request)
|
|
{
|
|
$message = preg_replace('/:\s+/', '=', $request['message']);
|
|
$message = preg_replace('/(?<=\d)\s+(?=\d)/', '-', $message);
|
|
$message = preg_replace('/\s+\(/', '(', $message);
|
|
$message = preg_replace('/\s+/', '&', $message);
|
|
parse_str($message, $data);
|
|
|
|
$schedule = Schedule::updateOrCreate(
|
|
['client_id' => $client_id, 'name' => $schedule_name],
|
|
['last_backup_status' => $data['ParsedResult']]
|
|
);
|
|
|
|
// $schedule = Schedule::firstOrNew(array(
|
|
// 'client_id' => $client_id,
|
|
// 'name' => $schedule_name,
|
|
// ));
|
|
|
|
// $schedule->last_backup_status = $data['ParsedResult'];
|
|
// $schedule->save();
|
|
|
|
// Sort out timestamps from $message
|
|
|
|
$begin_time = str_after($data['BeginTime'], '(');
|
|
$begin_time = str_before($begin_time, ')');
|
|
$begin_time = Carbon::createFromTimestamp($begin_time)->toDateTimeString();
|
|
$end_time = str_after($data['EndTime'], '(');
|
|
$end_time = str_before($end_time, ')');
|
|
$end_time = Carbon::createFromTimestamp($end_time)->toDateTimeString();
|
|
|
|
|
|
// 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' => $begin_time,
|
|
'finished_at' => $end_time,
|
|
'duration' => $data['Duration'],
|
|
'version' => $data['Version']
|
|
));
|
|
|
|
return $backup;
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* 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)
|
|
{
|
|
//
|
|
}
|
|
}
|