Send notification when server is created for user
This commit is contained in:
parent
a115c71433
commit
c989dd0cc2
3 changed files with 71 additions and 17 deletions
|
@ -57,7 +57,7 @@ class AccountCreated extends Notification implements ShouldQueue
|
|||
*/
|
||||
public function via($notifiable)
|
||||
{
|
||||
return ['mail', 'database'];
|
||||
return ['mail'];
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -74,17 +74,4 @@ class AccountCreated extends Notification implements ShouldQueue
|
|||
->action('Setup Your Account', url('/auth/password/reset/' . $this->token . '?email=' . $notifiable->email));
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the array representation of the notification.
|
||||
*
|
||||
* @param mixed $notifiable
|
||||
* @return array
|
||||
*/
|
||||
public function toArray($notifiable)
|
||||
{
|
||||
return [
|
||||
'email' => $notifiable->email,
|
||||
'token' => $this->token
|
||||
];
|
||||
}
|
||||
}
|
||||
|
|
56
app/Notifications/ServerCreated.php
Normal file
56
app/Notifications/ServerCreated.php
Normal file
|
@ -0,0 +1,56 @@
|
|||
<?php
|
||||
|
||||
namespace Pterodactyl\Notifications;
|
||||
|
||||
use Illuminate\Bus\Queueable;
|
||||
use Illuminate\Notifications\Notification;
|
||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||
use Illuminate\Notifications\Messages\MailMessage;
|
||||
|
||||
class ServerCreated extends Notification implements ShouldQueue
|
||||
{
|
||||
use Queueable;
|
||||
|
||||
public $server;
|
||||
|
||||
/**
|
||||
* Create a new notification instance.
|
||||
*
|
||||
* @param array $server
|
||||
* @return void
|
||||
*/
|
||||
public function __construct(array $server)
|
||||
{
|
||||
$this->server = (object) $server;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the notification's delivery channels.
|
||||
*
|
||||
* @param mixed $notifiable
|
||||
* @return array
|
||||
*/
|
||||
public function via($notifiable)
|
||||
{
|
||||
return ['mail'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the mail representation of the notification.
|
||||
*
|
||||
* @param mixed $notifiable
|
||||
* @return \Illuminate\Notifications\Messages\MailMessage
|
||||
*/
|
||||
public function toMail($notifiable)
|
||||
{
|
||||
return (new MailMessage)
|
||||
->line('A new server as been assigned to your account.')
|
||||
->line('Server Name: ' . $this->server->name)
|
||||
->line('Memory: ' . $this->server->memory . ' MB')
|
||||
->line('Node: ' . $this->server->node)
|
||||
->line('Type: ' . $this->server->service . ' - ' . $this->server->option)
|
||||
->action('Peel Off the Protective Wrap', route('server.index', $this->server->uuidShort))
|
||||
->line('Please let us know if you have any additional questions or concerns!');
|
||||
}
|
||||
|
||||
}
|
|
@ -32,6 +32,7 @@ use Log;
|
|||
use Pterodactyl\Models;
|
||||
use Pterodactyl\Services\UuidService;
|
||||
use Pterodactyl\Services\DeploymentService;
|
||||
use Pterodactyl\Notifications\ServerCreated;
|
||||
|
||||
use Pterodactyl\Exceptions\DisplayException;
|
||||
use Pterodactyl\Exceptions\AccountNotFoundException;
|
||||
|
@ -113,9 +114,9 @@ class ServerRepository
|
|||
}
|
||||
|
||||
if (is_int($data['owner'])) {
|
||||
$user = Models\User::select('id')->where('id', $data['owner'])->first();
|
||||
$user = Models\User::select('id', 'email')->where('id', $data['owner'])->first();
|
||||
} else {
|
||||
$user = Models\User::select('id')->where('email', $data['owner'])->first();
|
||||
$user = Models\User::select('id', 'email')->where('email', $data['owner'])->first();
|
||||
}
|
||||
|
||||
if (!$user) {
|
||||
|
@ -229,7 +230,7 @@ class ServerRepository
|
|||
// Add Server to the Database
|
||||
$server = new Models\Server;
|
||||
$genUuid = $uuid->generate('servers', 'uuid');
|
||||
$genShortUuid = $uuid->generateShort('servers', 'uuidShort', $generatedUuid);
|
||||
$genShortUuid = $uuid->generateShort('servers', 'uuidShort', $genUuid);
|
||||
$server->fill([
|
||||
'uuid' => $genUuid,
|
||||
'uuidShort' => $genShortUuid,
|
||||
|
@ -274,6 +275,16 @@ class ServerRepository
|
|||
]);
|
||||
}
|
||||
|
||||
// Queue Notification Email
|
||||
$user->notify((new ServerCreated([
|
||||
'name' => $server->name,
|
||||
'memory' => $server->memory,
|
||||
'node' => $node->name,
|
||||
'service' => $service->name,
|
||||
'option' => $option->name,
|
||||
'uuidShort' => $server->uuidShort
|
||||
])));
|
||||
|
||||
$client = Models\Node::guzzleRequest($node->id);
|
||||
$client->request('POST', '/servers', [
|
||||
'headers' => [
|
||||
|
|
Loading…
Reference in a new issue