mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-07-09 03:14:30 -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",
|
* summary="Gets a list of companies",
|
||||||
* description="Lists companies, search and filters allow fine grained lists to be generated.
|
* 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-API-TOKEN"),
|
||||||
* @OA\Parameter(ref="#/components/parameters/X-Requested-With"),
|
* @OA\Parameter(ref="#/components/parameters/X-Requested-With"),
|
||||||
* @OA\Parameter(ref="#/components/parameters/include"),
|
* @OA\Parameter(ref="#/components/parameters/include"),
|
||||||
@ -114,7 +114,10 @@ class CompanyController extends BaseController
|
|||||||
*/
|
*/
|
||||||
public function index()
|
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);
|
return $this->listResponse($companies);
|
||||||
}
|
}
|
||||||
@ -159,8 +162,12 @@ class CompanyController extends BaseController
|
|||||||
*/
|
*/
|
||||||
public function create(CreateCompanyRequest $request)
|
public function create(CreateCompanyRequest $request)
|
||||||
{
|
{
|
||||||
$cf = new \App\Factory\CompanyFactory;
|
/** @var \App\Models\User $user */
|
||||||
$company = $cf->create(auth()->user()->company()->account->id);
|
$user = auth()->user();
|
||||||
|
|
||||||
|
$company_factory = new \App\Factory\CompanyFactory;
|
||||||
|
|
||||||
|
$company = $company_factory->create($user->company()->account->id);
|
||||||
|
|
||||||
return $this->itemResponse($company);
|
return $this->itemResponse($company);
|
||||||
}
|
}
|
||||||
@ -206,15 +213,18 @@ class CompanyController extends BaseController
|
|||||||
{
|
{
|
||||||
$this->forced_includes = ['company_user'];
|
$this->forced_includes = ['company_user'];
|
||||||
|
|
||||||
$company = (new CreateCompany($request->all(), auth()->user()->company()->account))->handle();
|
/** @var \App\Models\User $user */
|
||||||
(new CreateCompanyPaymentTerms($company, auth()->user()))->handle();
|
$user = auth()->user();
|
||||||
(new CreateCompanyTaskStatuses($company, auth()->user()))->handle();
|
|
||||||
|
$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);
|
$company = $this->company_repo->save($request->all(), $company);
|
||||||
|
|
||||||
$this->uploadLogo($request->file('company_logo'), $company, $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,
|
'account_id' => $company->account->id,
|
||||||
'is_owner' => 1,
|
'is_owner' => 1,
|
||||||
'is_admin' => 1,
|
'is_admin' => 1,
|
||||||
@ -231,7 +241,7 @@ class CompanyController extends BaseController
|
|||||||
/*
|
/*
|
||||||
* Required dependencies
|
* Required dependencies
|
||||||
*/
|
*/
|
||||||
auth()->user()->setCompany($company);
|
$user->setCompany($company);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Create token
|
* Create token
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
namespace App\Repositories;
|
namespace App\Repositories;
|
||||||
|
|
||||||
use App\Models\Company;
|
use App\Models\Company;
|
||||||
|
use App\Utils\Ninja;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* CompanyRepository.
|
* CompanyRepository.
|
||||||
@ -31,12 +32,17 @@ class CompanyRepository extends BaseRepository
|
|||||||
*/
|
*/
|
||||||
public function save(array $data, Company $company) : ?Company
|
public function save(array $data, Company $company) : ?Company
|
||||||
{
|
{
|
||||||
|
|
||||||
if (isset($data['custom_fields']) && is_array($data['custom_fields'])) {
|
if (isset($data['custom_fields']) && is_array($data['custom_fields'])) {
|
||||||
$data['custom_fields'] = $this->parseCustomFields($data['custom_fields']);
|
$data['custom_fields'] = $this->parseCustomFields($data['custom_fields']);
|
||||||
}
|
}
|
||||||
|
|
||||||
$company->fill($data);
|
$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)) {
|
if (array_key_exists('settings', $data)) {
|
||||||
$company->saveSettings($data['settings'], $company);
|
$company->saveSettings($data['settings'], $company);
|
||||||
}
|
}
|
||||||
@ -45,7 +51,13 @@ class CompanyRepository extends BaseRepository
|
|||||||
|
|
||||||
return $company;
|
return $company;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* parseCustomFields
|
||||||
|
*
|
||||||
|
* @param array $fields
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
private function parseCustomFields($fields) :array
|
private function parseCustomFields($fields) :array
|
||||||
{
|
{
|
||||||
foreach ($fields as &$value) {
|
foreach ($fields as &$value) {
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
namespace App\Utils;
|
namespace App\Utils;
|
||||||
|
|
||||||
use Illuminate\Support\Facades\DB;
|
use Illuminate\Support\Facades\DB;
|
||||||
|
use Illuminate\Support\Facades\Http;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class Ninja.
|
* Class Ninja.
|
||||||
@ -152,6 +153,16 @@ class Ninja
|
|||||||
return $translations;
|
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)
|
public function createLicense($request)
|
||||||
{
|
{
|
||||||
// $affiliate = Affiliate::where('affiliate_key', '=', SELF_HOST_AFFILIATE_KEY)->first();
|
// $affiliate = Affiliate::where('affiliate_key', '=', SELF_HOST_AFFILIATE_KEY)->first();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user