Skip to content

Commit 30777db

Browse files
author
Auto Mation
committed
TASK: Updating import SDK
1 parent 4751e1a commit 30777db

File tree

6 files changed

+39
-46
lines changed

6 files changed

+39
-46
lines changed
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
hash=64beef3a8f3cb2824ae9a2dffbed72ce612fbe87
1+
hash=90d341d55aa4d2b4820623d19bb2a069ed8cae03
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
hash=469c219cf815f2368aa427a54d7677e00ce0c1d0
1+
hash=90d341d55aa4d2b4820623d19bb2a069ed8cae03
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
hash=469c219cf815f2368aa427a54d7677e00ce0c1d0
1+
hash=90d341d55aa4d2b4820623d19bb2a069ed8cae03

lib/commercetools-import/src/Models/Customfields/FieldContainer.php

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,8 @@
88

99
namespace Commercetools\Import\Models\Customfields;
1010

11-
use Commercetools\Base\DateTimeImmutableCollection;
12-
use Commercetools\Base\JsonObject;
11+
use Commercetools\Base\CMap;
1312

14-
interface FieldContainer extends JsonObject
13+
interface FieldContainer extends CMap
1514
{
16-
public const FIELD_PATTERN0 = '//';
1715
}

lib/commercetools-import/src/Models/Customfields/FieldContainerBuilder.php

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,25 +9,38 @@
99
namespace Commercetools\Import\Models\Customfields;
1010

1111
use Commercetools\Base\Builder;
12-
use Commercetools\Base\DateTimeImmutableCollection;
13-
use Commercetools\Base\JsonObject;
14-
use Commercetools\Base\JsonObjectModel;
15-
use Commercetools\Base\MapperFactory;
12+
use Commercetools\Base\MapperMap;
1613
use stdClass;
1714

1815
/**
1916
* @implements Builder<FieldContainer>
17+
* @extends MapperMap<FieldContainer>
2018
*/
21-
final class FieldContainerBuilder implements Builder
19+
final class FieldContainerBuilder extends MapperMap implements Builder
2220
{
23-
public function build(): FieldContainer
21+
/**
22+
* @psalm-return callable(string):?FieldContainer
23+
*/
24+
protected function mapper()
2425
{
25-
return new FieldContainerModel(
26-
);
26+
return
27+
/**
28+
* @psalm-return ?FieldContainer
29+
*/
30+
function (string $key) {
31+
$data = $this->get($key);
32+
if ($data instanceof stdClass) {
33+
$data = FieldContainerModel::of($data);
34+
}
35+
return $data;
36+
};
2737
}
2838

29-
public static function of(): FieldContainerBuilder
39+
/**
40+
* @return FieldContainer
41+
*/
42+
public function build()
3043
{
31-
return new self();
44+
return new FieldContainerModel($this->toArray());
3245
}
3346
}

lib/commercetools-import/src/Models/Customfields/FieldContainerModel.php

Lines changed: 11 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -8,42 +8,24 @@
88

99
namespace Commercetools\Import\Models\Customfields;
1010

11-
use Commercetools\Base\DateTimeImmutableCollection;
12-
use Commercetools\Base\JsonObject;
13-
use Commercetools\Base\JsonObjectModel;
14-
use Commercetools\Base\MapperFactory;
15-
use stdClass;
11+
use Commercetools\Base\MapperMap;
1612

1713
/**
1814
* @internal
1915
*/
20-
final class FieldContainerModel extends JsonObjectModel implements FieldContainer
16+
final class FieldContainerModel extends MapperMap implements FieldContainer
2117
{
2218
/**
23-
* @psalm-suppress MissingParamType
19+
* @psalm-return callable(string):?mixed
2420
*/
25-
public function __construct(
26-
) {
27-
}
28-
29-
30-
31-
32-
/**
33-
* @return mixed
34-
*/
35-
public function by(string $key)
21+
protected function mapper()
3622
{
37-
$data = $this->raw($key);
38-
if (is_null($data)) {
39-
return null;
40-
}
41-
if (preg_match(FieldContainer::FIELD_PATTERN0, $key) === 1) {
42-
/** @psalm-var stdClass|array<string, mixed> $data */
43-
44-
return CustomFieldModel::of($data);
45-
}
46-
47-
return $data;
23+
return
24+
/**
25+
* @psalm-return ?mixed
26+
*/
27+
function (string $key) {
28+
return $this->get($key);
29+
};
4830
}
4931
}

0 commit comments

Comments
 (0)