Fix the issue with verifyMssKey overriding is_approved

The verifyMssKey side effect handler was overriding the value
of is_approved when updating the state.

[MAILPOET-4633]
This commit is contained in:
Sam Najian
2022-12-16 21:20:07 +01:00
committed by Aschepikov
parent e7e4276bf2
commit cf5718122f
3 changed files with 25 additions and 4 deletions

View File

@ -1,3 +1,4 @@
import { cloneDeep, set } from 'lodash';
import { select } from '@wordpress/data'; import { select } from '@wordpress/data';
import { MailPoet } from 'mailpoet'; import { MailPoet } from 'mailpoet';
@ -19,6 +20,7 @@ export function* verifyMssKey(key: string) {
action: 'checkMSSKey', action: 'checkMSSKey',
data: { key }, data: { key },
}; };
if (!success) { if (!success) {
return updateKeyActivationState({ return updateKeyActivationState({
mssStatus: MssStatus.INVALID, mssStatus: MssStatus.INVALID,
@ -34,9 +36,20 @@ export function* verifyMssKey(key: string) {
return updateKeyActivationState(fields); return updateKeyActivationState(fields);
} }
const data = select(STORE_NAME).getSettings(); const data = cloneDeep(select(STORE_NAME).getSettings());
data.mta_group = 'mailpoet'; data.mta_group = 'mailpoet';
data.mta = { ...data.mta, method: 'MailPoet', mailpoet_api_key: key }; data.mta = {
...data.mta,
method: 'MailPoet',
mailpoet_api_key: key,
};
data.mta = set(
data.mta,
'mailpoet_api_key_state.data.is_approved',
res.data.result.data.is_approved,
);
data.signup_confirmation.enabled = '1'; data.signup_confirmation.enabled = '1';
const call = yield { const call = yield {

View File

@ -92,7 +92,15 @@ export type Settings = {
| 'already_used' | 'already_used'
| 'check_error' | 'check_error'
| 'valid_underprivileged'; | 'valid_underprivileged';
data: Record<string, unknown>; data: Record<string, unknown> & {
subscriber_limit: number;
email_volume_limit: number;
emails_sent: number;
public_id: string;
support_tier: string;
site_active_subscriber_limit: number;
is_approved: boolean;
};
code: number; code: number;
}; };
}; };

View File

@ -126,7 +126,7 @@ class Services extends APIEndpoint {
} }
if ($successMessage) { if ($successMessage) {
return $this->successResponse(['message' => $successMessage, 'state' => $state]); return $this->successResponse(['message' => $successMessage, 'state' => $state, 'result' => $result]);
} }
switch ($state) { switch ($state) {