From e8d6b30c6ab70479d12b82af25b8440524c9a98c Mon Sep 17 00:00:00 2001 From: Oleksandr Mykhailenko Date: Sat, 27 Apr 2024 12:57:52 +0300 Subject: [PATCH] De 1259 api routes endpoint (#905) * Add dependabot. Change php-cs-fixer * Add match route --- src/Api/Route.php | 21 +++++++++++++ src/Model/Route/MatchRouteResponse.php | 42 ++++++++++++++++++++++++++ 2 files changed, 63 insertions(+) create mode 100644 src/Model/Route/MatchRouteResponse.php diff --git a/src/Api/Route.php b/src/Api/Route.php index 2313db3b..bcf28702 100644 --- a/src/Api/Route.php +++ b/src/Api/Route.php @@ -15,6 +15,7 @@ use Mailgun\Model\Route\CreateResponse; use Mailgun\Model\Route\DeleteResponse; use Mailgun\Model\Route\IndexResponse; +use Mailgun\Model\Route\MatchRouteResponse; use Mailgun\Model\Route\ShowResponse; use Mailgun\Model\Route\UpdateResponse; use Psr\Http\Client\ClientExceptionInterface; @@ -154,4 +155,24 @@ public function delete(string $routeId, array $requestHeaders = []) return $this->hydrateResponse($response, DeleteResponse::class); } + + /** + * Match address to route + * @param string $address + * @param array $requestHeaders + * @return MatchRouteResponse + * @throws ClientExceptionInterface + */ + public function matchAddressToRoute(string $address, array $requestHeaders = []) + { + Assert::stringNotEmpty($address); + + $query = [ + 'address' => $address, + ]; + + $response = $this->httpGet('/v3/routes/match', $query, $requestHeaders); + + return $this->hydrateResponse($response, MatchRouteResponse::class); + } } diff --git a/src/Model/Route/MatchRouteResponse.php b/src/Model/Route/MatchRouteResponse.php new file mode 100644 index 00000000..50891976 --- /dev/null +++ b/src/Model/Route/MatchRouteResponse.php @@ -0,0 +1,42 @@ +route = isset($data['route']) ? Route::create($data['route']) : null; + + return $model; + } + + private function __construct() + { + } + + /** + * @return Route|null + */ + public function getRoute(): ?Route + { + return $this->route; + } +}