rm: schedule add: custom date in artisan comand csvExport:generate con check date
This commit is contained in:
parent
3866a225ec
commit
3ced4077bf
2 changed files with 36 additions and 45 deletions
99
app/Console/Commands/csvExport.php
Normal file
99
app/Console/Commands/csvExport.php
Normal file
|
@ -0,0 +1,99 @@
|
|||
<?php
|
||||
|
||||
namespace App\Console\Commands;
|
||||
|
||||
use App\Http\Controllers\GiteaApiController\GiteaExport;
|
||||
use DateTime;
|
||||
use Illuminate\Console\Command;
|
||||
use InvalidArgumentException;
|
||||
|
||||
class csvExport extends Command
|
||||
{
|
||||
/**
|
||||
* The name and signature of the console command.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $signature = 'csvExport:generate {firstDay?} {lastDay?}';
|
||||
|
||||
/**
|
||||
* The console command description.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $description = 'Export in stringa del csv con integrazione di nextcloud e invio email.';
|
||||
|
||||
/**
|
||||
* Create a new command instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
function checkDateValid($stringDate){
|
||||
$d = DateTime::createFromFormat('Y-m-d', $stringDate);
|
||||
if($d){
|
||||
$d = $d->format('Y-m-d');
|
||||
return $d && $d == $stringDate;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function checkInputDates(){
|
||||
$firstDay = $this->argument('firstDay');
|
||||
$lastDay = $this->argument('lastDay');
|
||||
try{
|
||||
if( $firstDay !== null && $lastDay !== null){
|
||||
$this->info('Rilevate date richieste, controllo la correttezza del formato.');
|
||||
if(!$this->checkDateValid($firstDay)) throw new InvalidArgumentException('Formato della prima data errata o data inesistente, formato richiesto Y-m-t, data fornita '. $firstDay);
|
||||
if(!$this->checkDateValid($lastDay)) throw new InvalidArgumentException('Formato della seconda data errata o data inesistente, formato richiesto Y-m-t, data fornita '. $lastDay);
|
||||
$this->info('Le date richieste sono correte.');
|
||||
return true;
|
||||
}
|
||||
} catch (\InvalidArgumentException $e){
|
||||
throw new InvalidArgumentException($e->getMessage());
|
||||
}
|
||||
$this->info('Non sono state rilevate date custom');
|
||||
return true;
|
||||
}
|
||||
/**
|
||||
* Execute the console command.
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function handle()
|
||||
{
|
||||
// Write your script logic here
|
||||
$this->info('Inizio esecuzione.');
|
||||
$this->info('Controllo se sono state inserite date custom.');
|
||||
$this->checkInputDates();
|
||||
$firstDay = $this->argument('firstDay') ? $this->argument('firstDay') : date('Y-m-01'); // First day of the current month;
|
||||
$lastDay = $this->argument('lastDay') ? $this->argument('lastDay') : date('Y-m-t'); // Last day of the current month;
|
||||
$this->info('Export da ' . $firstDay .' a '. $lastDay );
|
||||
$calculate_agent_cost = true;
|
||||
$third_party_integrations_allow = true;
|
||||
$third_party_integrations_nextcloud = true;
|
||||
$third_party_integrations_open_project = false;
|
||||
$email_send_allow = true;
|
||||
$this->info(
|
||||
'Le seguenti opzioni sono attive '
|
||||
. ' calculate_agent_cost '. $calculate_agent_cost . '\n'
|
||||
. ' third_party_integrations_allow '. $third_party_integrations_allow . '\n'
|
||||
. ' third_party_integrations_nextcloud '. $third_party_integrations_nextcloud . '\n'
|
||||
. ' third_party_integrations_open_project '. $third_party_integrations_open_project . '\n'
|
||||
. ' email_send_allow '. $email_send_allow . '\n'
|
||||
);
|
||||
$gitea_export = new GiteaExport(
|
||||
$calculate_agent_cost,
|
||||
$third_party_integrations_allow,
|
||||
$third_party_integrations_nextcloud,
|
||||
$third_party_integrations_open_project,
|
||||
$email_send_allow,
|
||||
);
|
||||
$gitea_export->export_issues($firstDay, $lastDay, ['state' => 'closed']);
|
||||
return Command::SUCCESS;
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue