|
5
|
1 <?php
|
|
|
2
|
|
|
3 namespace Wizzard\MagicForger\Generator\Requests;
|
|
|
4
|
|
|
5 use Symfony\Component\Console\Attribute\AsCommand;
|
|
|
6 use Symfony\Component\Console\Input\InputInterface;
|
|
|
7 use Symfony\Component\Console\Input\InputOption;
|
|
|
8 use Symfony\Component\Console\Output\OutputInterface;
|
|
|
9 use Wizzard\MagicForger\Generator\BaseGenerator;
|
|
|
10 use Illuminate\Support\Str;
|
|
|
11
|
|
|
12 #[AsCommand(name: 'mf:request')]
|
|
|
13 class RequestGenerator extends BaseGenerator
|
|
|
14 {
|
|
|
15 /**
|
|
|
16 * The name and signature of the console command.
|
|
|
17 *
|
|
|
18 * @var string
|
|
|
19 */
|
|
|
20 protected $name = 'mf:request';
|
|
|
21
|
|
|
22 /**
|
|
|
23 * The console command description.
|
|
|
24 *
|
|
|
25 * @var string
|
|
|
26 */
|
|
|
27 protected $description = 'Generates the Request File for a table.';
|
|
|
28
|
|
|
29 /**
|
|
|
30 * The type of class being generated.
|
|
|
31 *
|
|
|
32 * @var string
|
|
|
33 */
|
|
|
34 protected $type = 'Request';
|
|
|
35
|
|
|
36 /**
|
|
|
37 * Execute the console command.
|
|
|
38 */
|
|
|
39 public function handle()
|
|
|
40 {
|
|
|
41 // First we need to ensure that the table exists, then we can
|
|
|
42 if (!$this->tableExists($this->getTableInput())) {
|
|
|
43 $this->components->error('The table: "'.$this->getTableInput().'" does not exist in the database.');
|
|
|
44
|
|
|
45 return false;
|
|
|
46 }
|
|
|
47
|
|
|
48 if ($this->option('all')) {
|
|
|
49 $this->input->setOption('store_request', true);
|
|
|
50 $this->input->setOption('update_request', true);
|
|
|
51 }
|
|
|
52
|
|
|
53 if ($this->option('store_request')) {
|
|
|
54 $this->createStoreRequest();
|
|
|
55 }
|
|
|
56
|
|
|
57 if ($this->option('update_request')) {
|
|
|
58 $this->createUpdateRequest();
|
|
|
59 }
|
|
|
60 }
|
|
|
61
|
|
|
62 /**
|
|
|
63 * Get the console command options.
|
|
|
64 *
|
|
|
65 * @return array
|
|
|
66 */
|
|
|
67 protected function getOptions()
|
|
|
68 {
|
|
|
69 return array_merge(parent::getOptions(), [
|
|
|
70 ['all', 'a', InputOption::VALUE_NONE, 'Generate all request classes for the table.'],
|
|
|
71 ['store_request', 's', InputOption::VALUE_NONE, 'Generate store request class for the table.'],
|
|
|
72 ['update_request', 'u', InputOption::VALUE_NONE, 'Generate update request class for the table.'],
|
|
|
73 ]);
|
|
|
74 }
|
|
|
75
|
|
|
76 /**
|
|
|
77 * Interact further with the user if they were prompted for missing arguments.
|
|
|
78 *
|
|
|
79 * @return void
|
|
|
80 */
|
|
|
81 protected function afterPromptingForMissingArguments(InputInterface $input, OutputInterface $output)
|
|
|
82 {
|
|
|
83 }
|
|
|
84 /**
|
|
|
85 * Get the stub file for the generator.
|
|
|
86 *
|
|
|
87 * @return string
|
|
|
88 */
|
|
|
89 protected function getStub()
|
|
|
90 {
|
|
|
91 }
|
|
|
92
|
|
|
93 protected function createStoreRequest()
|
|
|
94 {
|
|
|
95 $this->call('mf:store_request', ['table' => $this->getTableInput()]);
|
|
|
96 }
|
|
|
97
|
|
|
98 protected function createUpdateRequest()
|
|
|
99 {
|
|
|
100 $this->call('mf:update_request', ['table' => $this->getTableInput()]);
|
|
|
101 }
|
|
|
102
|
|
|
103 }
|