Commit Graph

59 Commits

Author SHA1 Message Date
Rostislav Wolny
e2dc6855a8 Fix logCurlInformation causing error when called with one parameter
[MAILPOET-5493]
2023-07-31 14:22:03 +02:00
Brezo Cordero
b4b49166f2 Store the subscription type when updating the key
[MAILPOET-5223]
2023-05-22 11:52:23 +02:00
Rodrigo Primo
f836b03b56 Add return type to the methods moved from ModelValidator
[MAILPOET-4343]
2023-05-17 12:37:22 +02:00
Rodrigo Primo
00d021109c Move ModelValidator::validateNonRoleEmail() to a new Validator class
We want to remove/refactor the whole ModelValidator class as part of the
Doctrine refactor.

This commit moves the method ModelValidator::validateNonRoleEmail() to a
new Validator class as the method is not used by the validator system of
the Paris models. ModelValidator::validateEmail() was also moved as it
is called by ModelValidator::validateNonRoleEmail().

[MAILPOET-4343]
2023-05-17 12:37:22 +02:00
Rostislav Wolny
eb06b6d01e Preserve key state data when checking key and get invalid result
The state data contain info about plan limits etc. we don't want
to lose the info when key becomes underprivileged so that we can
show the limits in notifications.
[MAILPOET-5191]
2023-05-10 13:05:37 +02:00
Rostislav Wolny
cd5a023b35 Move onSettingsChange from Bridge service to SettingsChangeHandler
Bridge is a low level service that processes requests and responses to/from Bridge API.
This change is needed so that we can remove dependency on MailPoet\Util\License\Features\Subscribers
service from the Bridge. The dependecy is a higher level service and may easily cause a circular dependency issue.

The SettingsChangeHandler is service for handling side effects
when saving settings. This feels as a better place to put the functionality.
[MAILPOET-5191]
2023-05-10 13:05:37 +02:00
Rostislav Wolny
d9bec53efa Introduce new service for reporting subscriber stats
Bridge is a low level service that processes requests and responses to/from Bridge API.
This change is needed so that we can remove dependency on MailPoet\Util\License\Features\Subscribers
service from the Bridge. The dependecy is a higher level service and may easily cause a circular dependency issue.
[MAILPOET-5191]
2023-05-10 13:05:37 +02:00
Rostislav Wolny
4995ed93f0 Refactor invalidation of MSS key to non static method
This is the olny staically called method from the service. In this commit I refactored it to non-static so that it works properly with injected services.
[MAILPOET-5191]
2023-05-10 13:05:37 +02:00
Rostislav Wolny
638c7005d9 Refactor storing MSS and Premium key and state to use common private method
[MAILPOET-5191]
2023-05-10 13:05:37 +02:00
Rostislav Wolny
380e6d0f0a Use Bridge API error constants instead of strings for error mapping
[MAILPOET-5103]
2023-04-26 10:57:40 +02:00
Rostislav Wolny
06ac055112 Add Bridge API constant for subscribers limit error
[MAILPOET-5103]
2023-04-26 10:57:40 +02:00
Rostislav Wolny
37d6d612c4 Detect and save api key access restriction reason during key check
[MAILPOET-5103]
2023-04-26 10:57:40 +02:00
Rostislav Wolny
1f287e7af0 Use common private method for checking keys in Bridge API
The two public methods for checking MSS and Premium keys were almost
exact copies.
To avoid doing the same changes in two places I decided to refactor them to
internally use a common private method.
[MAILPOET-5103]
2023-04-26 10:57:40 +02:00
Rostislav Wolny
b47fc02ca4 Use underprivileged key for stats reporting also when saving settings
[MAILPOET-5165]
2023-04-04 18:45:41 +02:00
Jan Lysý
296ec54c3e Add function preparing error response
[MAILPOET-4639]
2023-01-16 13:46:07 +01:00
Jan Lysý
579de1cc86 Reduce the count of constants
[MAILPOET-4639]
2023-01-16 13:46:07 +01:00
Jan Lysý
c79787c677 Extract domain creation error messages from bridge to strings
As a part of those changes I tried to unify the array key with error messages.
[MAILPOET-4639]
2023-01-16 13:46:07 +01:00
Jan Lysý
07954dd968 Extract domain verification error messages from bridge to strings
As a part of those changes I tried to unify the array key with error messages.
[MAILPOET-4639]
2023-01-16 13:46:07 +01:00
Jan Lysý
2ace6da75b Extract email authorization error messages from bridge to strings
As a part of those changes I tried to unify the array key with error messages.
[MAILPOET-4639]
2023-01-16 13:46:07 +01:00
Jan Lysý
982568445b Extract sending error messages from bridge to strings
The original error is stored under a new key for easier handling an error state.
[MAILPOET-4639]
2023-01-16 13:46:07 +01:00
Jan Jakes
926620e8f8 Ignore strict types rule in all existing files that don't have it
[MAILPOET-2688]
2022-11-29 15:04:09 +01:00
David Remer
2557171953 Fix assert() in lib
[MAILPOET-4258]
2022-11-25 14:32:34 +01:00
Sam Najian
455e3fbb90 Fix issue of site-url in none-lowercase failing validation
When validating the MSS/Premium keys sending a none-lowercase
site-url would cause the bridge to correctly validating

[MAILPOET-4754]
2022-11-01 15:00:07 +01:00
Sam Najian
db94ec52e6 Acknowledge error code 403 with a different message
When recieving error code 403 from the Bridge, it's treated
as success but with with different message

[MAILPOET-4464]
2022-10-17 12:15:07 +02:00
Oluwaseun Olorunsola
d50aee988e Extract logic to get email domain to Helpers class
MAILPOET-4601
2022-09-26 11:13:40 +02:00
Oluwaseun Olorunsola
a006701d78 PR feedback: add type hints, create new methods and save on extra api request
MAILPOET-4601
2022-09-26 11:13:40 +02:00
Oluwaseun Olorunsola
fed8099227 Do not throw an error for checkAuthorizedEmailAddresses
Allow sending from any email address in a verified domain

MAILPOET-4601
2022-09-26 11:13:40 +02:00
Rostislav Wolny
90ff2db0d1 Fix errors caught by translations code sniff
[MAILPOET-4302]
2022-08-11 12:36:23 +02:00
Rostislav Wolny
968cbb67d8 Refactor response caching in AuthorizedSenderDomainController
In the previous implementation the getDomainRecords couldn't be used without
calling getAllSenderDomains or getVerifiedSenderDomains upfront.
[MAILPOET-4302]
2022-08-11 12:36:23 +02:00
Rostislav Wolny
d625457174 Add logging of unexpected formats from sender domain endpoints on Bridge API
[MAILPOET-4302]
2022-08-11 12:36:23 +02:00
Rostislav Wolny
c58c613959 Use WordPress translation functions directly
[MAILPOET-4302]
2022-08-11 12:36:23 +02:00
Rostislav Wolny
f4346c8957 Add links to sender domains API docs
[MAILPOET-4302]
2022-08-11 12:36:23 +02:00
Rostislav Wolny
543465d9de Fix indentation in Bridge
[MAILPOET-4302]
2022-08-11 12:36:23 +02:00
Rostislav Wolny
fd1ac46207 Fix typo in isDomainDmarcRestricted method name
[MAILPOET-4302]
2022-08-11 12:36:23 +02:00
Rostislav Wolny
4ffdd5bed5 Add declare(strict_types = 1); to newly added PHP files
[MAILPOET-4302]
2022-08-11 12:36:23 +02:00
Oluwaseun Olorunsola
fcd12b41b5 Update DMARC Status check
Handle edge case for domains where DMARC `p` policy is set to  reject or quarantine but `sp` (subdomain policy) is set to none

The previous implementation will return dmarcStatus === none when
sp is none but will not check for p policy as well.

If the `sp` is reject or quarantine, it would supersede the `p` status

MAILPOET-4302
2022-08-11 12:36:23 +02:00
Oluwaseun Olorunsola
5c3a9fe9b2 Add API methods for creating and verifying sender domains
We also included an API method for fetching Sender Domains

MAILPOET-4302
2022-08-11 12:36:23 +02:00
Oluwaseun Olorunsola
370de8050a Add mailpoet_verified_sender_domains to newsletters and settings page
Update tests

MAILPOET-4302
2022-08-11 12:36:23 +02:00
Oluwaseun Olorunsola
c961e0a363 Add AuthorizedSenderDomainController class and tests
MAILPOET-4302
2022-08-11 12:36:23 +02:00
Oluwaseun Olorunsola
417c0897e8 Add API methods for fetching, creating and verifying
sender domain

MAILPOET-4302
2022-08-11 12:36:23 +02:00
David Remer
97e160bf67 Fix WordPress.WP.I18n.MissingArgDomain
[MAILPOET-4524]
2022-08-09 13:23:16 +02:00
David Remer
218de96024 Fix WordPress.WP.I18n.MissingTranslatorsComment errors
[MAILPOET-4524]
2022-08-09 13:23:16 +02:00
David Remer
b05e6d414c Remove WP\Functions::__ and other translate functions
Under the new sniffer rules, those functions produce errors and, when those methods
are used, the sniffer can not properly be applied.

[MAILPOET-4524]
2022-08-09 13:23:16 +02:00
Rodrigo Primo
85e7997197 Replace Paris models with Doctrine entities in AuthorizedEmailsController
[MAILPOET-4347]
2022-08-03 16:27:41 +02:00
Oluwaseun Olorunsola
0a461bb846 Skip API request if Modal is not opened and remove unnecessary check from method
MAILPOET-4300
2022-07-18 12:53:49 +02:00
Oluwaseun Olorunsola
5d8b721a52 Annotate return type and use consistent return data
MAILPOET-4300
2022-07-18 12:53:49 +02:00
Oluwaseun Olorunsola
d93448c352 Fix typo and variable names error
MAILPOET-4300
2022-07-18 12:53:49 +02:00
Oluwaseun Olorunsola
cb68688f18 Refactor: update validateAuthorizedEmail to convert authorizedEmails to lowercase
MAILPOET-4300
2022-07-18 12:53:49 +02:00
Oluwaseun Olorunsola
ad171576f3 Fix: Show error message and better error handling.
MAILPOET-4300
2022-07-18 12:53:49 +02:00
Oluwaseun Olorunsola
ee70d2dd1e Implement polling and reconfirmation
This will poll the server every certain interval (15s) for the email address
and stop polling if the email is Authorized or the modal is closed or after a certain period of time (2 hours)

MAILPOET-4300
2022-07-18 12:53:49 +02:00