Files
apimacro/app/Services/ProductLogger.php
paoloar77 5514de2f82 aa
2024-06-17 15:33:19 +02:00

95 lines
2.5 KiB
PHP

<?php
namespace App\Services;
use Carbon\Carbon;
use App\Setting;
use App\Article;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Mail;
use App\Mylog;
class ProductLogger
{
public $logs = [];
protected $settingOra;
protected $aggiornato = false;
public function __construct($settingOraValue)
{
$this->settingOra = $settingOraValue;
$this->init();
}
public function init()
{
$oraUpdate = Carbon::now();
if ($this->settingOra) {
$this->logs['start'] = 'Inizio da ' . $this->settingOra . "\n<br>";
$this->logs['end'] = 'Fino a ' . $oraUpdate->toDateTimeString() . "\n<br>";
} else {
$this->logs['start'] = 'Iniziato: ' . $oraUpdate->toDateTimeString() . "\n<br>";
}
$this->logs['inserted'] = 'PRODOTTI INSERITI' . "\n<br>";
$this->logs['not_inserted'] = 'EVENTUALI PRODOTTI NON INSERITI' . "\n<br>";
$this->logs['updated'] = 'PRODOTTI AGGIORNATI' . "\n<br>";
$this->logs['server_issues'] = 'PRODOTTI NON INSERITI PER PROBLEMI SERVER' . "\n<br>";
$this->logs['pre_order'] = 'PRODOTTI IN PREVENDITA' . "\n<br>";
$this->logs['custom'] = ""; // for custom log messages
}
public function updateSettingOra($newOra)
{
$this->settingOra = $newOra;
}
public function setLogandSendEmail()
{
if ($this->settingOra) {
$this->settingOra->save();
}
if ($this->aggiornato) {
Log::channel('updateproducts')->notice($this->concatenateLogs());
Mail::raw($this->concatenateLogs(), function ($message) {
if (!$this->settingOra) {
$titolo = "Inserim. prodotto:";
} else {
$titolo = "Inserim. nuovi prodotti";
}
$message->to(Mylog::getEmail());
$message->subject(Mylog::getSubjectEmail($titolo));
});
}
}
public function addLog($type, $message)
{
if (isset($this->logs[$type])) {
$this->logs[$type] .= $message . "\n<br>";
}
}
public function getLogs()
{
return $this->logs;
}
public function concatenateLogs()
{
return implode("", $this->logs);
}
public function setAggiornato($aggiornato)
{
$this->aggiornato = $aggiornato;
}
public function getAggiornato()
{
return $this->aggiornato;
}
}