146 lines
4.7 KiB
PHP
146 lines
4.7 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\API\v1;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use Illuminate\Support\Facades\Mail;
|
|
use Illuminate\Http\Request;
|
|
use App\Mail\BackupWarning;
|
|
use App\Mail\BackupSuccess;
|
|
use App\Mail\BackupError;
|
|
use Carbon\Carbon;
|
|
use App\Schedule;
|
|
use App\Backup;
|
|
use App\Client;
|
|
|
|
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)
|
|
{
|
|
$data = parse_duplicati_message($request['message']);
|
|
$current_time = Carbon::now()->toDateTimeString();
|
|
$begin_time = parse_duplicati_time($data['BeginTime']);
|
|
$end_time = parse_duplicati_time($data['EndTime']);
|
|
|
|
$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' => $begin_time,
|
|
'finished_at' => $end_time,
|
|
'duration' => $data['Duration'],
|
|
'version' => $data['Version']
|
|
));
|
|
|
|
// notify client by email.
|
|
$client = Client::where('id', '=', $client_id)->first();
|
|
|
|
if($backup->status == "Success")
|
|
{
|
|
Mail::to($client->email)
|
|
->cc(['matthew@shillam.me.uk','j.kendrick@dentalsupportuk.com'])
|
|
->send(new BackupSuccess($backup));
|
|
}
|
|
elseif($backup->status == "Warning")
|
|
{
|
|
Mail::to($client->email)
|
|
->cc(['matthew@shillam.me.uk','j.kendrick@dentalsupportuk.com'])
|
|
->send(new BackupWarning($backup));
|
|
}
|
|
elseif($backup->status == "Error")
|
|
{
|
|
Mail::to($client->email)
|
|
->cc(['matthew@shillam.me.uk','j.kendrick@dentalsupportuk.com'])
|
|
->send(new BackupError($backup));
|
|
}
|
|
else{
|
|
Mail::to('matthew@shillam.me.uk')
|
|
->send(new BackupError($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)
|
|
{
|
|
//
|
|
}
|
|
}
|