2525
2626use Magento \Catalog \Api \Data \ProductInterface ;
2727use Magento \Framework \Exception \LocalizedException ;
28+ use Magento \Framework \Exception \NoSuchEntityException ;
2829use Magento \Framework \GraphQl \Config \Element \Field ;
2930use Magento \Framework \GraphQl \Query \ResolverInterface ;
3031use Magento \Framework \GraphQl \Schema \Type \ResolveInfo ;
32+ use Magento \Framework \UrlInterface ;
3133use Mageplaza \ProductLabels \Block \Label ;
3234use Mageplaza \ProductLabels \Helper \Data ;
35+ use Mageplaza \ProductLabels \Helper \Image ;
3336use Mageplaza \ProductLabels \Model \LabelRepository ;
3437use Mageplaza \ProductLabels \Model \Rule ;
38+ use Magento \Store \Model \StoreManagerInterface ;
3539
3640/**
3741 * Class LabelDataProvider
@@ -54,21 +58,29 @@ class LabelDataProvider implements ResolverInterface
5458 */
5559 protected $ helperData ;
5660
61+ /**
62+ * @var StoreManagerInterface
63+ */
64+ protected $ storeManager ;
65+
5766 /**
5867 * LabelDataProvider constructor.
5968 *
6069 * @param LabelRepository $labelRepository
6170 * @param Label $label
6271 * @param Data $helperData
72+ * @param StoreManagerInterface $storeManager
6373 */
6474 public function __construct (
6575 LabelRepository $ labelRepository ,
6676 Label $ label ,
67- Data $ helperData
77+ Data $ helperData ,
78+ StoreManagerInterface $ storeManager
6879 ) {
6980 $ this ->labelRepository = $ labelRepository ;
7081 $ this ->label = $ label ;
7182 $ this ->helperData = $ helperData ;
83+ $ this ->storeManager = $ storeManager ;
7284 }
7385
7486 /**
@@ -92,12 +104,25 @@ public function resolve(Field $field, $context, ResolveInfo $info, array $value
92104 foreach ($ this ->label ->getRulesApplyProduct ($ product ) as $ rule ) {
93105 if ($ this ->label ->validateProductInRule ($ rule , $ product ->getId ())) {
94106 $ label = $ this ->labelRepository ->getById ($ rule ->getId ());
95- $ label ->setLabelTemplate ($ this ->label -> getTemplateUrl ($ label ->getLabelTemplate ()));
96- $ label ->setListTemplate ($ this ->helperData -> getImageUrl ($ label ->getListTemplate ()));
107+ $ label ->setLabelTemplate ($ this ->getImageUrl ($ label ->getLabelTemplate ()));
108+ $ label ->setListTemplate ($ this ->getImageUrl ($ label ->getListTemplate ()));
97109 $ labelData [] = $ label ;
98110 }
99111 }
100112
101113 return $ labelData ;
102114 }
115+
116+ /**
117+ * @param string $fileName
118+ *
119+ * @return string
120+ * @throws NoSuchEntityException
121+ */
122+ public function getImageUrl ($ fileName )
123+ {
124+ $ mediaPath = $ this ->storeManager ->getStore ()->getBaseUrl (UrlInterface::URL_TYPE_MEDIA );
125+
126+ return $ mediaPath . Image::TEMPLATE_MEDIA_PATH . '/ ' . Image::TEMPLATE_MEDIA_LABEL . '/ ' . $ fileName ;
127+ }
103128}
0 commit comments