From b8515e26b0800b2b764b1be62136776293914b9b Mon Sep 17 00:00:00 2001 From: David Bomba Date: Mon, 7 Oct 2019 22:05:06 +1100 Subject: [PATCH] Upload company logo to client settings --- app/Http/Controllers/ClientController.php | 17 +++++++++++++++++ app/Http/Controllers/CompanyController.php | 4 ++-- app/Http/Controllers/GroupSettingController.php | 2 +- .../OpenAPI/CompanySettingsSchema.php | 4 +++- .../Requests/Client/UpdateClientRequest.php | 2 ++ app/Jobs/Company/CreateCompany.php | 1 + app/Models/Company.php | 2 +- tests/Feature/ClientModelTest.php | 2 +- tests/Integration/UploadLogoTest.php | 2 +- 9 files changed, 29 insertions(+), 7 deletions(-) diff --git a/app/Http/Controllers/ClientController.php b/app/Http/Controllers/ClientController.php index 55e4d6199b34..1251e13d9978 100644 --- a/app/Http/Controllers/ClientController.php +++ b/app/Http/Controllers/ClientController.php @@ -23,6 +23,7 @@ use App\Http\Requests\Client\UpdateClientRequest; use App\Jobs\Client\StoreClient; use App\Jobs\Client\UpdateClient; use App\Jobs\Entity\ActionEntity; +use App\Jobs\Util\UploadAvatar; use App\Models\Client; use App\Models\ClientContact; use App\Models\Country; @@ -282,6 +283,22 @@ class ClientController extends BaseController $client = $this->client_repo->save($request->all(), $client); + if($request->file('company_logo')) + { + \Log::error('settings logo present'); + + $path = UploadAvatar::dispatchNow($request->file('company_logo'), $client->company->company_key); + + if($path){ + + $settings = $client->settings; + $settings->company_logo_url = $client->company->domain . $path; + $client->settings = $settings; + $client->save(); + } + + } + return $this->itemResponse($client); } diff --git a/app/Http/Controllers/CompanyController.php b/app/Http/Controllers/CompanyController.php index b40e73b1c248..66e5e43489cf 100644 --- a/app/Http/Controllers/CompanyController.php +++ b/app/Http/Controllers/CompanyController.php @@ -213,7 +213,7 @@ class CompanyController extends BaseController if($path){ $settings = $company->settings; - $settings->logo_url = config('ninja.site_url').$path; + $settings->company_logo_url = $company->domain . $path; $company->settings = $settings; $company->save(); } @@ -428,7 +428,7 @@ class CompanyController extends BaseController if($path){ $settings = $company->settings; - $settings->logo_url = config('ninja.site_url').$path; + $settings->company_logo_url = $company->domain . $path; $company->settings = $settings; $company->save(); } diff --git a/app/Http/Controllers/GroupSettingController.php b/app/Http/Controllers/GroupSettingController.php index d7b7a0925f14..48fbbc1d6524 100644 --- a/app/Http/Controllers/GroupSettingController.php +++ b/app/Http/Controllers/GroupSettingController.php @@ -354,7 +354,7 @@ class GroupSettingController extends BaseController $group_setting = $this->group_setting_repo->save($request->all(), $group_setting); - return $this->itemResponse($group_setting); + return $this->itemResponse($group_setting); } diff --git a/app/Http/Controllers/OpenAPI/CompanySettingsSchema.php b/app/Http/Controllers/OpenAPI/CompanySettingsSchema.php index b215dfff98b7..169e852d74dd 100644 --- a/app/Http/Controllers/OpenAPI/CompanySettingsSchema.php +++ b/app/Http/Controllers/OpenAPI/CompanySettingsSchema.php @@ -8,6 +8,7 @@ * @OA\Property(property="datetime_format_id", type="string", example="15", description="____________"), * @OA\Property(property="financial_year_start", type="string", example="2000-01-01", description="____________"), * @OA\Property(property="language_id", type="string", example="1", description="____________"), + * @OA\Property(property="company_logo_url", type="string", example="https://example.com/logo.png", description="The URL to the company Logo"), * @OA\Property(property="custom_label1", type="string", example="Custom Label", description="____________"), * @OA\Property(property="custom_label2", type="string", example="Custom Label", description="____________"), * @OA\Property(property="custom_label3", type="string", example="Custom Label", description="____________"), @@ -52,4 +53,5 @@ * @OA\Property(property="default_gateway", type="integer", example="1", description="The default payment gateway"), * @OA\Property(property="reset_counter_date", type="string", example="2019-01-01", description="The explicit date which is used to reset counters"), * ) - */ \ No newline at end of file + */ + * \ No newline at end of file diff --git a/app/Http/Requests/Client/UpdateClientRequest.php b/app/Http/Requests/Client/UpdateClientRequest.php index e0709d374090..36c20c9d14c9 100644 --- a/app/Http/Requests/Client/UpdateClientRequest.php +++ b/app/Http/Requests/Client/UpdateClientRequest.php @@ -33,6 +33,8 @@ class UpdateClientRequest extends Request /* Ensure we have a client name, and that all emails are unique*/ $rules['name'] = 'required'; + $rules['company_logo'] = 'mimes:jpeg,jpg,png,gif|max:10000'; + $rules['industry_id'] = 'integer|nullable'; $rules['size_id'] = 'integer|nullable'; $rules['currency_id'] = 'integer|nullable'; diff --git a/app/Jobs/Company/CreateCompany.php b/app/Jobs/Company/CreateCompany.php index 07f922f56fc2..6378bbf18b34 100644 --- a/app/Jobs/Company/CreateCompany.php +++ b/app/Jobs/Company/CreateCompany.php @@ -59,6 +59,7 @@ class CreateCompany $company->ip = request()->ip(); $company->settings = $settings; $company->db = config('database.default'); + $company->domain = isset($this->request['domain']) ? $this->request['domain'] : config('ninja.site_url'); $company->save(); diff --git a/app/Models/Company.php b/app/Models/Company.php index acbc7069eaa2..6d004784c95c 100644 --- a/app/Models/Company.php +++ b/app/Models/Company.php @@ -189,7 +189,7 @@ class Company extends BaseModel public function getLogo() { - return $this->settings->logo_url ?: null; + return $this->settings->company_logo_url ?: null; } /** diff --git a/tests/Feature/ClientModelTest.php b/tests/Feature/ClientModelTest.php index 5aa884f61f4b..3c063d8fb2f5 100644 --- a/tests/Feature/ClientModelTest.php +++ b/tests/Feature/ClientModelTest.php @@ -24,7 +24,7 @@ class ClientModelTest extends TestCase $this->makeTestData(); - if(config('ninja.testvars.travis') === false) + if(config('ninja.testvars.travis') !== false) $this->markTestSkipped('Skip test for Travis'); } diff --git a/tests/Integration/UploadLogoTest.php b/tests/Integration/UploadLogoTest.php index a34e3c62b35d..487290dfcdc7 100644 --- a/tests/Integration/UploadLogoTest.php +++ b/tests/Integration/UploadLogoTest.php @@ -61,7 +61,7 @@ class UploadLogoTest extends TestCase $response->assertStatus(200); $acc = $response->json(); - $logo = $acc['data']['settings']['logo_url']; + $logo = $acc['data']['settings']['company_logo_url']; $logo_file = Storage::url($logo);