Updates for null properties

This commit is contained in:
David Bomba 2024-08-28 14:05:39 +10:00
parent b4c9caa4c7
commit fa38433de9
4 changed files with 85 additions and 58 deletions

View File

@ -65,7 +65,7 @@ class UpdateCompanyRequest extends Request
$rules['smtp_local_domain'] = 'sometimes|string|nullable'; $rules['smtp_local_domain'] = 'sometimes|string|nullable';
// $rules['smtp_verify_peer'] = 'sometimes|string'; // $rules['smtp_verify_peer'] = 'sometimes|string';
$rules['e_invoice'] = ['sometimes','nullable', new ValidCompanyScheme()]; $rules['e_invoice'] = ['sometimes', 'nullable', new ValidCompanyScheme()];
if (isset($input['portal_mode']) && ($input['portal_mode'] == 'domain' || $input['portal_mode'] == 'iframe')) { if (isset($input['portal_mode']) && ($input['portal_mode'] == 'domain' || $input['portal_mode'] == 'iframe')) {
$rules['portal_domain'] = 'bail|nullable|sometimes|url'; $rules['portal_domain'] = 'bail|nullable|sometimes|url';

View File

@ -367,7 +367,7 @@ class Company extends BaseModel
'smtp_encryption', 'smtp_encryption',
'smtp_local_domain', 'smtp_local_domain',
'smtp_verify_peer', 'smtp_verify_peer',
'e_invoice', // 'e_invoice',
]; ];
protected $hidden = [ protected $hidden = [

View File

@ -11,8 +11,9 @@
namespace App\Repositories; namespace App\Repositories;
use App\Models\Company;
use App\Utils\Ninja; use App\Utils\Ninja;
use App\Models\Company;
use App\Repositories\BaseRepository;
/** /**
* CompanyRepository. * CompanyRepository.
@ -57,11 +58,37 @@ class CompanyRepository extends BaseRepository
$company->smtp_password = $data['smtp_password']; $company->smtp_password = $data['smtp_password'];
} }
if(isset($data['e_invoice'])){
//ensure it is normalized first!
$data['e_invoice'] = $this->arrayFilterRecursive($data['e_invoice']);
$company->e_invoice = $data['e_invoice'];
}
$company->save(); $company->save();
return $company; return $company;
} }
private function arrayFilterRecursive(array $array): array
{
foreach ($array as $key => $value) {
if (is_array($value)) {
// Recursively filter the nested array
$array[$key] = $this->arrayFilterRecursive($value);
}
// Remove null values
if (is_null($array[$key])) {
unset($array[$key]);
}
}
return $array;
}
/** /**
* parseCustomFields * parseCustomFields
* *

110
composer.lock generated
View File

@ -535,16 +535,16 @@
}, },
{ {
"name": "aws/aws-sdk-php", "name": "aws/aws-sdk-php",
"version": "3.320.5", "version": "3.320.9",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/aws/aws-sdk-php.git", "url": "https://github.com/aws/aws-sdk-php.git",
"reference": "afda5aefd59da90208d2f59427ce81e91535b1f2" "reference": "1284cecc00d4ac80815c542ef3882d3a7a25ac50"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/afda5aefd59da90208d2f59427ce81e91535b1f2", "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/1284cecc00d4ac80815c542ef3882d3a7a25ac50",
"reference": "afda5aefd59da90208d2f59427ce81e91535b1f2", "reference": "1284cecc00d4ac80815c542ef3882d3a7a25ac50",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -627,9 +627,9 @@
"support": { "support": {
"forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80", "forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80",
"issues": "https://github.com/aws/aws-sdk-php/issues", "issues": "https://github.com/aws/aws-sdk-php/issues",
"source": "https://github.com/aws/aws-sdk-php/tree/3.320.5" "source": "https://github.com/aws/aws-sdk-php/tree/3.320.9"
}, },
"time": "2024-08-21T18:14:31+00:00" "time": "2024-08-27T18:06:27+00:00"
}, },
{ {
"name": "bacon/bacon-qr-code", "name": "bacon/bacon-qr-code",
@ -975,16 +975,16 @@
}, },
{ {
"name": "checkout/checkout-sdk-php", "name": "checkout/checkout-sdk-php",
"version": "3.2.2", "version": "3.2.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/checkout/checkout-sdk-php.git", "url": "https://github.com/checkout/checkout-sdk-php.git",
"reference": "ac757648271894e3c30b7bc58ff08ba1b5b84de8" "reference": "637444a331271a925a9e77fbc49adf2ea2dbd976"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/checkout/checkout-sdk-php/zipball/ac757648271894e3c30b7bc58ff08ba1b5b84de8", "url": "https://api.github.com/repos/checkout/checkout-sdk-php/zipball/637444a331271a925a9e77fbc49adf2ea2dbd976",
"reference": "ac757648271894e3c30b7bc58ff08ba1b5b84de8", "reference": "637444a331271a925a9e77fbc49adf2ea2dbd976",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -1037,9 +1037,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/checkout/checkout-sdk-php/issues", "issues": "https://github.com/checkout/checkout-sdk-php/issues",
"source": "https://github.com/checkout/checkout-sdk-php/tree/3.2.2" "source": "https://github.com/checkout/checkout-sdk-php/tree/3.2.3"
}, },
"time": "2024-08-02T08:07:53+00:00" "time": "2024-08-27T13:59:31+00:00"
}, },
{ {
"name": "composer/ca-bundle", "name": "composer/ca-bundle",
@ -2522,16 +2522,16 @@
}, },
{ {
"name": "google/apiclient-services", "name": "google/apiclient-services",
"version": "v0.369.0", "version": "v0.370.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/googleapis/google-api-php-client-services.git", "url": "https://github.com/googleapis/google-api-php-client-services.git",
"reference": "002f610e4c3acf0636b4fb1f46314a2097e1c8b4" "reference": "25ad8515701dd832313d0f5f0a828670d60e541a"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/googleapis/google-api-php-client-services/zipball/002f610e4c3acf0636b4fb1f46314a2097e1c8b4", "url": "https://api.github.com/repos/googleapis/google-api-php-client-services/zipball/25ad8515701dd832313d0f5f0a828670d60e541a",
"reference": "002f610e4c3acf0636b4fb1f46314a2097e1c8b4", "reference": "25ad8515701dd832313d0f5f0a828670d60e541a",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2560,22 +2560,22 @@
], ],
"support": { "support": {
"issues": "https://github.com/googleapis/google-api-php-client-services/issues", "issues": "https://github.com/googleapis/google-api-php-client-services/issues",
"source": "https://github.com/googleapis/google-api-php-client-services/tree/v0.369.0" "source": "https://github.com/googleapis/google-api-php-client-services/tree/v0.370.0"
}, },
"time": "2024-08-14T20:31:16+00:00" "time": "2024-08-26T01:04:18+00:00"
}, },
{ {
"name": "google/auth", "name": "google/auth",
"version": "v1.41.0", "version": "v1.42.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/googleapis/google-auth-library-php.git", "url": "https://github.com/googleapis/google-auth-library-php.git",
"reference": "1043ea18fe7f5dfbf5b208ce3ee6d6b6ab8cb038" "reference": "0c25599a91530b5847f129b271c536f75a7563f5"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/googleapis/google-auth-library-php/zipball/1043ea18fe7f5dfbf5b208ce3ee6d6b6ab8cb038", "url": "https://api.github.com/repos/googleapis/google-auth-library-php/zipball/0c25599a91530b5847f129b271c536f75a7563f5",
"reference": "1043ea18fe7f5dfbf5b208ce3ee6d6b6ab8cb038", "reference": "0c25599a91530b5847f129b271c536f75a7563f5",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2620,9 +2620,9 @@
"support": { "support": {
"docs": "https://googleapis.github.io/google-auth-library-php/main/", "docs": "https://googleapis.github.io/google-auth-library-php/main/",
"issues": "https://github.com/googleapis/google-auth-library-php/issues", "issues": "https://github.com/googleapis/google-auth-library-php/issues",
"source": "https://github.com/googleapis/google-auth-library-php/tree/v1.41.0" "source": "https://github.com/googleapis/google-auth-library-php/tree/v1.42.0"
}, },
"time": "2024-07-10T15:21:07+00:00" "time": "2024-08-26T18:33:48+00:00"
}, },
{ {
"name": "graham-campbell/result-type", "name": "graham-campbell/result-type",
@ -3999,12 +3999,12 @@
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/invoiceninja/einvoice.git", "url": "https://github.com/invoiceninja/einvoice.git",
"reference": "d4f80316744bbd31245900ec9799a6f66a663ed6" "reference": "a737e30c522358d07a191145958f65f73f1e2bab"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/invoiceninja/einvoice/zipball/d4f80316744bbd31245900ec9799a6f66a663ed6", "url": "https://api.github.com/repos/invoiceninja/einvoice/zipball/a737e30c522358d07a191145958f65f73f1e2bab",
"reference": "d4f80316744bbd31245900ec9799a6f66a663ed6", "reference": "a737e30c522358d07a191145958f65f73f1e2bab",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -4046,7 +4046,7 @@
"source": "https://github.com/invoiceninja/einvoice/tree/main", "source": "https://github.com/invoiceninja/einvoice/tree/main",
"issues": "https://github.com/invoiceninja/einvoice/issues" "issues": "https://github.com/invoiceninja/einvoice/issues"
}, },
"time": "2024-07-22T02:40:27+00:00" "time": "2024-08-28T02:59:05+00:00"
}, },
{ {
"name": "invoiceninja/inspector", "name": "invoiceninja/inspector",
@ -15659,16 +15659,16 @@
}, },
{ {
"name": "friendsofphp/php-cs-fixer", "name": "friendsofphp/php-cs-fixer",
"version": "v3.62.0", "version": "v3.63.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git", "url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git",
"reference": "627692f794d35c43483f34b01d94740df2a73507" "reference": "ee3cc2e1fbfbddf98c17d4615db574a2a311c1ea"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/627692f794d35c43483f34b01d94740df2a73507", "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/ee3cc2e1fbfbddf98c17d4615db574a2a311c1ea",
"reference": "627692f794d35c43483f34b01d94740df2a73507", "reference": "ee3cc2e1fbfbddf98c17d4615db574a2a311c1ea",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -15750,7 +15750,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues", "issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues",
"source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.62.0" "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.63.1"
}, },
"funding": [ "funding": [
{ {
@ -15758,7 +15758,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2024-08-07T17:03:09+00:00" "time": "2024-08-26T14:03:20+00:00"
}, },
{ {
"name": "hamcrest/hamcrest-php", "name": "hamcrest/hamcrest-php",
@ -16427,16 +16427,16 @@
}, },
{ {
"name": "phpstan/phpstan", "name": "phpstan/phpstan",
"version": "1.11.11", "version": "1.12.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/phpstan/phpstan.git", "url": "https://github.com/phpstan/phpstan.git",
"reference": "707c2aed5d8d0075666e673a5e71440c1d01a5a3" "reference": "384af967d35b2162f69526c7276acadce534d0e1"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/707c2aed5d8d0075666e673a5e71440c1d01a5a3", "url": "https://api.github.com/repos/phpstan/phpstan/zipball/384af967d35b2162f69526c7276acadce534d0e1",
"reference": "707c2aed5d8d0075666e673a5e71440c1d01a5a3", "reference": "384af967d35b2162f69526c7276acadce534d0e1",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -16481,36 +16481,36 @@
"type": "github" "type": "github"
} }
], ],
"time": "2024-08-19T14:37:29+00:00" "time": "2024-08-27T09:18:05+00:00"
}, },
{ {
"name": "phpunit/php-code-coverage", "name": "phpunit/php-code-coverage",
"version": "10.1.15", "version": "10.1.16",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
"reference": "5da8b1728acd1e6ffdf2ff32ffbdfd04307f26ae" "reference": "7e308268858ed6baedc8704a304727d20bc07c77"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/5da8b1728acd1e6ffdf2ff32ffbdfd04307f26ae", "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/7e308268858ed6baedc8704a304727d20bc07c77",
"reference": "5da8b1728acd1e6ffdf2ff32ffbdfd04307f26ae", "reference": "7e308268858ed6baedc8704a304727d20bc07c77",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"ext-dom": "*", "ext-dom": "*",
"ext-libxml": "*", "ext-libxml": "*",
"ext-xmlwriter": "*", "ext-xmlwriter": "*",
"nikic/php-parser": "^4.18 || ^5.0", "nikic/php-parser": "^4.19.1 || ^5.1.0",
"php": ">=8.1", "php": ">=8.1",
"phpunit/php-file-iterator": "^4.0", "phpunit/php-file-iterator": "^4.1.0",
"phpunit/php-text-template": "^3.0", "phpunit/php-text-template": "^3.0.1",
"sebastian/code-unit-reverse-lookup": "^3.0", "sebastian/code-unit-reverse-lookup": "^3.0.0",
"sebastian/complexity": "^3.0", "sebastian/complexity": "^3.2.0",
"sebastian/environment": "^6.0", "sebastian/environment": "^6.1.0",
"sebastian/lines-of-code": "^2.0", "sebastian/lines-of-code": "^2.0.2",
"sebastian/version": "^4.0", "sebastian/version": "^4.0.1",
"theseer/tokenizer": "^1.2.0" "theseer/tokenizer": "^1.2.3"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "^10.1" "phpunit/phpunit": "^10.1"
@ -16522,7 +16522,7 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-main": "10.1-dev" "dev-main": "10.1.x-dev"
} }
}, },
"autoload": { "autoload": {
@ -16551,7 +16551,7 @@
"support": { "support": {
"issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
"security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy",
"source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.15" "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.16"
}, },
"funding": [ "funding": [
{ {
@ -16559,7 +16559,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2024-06-29T08:25:15+00:00" "time": "2024-08-22T04:31:57+00:00"
}, },
{ {
"name": "phpunit/php-file-iterator", "name": "phpunit/php-file-iterator",