mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-05-24 02:14:21 -04:00
Refactor for store client request
This commit is contained in:
parent
ade8b24031
commit
4eed22d811
@ -68,6 +68,7 @@ class StoreClientRequest extends Request
|
||||
$rules['contacts'] = 'array';
|
||||
$rules['contacts.*.email'] = 'bail|nullable|distinct|sometimes|email';
|
||||
$rules['contacts.*.password'] = [
|
||||
'bail',
|
||||
'nullable',
|
||||
'sometimes',
|
||||
'string',
|
||||
@ -82,8 +83,8 @@ class StoreClientRequest extends Request
|
||||
$rules['id'] = new CanStoreClientsRule(auth()->user()->company()->id);
|
||||
}
|
||||
|
||||
$rules['number'] = ['nullable', Rule::unique('clients')->where('company_id', auth()->user()->company()->id)];
|
||||
$rules['id_number'] = ['nullable', Rule::unique('clients')->where('company_id', auth()->user()->company()->id)];
|
||||
$rules['number'] = ['bail', 'nullable', Rule::unique('clients')->where('company_id', auth()->user()->company()->id)];
|
||||
$rules['id_number'] = ['bail', 'nullable', Rule::unique('clients')->where('company_id', auth()->user()->company()->id)];
|
||||
|
||||
return $rules;
|
||||
}
|
||||
@ -92,37 +93,30 @@ class StoreClientRequest extends Request
|
||||
{
|
||||
$input = $this->all();
|
||||
|
||||
$settings = ClientSettings::defaults();
|
||||
$tmp = [];
|
||||
/* Default settings */
|
||||
$settings = (array)ClientSettings::defaults();
|
||||
|
||||
$tmp['settings'] = (array)$settings;
|
||||
|
||||
nlog("seeetings");
|
||||
nlog($tmp['settings']);
|
||||
|
||||
if (array_key_exists('settings', $input))
|
||||
nlog($input['settings']);
|
||||
/* Stub settings if they don't exist */
|
||||
if(!array_key_exists('settings', $input))
|
||||
$input['settings'] = [];
|
||||
|
||||
/* Merge default into base settings */
|
||||
$input['settings'] = array_merge($input['settings'], $settings);
|
||||
|
||||
if (array_key_exists('settings', $input) && ! empty($input['settings'])) {
|
||||
foreach ($input['settings'] as $key => $value) {
|
||||
if ($key == 'default_task_rate') {
|
||||
$value = floatval($value);
|
||||
}
|
||||
|
||||
$tmp['settings'][$key] = $value;
|
||||
/* Type enforcement */
|
||||
foreach ($input['settings'] as $key => $value)
|
||||
{
|
||||
if ($key == 'default_task_rate') {
|
||||
$value = floatval($value);
|
||||
$input['settings'][$key] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
$input['settings'] = $tmp['settings'];
|
||||
|
||||
/* Convert hashed IDs to IDs*/
|
||||
$input = $this->decodePrimaryKeys($input);
|
||||
|
||||
if (isset($input['group_settings_id'])) {
|
||||
$input['group_settings_id'] = $this->decodePrimaryKey($input['group_settings_id']);
|
||||
}
|
||||
|
||||
//is no settings->currency_id is set then lets dive in and find either a group or company currency all the below may be redundant!!
|
||||
if (! property_exists($settings, 'currency_id') && isset($input['group_settings_id'])) {
|
||||
if (! array_key_exists('currency_id', $input['settings']) && isset($input['group_settings_id'])) {
|
||||
$group_settings = GroupSetting::find($input['group_settings_id']);
|
||||
|
||||
if ($group_settings && property_exists($group_settings->settings, 'currency_id') && isset($group_settings->settings->currency_id)) {
|
||||
@ -130,7 +124,8 @@ class StoreClientRequest extends Request
|
||||
} else {
|
||||
$input['settings']['currency_id'] = (string) auth()->user()->company()->settings->currency_id;
|
||||
}
|
||||
} elseif (! property_exists($settings, 'currency_id')) {
|
||||
|
||||
} elseif (! array_key_exists('currency_id', $input['settings'])) {
|
||||
$input['settings']['currency_id'] = (string) auth()->user()->company()->settings->currency_id;
|
||||
}
|
||||
|
||||
@ -145,8 +140,6 @@ class StoreClientRequest extends Request
|
||||
unset($input['settings']['language_id']);
|
||||
}
|
||||
|
||||
// $input['settings'] = $settings;
|
||||
|
||||
if (isset($input['country_code'])) {
|
||||
$input['country_id'] = $this->getCountryCode($input['country_code']);
|
||||
}
|
||||
@ -155,15 +148,11 @@ class StoreClientRequest extends Request
|
||||
$input['shipping_country_id'] = $this->getCountryCode($input['shipping_country_code']);
|
||||
}
|
||||
|
||||
/* If there is no number, just unset it here. */
|
||||
/* If there is a client number, just unset it here. */
|
||||
if (array_key_exists('number', $input) && (is_null($input['number']) || empty($input['number']))) {
|
||||
unset($input['number']);
|
||||
}
|
||||
|
||||
|
||||
nlog($input);
|
||||
|
||||
|
||||
$this->replace($input);
|
||||
}
|
||||
|
||||
|
@ -77,6 +77,10 @@ class Request extends FormRequest
|
||||
|
||||
public function decodePrimaryKeys($input)
|
||||
{
|
||||
if (array_key_exists('group_settings_id', $input) && is_string($input['group_settings_id'])) {
|
||||
$input['group_settings_id'] = $this->decodePrimaryKey($input['group_settings_id']);
|
||||
}
|
||||
|
||||
if (array_key_exists('group_id', $input) && is_string($input['group_id'])) {
|
||||
$input['group_id'] = $this->decodePrimaryKey($input['group_id']);
|
||||
}
|
||||
|
12
composer.lock
generated
12
composer.lock
generated
@ -378,16 +378,16 @@
|
||||
},
|
||||
{
|
||||
"name": "aws/aws-sdk-php",
|
||||
"version": "3.228.0",
|
||||
"version": "3.228.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/aws/aws-sdk-php.git",
|
||||
"reference": "4ff51d01da43aa3bd36eef921a9cd4e0ff843fab"
|
||||
"reference": "53b7f43945b19bb0700c75d4c5f130055096e817"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/4ff51d01da43aa3bd36eef921a9cd4e0ff843fab",
|
||||
"reference": "4ff51d01da43aa3bd36eef921a9cd4e0ff843fab",
|
||||
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/53b7f43945b19bb0700c75d4c5f130055096e817",
|
||||
"reference": "53b7f43945b19bb0700c75d4c5f130055096e817",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -463,9 +463,9 @@
|
||||
"support": {
|
||||
"forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80",
|
||||
"issues": "https://github.com/aws/aws-sdk-php/issues",
|
||||
"source": "https://github.com/aws/aws-sdk-php/tree/3.228.0"
|
||||
"source": "https://github.com/aws/aws-sdk-php/tree/3.228.1"
|
||||
},
|
||||
"time": "2022-06-21T18:13:25+00:00"
|
||||
"time": "2022-06-22T18:16:48+00:00"
|
||||
},
|
||||
{
|
||||
"name": "bacon/bacon-qr-code",
|
||||
|
@ -32,6 +32,7 @@ class ClientSettingsTest extends TestCase
|
||||
$this->makeTestData();
|
||||
|
||||
$this->faker = \Faker\Factory::create();
|
||||
|
||||
}
|
||||
|
||||
public function testClientBaseline()
|
||||
@ -90,7 +91,7 @@ class ClientSettingsTest extends TestCase
|
||||
$response->assertStatus(200);
|
||||
|
||||
$arr = $response->json();
|
||||
nlog($arr);
|
||||
|
||||
$this->assertEquals('1', $arr['data']['settings']['currency_id']);
|
||||
$this->assertEquals('1', $arr['data']['settings']['language_id']);
|
||||
$this->assertEquals('1', $arr['data']['settings']['payment_terms']);
|
||||
@ -100,13 +101,13 @@ nlog($arr);
|
||||
}
|
||||
|
||||
public function testClientIllegalCurrency()
|
||||
{nlog("illegal");
|
||||
{
|
||||
|
||||
$data = [
|
||||
'name' => $this->faker->firstName(),
|
||||
'id_number' => 'Cooliox2',
|
||||
'settings' => [
|
||||
'currency_id' => '2',
|
||||
'currency_id' => 'a',
|
||||
'language_id' => '1',
|
||||
'payment_terms' => '1',
|
||||
'valid_until' => '2',
|
||||
@ -127,8 +128,6 @@ nlog($arr);
|
||||
nlog($message);
|
||||
}
|
||||
|
||||
nlog($response->json());
|
||||
|
||||
$response->assertStatus(302);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user