mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-07-09 00:54:29 -04:00
Clean up for company controller
This commit is contained in:
parent
2571f5eb79
commit
664e70e8d4
@ -87,7 +87,7 @@ class CompanyController extends BaseController
|
||||
* summary="Gets a list of companies",
|
||||
* description="Lists companies, search and filters allow fine grained lists to be generated.
|
||||
|
||||
Query parameters can be added to performed more fine grained filtering of the companies, these are handled by the CompanyFilters class which defines the methods available",
|
||||
* Query parameters can be added to performed more fine grained filtering of the companies, these are handled by the CompanyFilters class which defines the methods available",
|
||||
* @OA\Parameter(ref="#/components/parameters/X-API-TOKEN"),
|
||||
* @OA\Parameter(ref="#/components/parameters/X-Requested-With"),
|
||||
* @OA\Parameter(ref="#/components/parameters/include"),
|
||||
@ -114,7 +114,10 @@ class CompanyController extends BaseController
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$companies = Company::whereAccountId(auth()->user()->company()->account->id);
|
||||
/** @var \App\Models\User $user */
|
||||
$user = auth()->user();
|
||||
|
||||
$companies = Company::whereAccountId($user->company()->account->id);
|
||||
|
||||
return $this->listResponse($companies);
|
||||
}
|
||||
@ -159,8 +162,12 @@ class CompanyController extends BaseController
|
||||
*/
|
||||
public function create(CreateCompanyRequest $request)
|
||||
{
|
||||
$cf = new \App\Factory\CompanyFactory;
|
||||
$company = $cf->create(auth()->user()->company()->account->id);
|
||||
/** @var \App\Models\User $user */
|
||||
$user = auth()->user();
|
||||
|
||||
$company_factory = new \App\Factory\CompanyFactory;
|
||||
|
||||
$company = $company_factory->create($user->company()->account->id);
|
||||
|
||||
return $this->itemResponse($company);
|
||||
}
|
||||
@ -206,15 +213,18 @@ class CompanyController extends BaseController
|
||||
{
|
||||
$this->forced_includes = ['company_user'];
|
||||
|
||||
$company = (new CreateCompany($request->all(), auth()->user()->company()->account))->handle();
|
||||
(new CreateCompanyPaymentTerms($company, auth()->user()))->handle();
|
||||
(new CreateCompanyTaskStatuses($company, auth()->user()))->handle();
|
||||
/** @var \App\Models\User $user */
|
||||
$user = auth()->user();
|
||||
|
||||
$company = (new CreateCompany($request->all(), $user->company()->account))->handle();
|
||||
(new CreateCompanyPaymentTerms($company, $user))->handle();
|
||||
(new CreateCompanyTaskStatuses($company, $user))->handle();
|
||||
|
||||
$company = $this->company_repo->save($request->all(), $company);
|
||||
|
||||
$this->uploadLogo($request->file('company_logo'), $company, $company);
|
||||
|
||||
auth()->user()->companies()->attach($company->id, [
|
||||
$user->companies()->attach($company->id, [
|
||||
'account_id' => $company->account->id,
|
||||
'is_owner' => 1,
|
||||
'is_admin' => 1,
|
||||
@ -231,7 +241,7 @@ class CompanyController extends BaseController
|
||||
/*
|
||||
* Required dependencies
|
||||
*/
|
||||
auth()->user()->setCompany($company);
|
||||
$user->setCompany($company);
|
||||
|
||||
/*
|
||||
* Create token
|
||||
|
@ -12,6 +12,7 @@
|
||||
namespace App\Repositories;
|
||||
|
||||
use App\Models\Company;
|
||||
use App\Utils\Ninja;
|
||||
|
||||
/**
|
||||
* CompanyRepository.
|
||||
@ -31,12 +32,17 @@ class CompanyRepository extends BaseRepository
|
||||
*/
|
||||
public function save(array $data, Company $company) : ?Company
|
||||
{
|
||||
|
||||
if (isset($data['custom_fields']) && is_array($data['custom_fields'])) {
|
||||
$data['custom_fields'] = $this->parseCustomFields($data['custom_fields']);
|
||||
}
|
||||
|
||||
|
||||
$company->fill($data);
|
||||
|
||||
if(Ninja::isHosted() && $company->isDirty('is_disabled') && !$company->is_disabled) {
|
||||
Ninja::triggerForwarding($company->company_key, $company->owner()->email);
|
||||
}
|
||||
|
||||
if (array_key_exists('settings', $data)) {
|
||||
$company->saveSettings($data['settings'], $company);
|
||||
}
|
||||
@ -45,7 +51,13 @@ class CompanyRepository extends BaseRepository
|
||||
|
||||
return $company;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* parseCustomFields
|
||||
*
|
||||
* @param array $fields
|
||||
* @return array
|
||||
*/
|
||||
private function parseCustomFields($fields) :array
|
||||
{
|
||||
foreach ($fields as &$value) {
|
||||
|
@ -12,6 +12,7 @@
|
||||
namespace App\Utils;
|
||||
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Http;
|
||||
|
||||
/**
|
||||
* Class Ninja.
|
||||
@ -152,6 +153,16 @@ class Ninja
|
||||
return $translations;
|
||||
}
|
||||
|
||||
public static function triggerForwarding(string $company_key, string $email)
|
||||
{
|
||||
Http::withHeaders([
|
||||
'X-API-HOSTED-SECRET' => config('ninja.ninja_hosted_secret'),
|
||||
])->post(config('ninja.license_url').'/api/v1/enable_forwarding', [
|
||||
'company_key' => $company_key,
|
||||
'email' => $email,
|
||||
]);
|
||||
}
|
||||
|
||||
public function createLicense($request)
|
||||
{
|
||||
// $affiliate = Affiliate::where('affiliate_key', '=', SELF_HOST_AFFILIATE_KEY)->first();
|
||||
|
Loading…
x
Reference in New Issue
Block a user