8
8
namespace Spryker \Glue \WishlistsRestApi \Processor \Mapper ;
9
9
10
10
use Generated \Shared \Transfer \RestWishlistItemsAttributesTransfer ;
11
+ use Generated \Shared \Transfer \WishlistItemRequestTransfer ;
11
12
use Generated \Shared \Transfer \WishlistItemTransfer ;
12
13
13
14
class WishlistItemMapper implements WishlistItemMapperInterface
@@ -17,12 +18,21 @@ class WishlistItemMapper implements WishlistItemMapperInterface
17
18
*/
18
19
protected $ restWishlistItemsAttributesMapperPlugins ;
19
20
21
+ /**
22
+ * @var array<\Spryker\Glue\WishlistsRestApiExtension\Dependency\Plugin\WishlistItemRequestMapperPluginInterface>
23
+ */
24
+ protected $ wishlistItemRequestMapperPlugins ;
25
+
20
26
/**
21
27
* @param array<\Spryker\Glue\WishlistsRestApiExtension\Dependency\Plugin\RestWishlistItemsAttributesMapperPluginInterface> $restWishlistItemsAttributesMapperPlugins
28
+ * @param array<\Spryker\Glue\WishlistsRestApiExtension\Dependency\Plugin\WishlistItemRequestMapperPluginInterface> $wishlistItemRequestMapperPlugins
22
29
*/
23
- public function __construct (array $ restWishlistItemsAttributesMapperPlugins = [])
24
- {
30
+ public function __construct (
31
+ array $ restWishlistItemsAttributesMapperPlugins = [],
32
+ array $ wishlistItemRequestMapperPlugins = []
33
+ ) {
25
34
$ this ->restWishlistItemsAttributesMapperPlugins = $ restWishlistItemsAttributesMapperPlugins ;
35
+ $ this ->wishlistItemRequestMapperPlugins = $ wishlistItemRequestMapperPlugins ;
26
36
}
27
37
28
38
/**
@@ -45,6 +55,26 @@ public function mapWishlistItemTransferToRestWishlistItemsAttributes(
45
55
return $ restWishlistItemsAttributesTransfer ;
46
56
}
47
57
58
+ /**
59
+ * @param \Generated\Shared\Transfer\RestWishlistItemsAttributesTransfer $restWishlistItemsAttributesRequestTransfer
60
+ * @param \Generated\Shared\Transfer\WishlistItemRequestTransfer $wishlistItemRequestTransfer
61
+ *
62
+ * @return \Generated\Shared\Transfer\WishlistItemRequestTransfer
63
+ */
64
+ public function mapRestWishlistItemsAttributesToWishlistItemRequest (
65
+ RestWishlistItemsAttributesTransfer $ restWishlistItemsAttributesRequestTransfer ,
66
+ WishlistItemRequestTransfer $ wishlistItemRequestTransfer
67
+ ): WishlistItemRequestTransfer {
68
+ $ wishlistItemRequestTransfer
69
+ ->fromArray ($ restWishlistItemsAttributesRequestTransfer ->toArray (), true )
70
+ ->setSku ($ restWishlistItemsAttributesRequestTransfer ->getSku ());
71
+
72
+ return $ this ->executeWishlistItemRequestMapperPlugins (
73
+ $ restWishlistItemsAttributesRequestTransfer ,
74
+ $ wishlistItemRequestTransfer ,
75
+ );
76
+ }
77
+
48
78
/**
49
79
* @param \Generated\Shared\Transfer\WishlistItemTransfer $wishlistItemTransfer
50
80
* @param \Generated\Shared\Transfer\RestWishlistItemsAttributesTransfer $restWishlistItemsAttributesTransfer
@@ -64,4 +94,24 @@ protected function executeRestWishlistItemsAttributesMapperPlugins(
64
94
65
95
return $ restWishlistItemsAttributesTransfer ;
66
96
}
97
+
98
+ /**
99
+ * @param \Generated\Shared\Transfer\RestWishlistItemsAttributesTransfer $restWishlistItemsAttributesRequestTransfer
100
+ * @param \Generated\Shared\Transfer\WishlistItemRequestTransfer $wishlistItemRequestTransfer
101
+ *
102
+ * @return \Generated\Shared\Transfer\WishlistItemRequestTransfer
103
+ */
104
+ protected function executeWishlistItemRequestMapperPlugins (
105
+ RestWishlistItemsAttributesTransfer $ restWishlistItemsAttributesRequestTransfer ,
106
+ WishlistItemRequestTransfer $ wishlistItemRequestTransfer
107
+ ): WishlistItemRequestTransfer {
108
+ foreach ($ this ->wishlistItemRequestMapperPlugins as $ wishlistItemRequestMapperPlugin ) {
109
+ $ wishlistItemRequestTransfer = $ wishlistItemRequestMapperPlugin ->map (
110
+ $ restWishlistItemsAttributesRequestTransfer ,
111
+ $ wishlistItemRequestTransfer ,
112
+ );
113
+ }
114
+
115
+ return $ wishlistItemRequestTransfer ;
116
+ }
67
117
}
0 commit comments