79 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| namespace App\Console\Commands;
 | |
| 
 | |
| use Illuminate\Console\Command;
 | |
| 
 | |
| use function Termwind\ask;
 | |
| use function Termwind\render;
 | |
| use function Termwind\style;
 | |
| 
 | |
| class NotifyDemo extends Command
 | |
| {
 | |
|     /**
 | |
|      * The name and signature of the console command.
 | |
|      *
 | |
|      * @var string
 | |
|      */
 | |
|     protected $signature = 'app:demo-notify {channel?}';
 | |
| 
 | |
|     /**
 | |
|      * The console command description.
 | |
|      *
 | |
|      * @var string
 | |
|      */
 | |
|     protected $description = 'Send a demo notification, to a given channel. Run to see options.';
 | |
| 
 | |
|     /**
 | |
|      * Execute the console command.
 | |
|      */
 | |
|     public function handle()
 | |
|     {
 | |
|         $channel = $this->argument('channel');
 | |
| 
 | |
|         if (blank($channel)) {
 | |
|             $this->showHelp();
 | |
| 
 | |
|             return;
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     private function showHelp()
 | |
|     {
 | |
|         style('coolify')->color('#9333EA');
 | |
|         style('title-box')->apply('mt-1 px-2 py-1 bg-coolify');
 | |
| 
 | |
|         render(
 | |
|             <<<'HTML'
 | |
|         <div>
 | |
|             <div class="title-box">
 | |
|                 Coolify
 | |
|             </div>
 | |
|             <p class="mt-1 ml-1 ">
 | |
|               Demo Notify <strong class="text-coolify">=></strong> Send a demo notification to a given channel.
 | |
|             </p>
 | |
|             <p class="px-1 mt-1 ml-1 bg-coolify">
 | |
|               php artisan app:demo-notify {channel}
 | |
|             </p>
 | |
|             <div class="my-1">
 | |
|                 <div class="text-yellow-500"> Channels: </div>
 | |
|                 <ul class="text-coolify">
 | |
|                     <li>email</li>
 | |
|                     <li>discord</li>
 | |
|                     <li>telegram</li>
 | |
|                     <li>slack</li>
 | |
|                     <li>pushover</li>
 | |
|                 </ul>
 | |
|             </div>
 | |
|         </div>
 | |
|         HTML
 | |
|         );
 | |
| 
 | |
|         ask(<<<'HTML'
 | |
|         <div class="mr-1">
 | |
|             In which manner you wish a <strong class="text-coolify">coolified</strong> notification?
 | |
|         </div>
 | |
|         HTML, ['email', 'discord', 'telegram', 'slack', 'pushover']);
 | |
|     }
 | |
| }
 | 
