1
1
<?php
2
2
/**
3
- * Copyright 2025 Adobe
3
+ * Copyright 2020 Adobe
4
4
* All Rights Reserved.
5
5
*/
6
6
declare (strict_types=1 );
7
7
8
8
namespace Magento \CustomerGraphQl \Model \Resolver ;
9
9
10
+ use Exception ;
11
+ use Magento \Customer \Model \EmailNotificationInterface ;
10
12
use Magento \CustomerGraphQl \Model \Customer \ExtractCustomerData ;
11
13
use Magento \CustomerGraphQl \Model \Customer \GetCustomer ;
12
14
use Magento \CustomerGraphQl \Model \Customer \UpdateCustomerAccount ;
15
+ use Magento \Framework \App \ObjectManager ;
13
16
use Magento \Framework \GraphQl \Config \Element \Field ;
14
17
use Magento \Framework \GraphQl \Exception \GraphQlAuthorizationException ;
18
+ use Magento \Framework \GraphQl \Query \Resolver \ContextInterface as ResolverContext ;
15
19
use Magento \Framework \GraphQl \Query \Resolver \Value ;
16
20
use Magento \Framework \GraphQl \Query \ResolverInterface ;
17
21
use Magento \Framework \GraphQl \Schema \Type \ResolveInfo ;
@@ -37,31 +41,40 @@ class UpdateCustomerEmail implements ResolverInterface
37
41
*/
38
42
private $ extractCustomerData ;
39
43
44
+ /**
45
+ * @var EmailNotificationInterface
46
+ */
47
+ private $ emailNotification ;
48
+
40
49
/**
41
50
* @param GetCustomer $getCustomer
42
51
* @param UpdateCustomerAccount $updateCustomerAccount
43
52
* @param ExtractCustomerData $extractCustomerData
53
+ * @param EmailNotificationInterface|null $emailNotification
44
54
*/
45
55
public function __construct (
46
56
GetCustomer $ getCustomer ,
47
57
UpdateCustomerAccount $ updateCustomerAccount ,
48
- ExtractCustomerData $ extractCustomerData
58
+ ExtractCustomerData $ extractCustomerData ,
59
+ ?EmailNotificationInterface $ emailNotification = null
49
60
) {
50
61
$ this ->getCustomer = $ getCustomer ;
51
62
$ this ->updateCustomerAccount = $ updateCustomerAccount ;
52
63
$ this ->extractCustomerData = $ extractCustomerData ;
64
+ $ this ->emailNotification = $ emailNotification
65
+ ?? ObjectManager::getInstance ()->get (EmailNotificationInterface::class);
53
66
}
54
67
55
68
/**
56
69
* Resolve customer email update mutation
57
70
*
58
- * @param \Magento\Framework\GraphQl\Config\Element\ Field $field
59
- * @param \Magento\Framework\GraphQl\Query\Resolver\ContextInterface $context
71
+ * @param Field $field
72
+ * @param ResolverContext $context
60
73
* @param ResolveInfo $info
61
74
* @param array|null $value
62
75
* @param array|null $args
63
76
* @return array|Value
64
- * @throws \ Exception
77
+ * @throws Exception
65
78
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
66
79
*/
67
80
public function resolve (
@@ -77,6 +90,7 @@ public function resolve(
77
90
}
78
91
79
92
$ customer = $ this ->getCustomer ->execute ($ context );
93
+ $ customerOriginalEmail = $ customer ->getEmail ();
80
94
$ customer ->setData ('ignore_validation_flag ' , true );
81
95
$ this ->updateCustomerAccount ->execute (
82
96
$ customer ,
@@ -86,7 +100,11 @@ public function resolve(
86
100
],
87
101
$ context ->getExtensionAttributes ()->getStore ()
88
102
);
89
-
103
+ $ this ->emailNotification ->credentialsChanged (
104
+ $ customer ,
105
+ $ customerOriginalEmail ,
106
+ false
107
+ );
90
108
return ['customer ' => $ this ->extractCustomerData ->execute ($ customer )];
91
109
}
92
110
}
0 commit comments