Rename address:merge to address:purge, included merging file/echo subscriptions, updated web subscription cannot add echos to deleted ftns
This commit is contained in:
@@ -2,21 +2,24 @@
|
||||
|
||||
namespace App\Console\Commands;
|
||||
|
||||
use App\Models\Address;
|
||||
use Illuminate\Console\Command;
|
||||
use Illuminate\Database\QueryException;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class AddressPurge extends Command
|
||||
use App\Models\Address;
|
||||
|
||||
class AddressMerge extends Command
|
||||
{
|
||||
/**
|
||||
* The name and signature of the console command.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $signature = 'address:purge'
|
||||
protected $signature = 'address:merge'
|
||||
.' {src : Source Address}'
|
||||
.' {dst : Destination Address}'
|
||||
.' {--f|force : Force}'
|
||||
.' {--F|force : Force}'
|
||||
.' {--I|ignore : Ignore different BBSes}'
|
||||
.' {--d|dryrun : Dry Run}';
|
||||
|
||||
/**
|
||||
@@ -36,12 +39,12 @@ class AddressPurge extends Command
|
||||
$src = Address::withTrashed()->findOrfail($this->argument('src'));
|
||||
$dst = Address::withTrashed()->findOrfail($this->argument('dst'));
|
||||
|
||||
if (($src->system_id !== $dst->system_id) && ($src->system->name !== 'Discovered System')) {
|
||||
if ((! $this->option('ignore')) && ($src->system_id !== $dst->system_id) && ($src->system->name !== 'Discovered System')) {
|
||||
$this->error(sprintf('FTN addresses are from different systems (%s/%s)',$src->system->name,$dst->system->name));
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if (! $this->option('force') && ($src->ftn !== $dst->ftn)) {
|
||||
if ((! $this->option('force')) && ($src->ftn !== $dst->ftn)) {
|
||||
$this->error(sprintf('FTN addresses are not the same (%s:%s)',$src->ftn,$dst->ftn));
|
||||
exit(1);
|
||||
}
|
||||
@@ -85,6 +88,29 @@ class AddressPurge extends Command
|
||||
$x = DB::update('update files set fftn_id=? where fftn_id=?',[$dst->id,$src->id]);
|
||||
$this->info(sprintf('Updated [%d] file source records',$x));
|
||||
|
||||
// Resubscribe echoareas
|
||||
try {
|
||||
$x = DB::update('update address_echoarea set address_id=? where address_id=?',[$dst->id,$src->id]);
|
||||
|
||||
} catch (QueryException $e) {
|
||||
DB::rollback();
|
||||
$this->error(sprintf('You may need to remove %s:%s (%d) from echoareas',$src->ftn,$src->system->name,$src->id));
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$this->info(sprintf('Updated [%d] echomail subscription records',$x));
|
||||
|
||||
// Resubscribe fileareas
|
||||
try {
|
||||
$x = DB::update('update address_filearea set address_id=? where address_id=?',[$dst->id,$src->id]);
|
||||
} catch (QueryException $e) {
|
||||
DB::rollback();
|
||||
$this->error(sprintf('You may need to remove %s:%s (%d) from fileareas',$src->ftn,$src->system->name,$src->id));
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$this->info(sprintf('Updated [%d] filearea subscription records',$x));
|
||||
|
||||
if ($this->option('dryrun')) {
|
||||
$this->warn(sprintf('NOT deleting [%s] - DRY RUN',$src->ftn));
|
||||
DB::rollBack();
|
Reference in New Issue
Block a user