From 2dc7893eb3dfc52843cdabf8b4f280fadc41ed77 Mon Sep 17 00:00:00 2001 From: KKlochko Date: Wed, 14 Jun 2023 16:28:48 +0300 Subject: [PATCH] Added Company model, resource and its API. --- .../Controllers/API/v2/CompanyController.php | 71 +++++++++++++++++++ app/Http/Requests/StoreCompanyRequest.php | 28 ++++++++ app/Http/Requests/UpdateCompanyRequest.php | 28 ++++++++ .../Resources/API/v2/CompanyCollection.php | 19 +++++ app/Http/Resources/API/v2/CompanyResource.php | 25 +++++++ app/Models/Company.php | 18 +++++ app/Policies/CompanyPolicy.php | 66 +++++++++++++++++ database/factories/CompanyFactory.php | 23 ++++++ ...23_06_14_105228_create_companies_table.php | 31 ++++++++ database/seeders/CompanySeeder.php | 17 +++++ routes/api.php | 1 + 11 files changed, 327 insertions(+) create mode 100644 app/Http/Controllers/API/v2/CompanyController.php create mode 100644 app/Http/Requests/StoreCompanyRequest.php create mode 100644 app/Http/Requests/UpdateCompanyRequest.php create mode 100644 app/Http/Resources/API/v2/CompanyCollection.php create mode 100644 app/Http/Resources/API/v2/CompanyResource.php create mode 100644 app/Models/Company.php create mode 100644 app/Policies/CompanyPolicy.php create mode 100644 database/factories/CompanyFactory.php create mode 100644 database/migrations/2023_06_14_105228_create_companies_table.php create mode 100644 database/seeders/CompanySeeder.php diff --git a/app/Http/Controllers/API/v2/CompanyController.php b/app/Http/Controllers/API/v2/CompanyController.php new file mode 100644 index 0000000..e11b9e9 --- /dev/null +++ b/app/Http/Controllers/API/v2/CompanyController.php @@ -0,0 +1,71 @@ + + */ + public function rules(): array + { + return [ + // + ]; + } +} diff --git a/app/Http/Requests/UpdateCompanyRequest.php b/app/Http/Requests/UpdateCompanyRequest.php new file mode 100644 index 0000000..e0ed92c --- /dev/null +++ b/app/Http/Requests/UpdateCompanyRequest.php @@ -0,0 +1,28 @@ + + */ + public function rules(): array + { + return [ + // + ]; + } +} diff --git a/app/Http/Resources/API/v2/CompanyCollection.php b/app/Http/Resources/API/v2/CompanyCollection.php new file mode 100644 index 0000000..ea7ec84 --- /dev/null +++ b/app/Http/Resources/API/v2/CompanyCollection.php @@ -0,0 +1,19 @@ + + */ + public function toArray(Request $request): array + { + return parent::toArray($request); + } +} diff --git a/app/Http/Resources/API/v2/CompanyResource.php b/app/Http/Resources/API/v2/CompanyResource.php new file mode 100644 index 0000000..e539231 --- /dev/null +++ b/app/Http/Resources/API/v2/CompanyResource.php @@ -0,0 +1,25 @@ + + */ + public function toArray(Request $request): array + { + return [ + 'id' => $this->id, + 'uuid' => $this->uuid, + 'name' => $this->name, + 'image' => $this->image, + 'description' => $this->description, + ]; + } +} diff --git a/app/Models/Company.php b/app/Models/Company.php new file mode 100644 index 0000000..3e2f1a1 --- /dev/null +++ b/app/Models/Company.php @@ -0,0 +1,18 @@ + + */ +class CompanyFactory extends Factory +{ + /** + * Define the model's default state. + * + * @return array + */ + public function definition(): array + { + return [ + // + ]; + } +} diff --git a/database/migrations/2023_06_14_105228_create_companies_table.php b/database/migrations/2023_06_14_105228_create_companies_table.php new file mode 100644 index 0000000..97405d2 --- /dev/null +++ b/database/migrations/2023_06_14_105228_create_companies_table.php @@ -0,0 +1,31 @@ +id(); + $table->string('uuid'); + $table->string('name'); + $table->string('image'); + $table->string('description'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('companies'); + } +}; diff --git a/database/seeders/CompanySeeder.php b/database/seeders/CompanySeeder.php new file mode 100644 index 0000000..d4ce049 --- /dev/null +++ b/database/seeders/CompanySeeder.php @@ -0,0 +1,17 @@ +