<?php
namespace App\Listeners;
use App\Events\DeploymentStep1;
use App\Events\DeploymentStep2;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Mpociot\Blacksmith\Blacksmith;
class AddWeb2Server implements ShouldQueue
{
use InteractsWithQueue;
/**
* Create the event listener.
*
* @return void
*/
public function __construct()
{
$blacksmith = new Blacksmith(env('FORGE_EMAIL'), env('FORGE_PASSWORD'));
$this->blacksmith = $blacksmith;
}
/**
* Handle the event.
*
* @param DeploymentStep1 $event
* @return void
*/
public function handle(DeploymentStep1 $event)
{
$provider = $event->provider;
$sitename = parse_url($provider->domain, PHP_URL_HOST);
$server = $this->blacksmith->getActiveServers()->first();
#$addSite = $server->addSite($sitename, $project_type = 'php', $directory = '/public', $wildcards = false);
$addSite = true;
// Check if addSite has been created
if ($addSite && $provider->status == 2)
{
#$provider->server_site_id = $addSite->id;
$provider->status = 3;
$provider->save();
session(['provider_status' => $provider->status]);
#event(new DeploymentStep2($provider))->delay(60);
// wait 1 minute for execution of job
event(new DeploymentStep2($provider))->delay(Carbon::now()->addSeconds(60));
}
}
}