diff --git a/app/Notifications/AccountCreated.php b/app/Notifications/AccountCreated.php index d3566db42..806aa9408 100644 --- a/app/Notifications/AccountCreated.php +++ b/app/Notifications/AccountCreated.php @@ -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 - ]; - } } diff --git a/app/Notifications/ServerCreated.php b/app/Notifications/ServerCreated.php new file mode 100644 index 000000000..3d2b21344 --- /dev/null +++ b/app/Notifications/ServerCreated.php @@ -0,0 +1,56 @@ +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!'); + } + +} diff --git a/app/Repositories/ServerRepository.php b/app/Repositories/ServerRepository.php index 0b8d5d791..477ff8e0e 100644 --- a/app/Repositories/ServerRepository.php +++ b/app/Repositories/ServerRepository.php @@ -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' => [