diff --git a/.github/user_bug_report.md b/.github/user_bug_report.md index 9e5f2a5..4b92a8e 100755 --- a/.github/user_bug_report.md +++ b/.github/user_bug_report.md @@ -8,9 +8,11 @@ assignees: '' --- # Bug Description + A clear and concise description of what the bug is. # How to Reproduce + Steps to reproduce the behavior: 1. Go to '...' @@ -19,16 +21,20 @@ Steps to reproduce the behavior: 4. See error # Expected Behavior + A clear and concise description of what you expected to happen. # Screenshots + If applicable, add screenshots to help explain your problem. # System Information - - System: [e.g. PC or iPhone11, ...] - - OS: [e.g. iOS] - - Browser [e.g. chrome, safari] - - KarakaVersion [e.g. 22] + +- System: [e.g. PC or iPhone11, ...] +- OS: [e.g. iOS] +- Browser [e.g. chrome, safari] +- KarakaVersion [e.g. 22] # Additional Information + Add any other context about the problem here. diff --git a/Controller/ApiController.php b/Controller/ApiController.php index 7fb6848..29dfd61 100755 --- a/Controller/ApiController.php +++ b/Controller/ApiController.php @@ -288,7 +288,7 @@ final class ApiController extends Controller private function validateItemCreate(RequestAbstract $request) : array { $val = []; - if (($val['number'] = empty($request->getData('number')))) { + if (($val['number'] = !$request->hasData('number'))) { return $val; } @@ -361,7 +361,7 @@ final class ApiController extends Controller private function validateItemPriceCreate(RequestAbstract $request) : array { $val = []; - if (($val['price'] = empty($request->getData('price'))) + if (($val['price'] = !$request->hasData('price')) || ($val['currency'] = !ISO4217CharEnum::isValidValue($request->getData('currency'))) ) { return $val; @@ -439,9 +439,9 @@ final class ApiController extends Controller private function validateItemAttributeCreate(RequestAbstract $request) : array { $val = []; - if (($val['type'] = empty($request->getData('type'))) - || ($val['value'] = (empty($request->getData('value')) && empty($request->getData('custom')))) - || ($val['item'] = empty($request->getData('item'))) + if (($val['type'] = !$request->hasData('type')) + || ($val['value'] = (!$request->hasData('value') && !$request->hasData('custom'))) + || ($val['item'] = !$request->hasData('item')) ) { return $val; } @@ -509,8 +509,8 @@ final class ApiController extends Controller private function validateItemAttributeTypeL11nCreate(RequestAbstract $request) : array { $val = []; - if (($val['title'] = empty($request->getData('title'))) - || ($val['type'] = empty($request->getData('type'))) + if (($val['title'] = !$request->hasData('title')) + || ($val['type'] = !$request->hasData('type')) ) { return $val; } @@ -580,8 +580,8 @@ final class ApiController extends Controller private function validateItemAttributeTypeCreate(RequestAbstract $request) : array { $val = []; - if (($val['title'] = empty($request->getData('title'))) - || ($val['name'] = empty($request->getData('name'))) + if (($val['title'] = !$request->hasData('title')) + || ($val['name'] = !$request->hasData('name')) ) { return $val; } @@ -665,8 +665,8 @@ final class ApiController extends Controller private function validateItemAttributeValueCreate(RequestAbstract $request) : array { $val = []; - if (($val['type'] = empty($request->getData('type'))) - || ($val['value'] = empty($request->getData('value'))) + if (($val['type'] = !$request->hasData('type')) + || ($val['value'] = !$request->hasData('value')) ) { return $val; } @@ -734,8 +734,8 @@ final class ApiController extends Controller private function validateItemAttributeValueL11nCreate(RequestAbstract $request) : array { $val = []; - if (($val['title'] = empty($request->getData('title'))) - || ($val['value'] = empty($request->getData('value'))) + if (($val['title'] = !$request->hasData('title')) + || ($val['value'] = !$request->hasData('value')) ) { return $val; } @@ -800,7 +800,7 @@ final class ApiController extends Controller private function validateItemL11nTypeCreate(RequestAbstract $request) : array { $val = []; - if (($val['title'] = empty($request->getData('title')))) { + if (($val['title'] = !$request->hasData('title'))) { return $val; } @@ -863,7 +863,7 @@ final class ApiController extends Controller private function validateItemRelationTypeCreate(RequestAbstract $request) : array { $val = []; - if (($val['title'] = empty($request->getData('title')))) { + if (($val['title'] = !$request->hasData('title'))) { return $val; } @@ -931,9 +931,9 @@ final class ApiController extends Controller private function validateItemL11nCreate(RequestAbstract $request) : array { $val = []; - if (($val['item'] = empty($request->getData('item'))) - || ($val['type'] = empty($request->getData('type'))) - || ($val['description'] = empty($request->getData('description'))) + if (($val['item'] = !$request->hasData('item')) + || ($val['type'] = !$request->hasData('type')) + || ($val['description'] = !$request->hasData('description')) ) { return $val; } @@ -1025,7 +1025,7 @@ final class ApiController extends Controller private function validateFileCreate(RequestAbstract $request) : array { $val = []; - if (($val['item'] = empty($request->getData('item'))) + if (($val['item'] = !$request->hasData('item')) ) { return $val; } @@ -1083,7 +1083,7 @@ final class ApiController extends Controller private function validateNoteCreate(RequestAbstract $request) : array { $val = []; - if (($val['id'] = empty($request->getData('id'))) + if (($val['id'] = !$request->hasData('id')) ) { return $val; } diff --git a/Models/Item.php b/Models/Item.php index 81ecca3..02ff5b7 100755 --- a/Models/Item.php +++ b/Models/Item.php @@ -144,6 +144,12 @@ class Item implements \JsonSerializable */ public function addL11n(ItemL11n $l11n) : void { + foreach ($this->l11n as $l11n) { + if ($l11n->type->title === $l11n->type->title) { + return; + } + } + $this->l11n[] = $l11n; } diff --git a/Models/ItemAttributeType.php b/Models/ItemAttributeType.php index 556adb8..ff6e931 100755 --- a/Models/ItemAttributeType.php +++ b/Models/ItemAttributeType.php @@ -59,8 +59,20 @@ class ItemAttributeType implements \JsonSerializable */ public bool $custom = false; + /** + * Validation pattern for the value + * + * @var string + * @since 1.0.0 + */ public string $validationPattern = ''; + /** + * Is the attribute required + * + * @var bool + * @since 1.0.0 + */ public bool $isRequired = false; /** @@ -74,7 +86,8 @@ class ItemAttributeType implements \JsonSerializable /** * Localization * - * @var BaseStringL11n + * @var string|BaseStringL11n + * @since 1.0.0 */ private string | BaseStringL11n $l11n = ''; @@ -82,6 +95,7 @@ class ItemAttributeType implements \JsonSerializable * Possible default attribute values * * @var array + * @since 1.0.0 */ private array $defaults = []; @@ -117,6 +131,15 @@ class ItemAttributeType implements \JsonSerializable return $this->id; } + /** + * Get default value by value + * + * @param mixed $value Value + * + * @return ItemAttributeValue + * + * @since 1.0.0 + */ public function getDefaultByValue(mixed $value) : ItemAttributeValue { foreach ($this->defaults as $default) { diff --git a/tests/Controller/ApiControllerTest.php b/tests/Controller/ApiControllerTest.php index 0c1e859..8e2d753 100755 --- a/tests/Controller/ApiControllerTest.php +++ b/tests/Controller/ApiControllerTest.php @@ -69,7 +69,7 @@ final class ApiControllerTest extends \PHPUnit\Framework\TestCase $permission = new AccountPermission(); $permission->setUnit(1); - $permission->setApp('backend'); + $permission->setApp(2); $permission->setPermission( PermissionType::READ | PermissionType::CREATE