Skip to content

Commit

Permalink
De 1259 api routes endpoint (#905)
Browse files Browse the repository at this point in the history
* Add dependabot. Change php-cs-fixer

* Add match route
  • Loading branch information
oleksandr-mykhailenko authored Apr 27, 2024
1 parent 150d251 commit e8d6b30
Show file tree
Hide file tree
Showing 2 changed files with 63 additions and 0 deletions.
21 changes: 21 additions & 0 deletions src/Api/Route.php
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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);
}
}
42 changes: 42 additions & 0 deletions src/Model/Route/MatchRouteResponse.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
<?php

declare(strict_types=1);

/*
* Copyright (C) 2013 Mailgun
*
* This software may be modified and distributed under the terms
* of the MIT license. See the LICENSE file for details.
*/

namespace Mailgun\Model\Route;

use Mailgun\Model\ApiResponse;

final class MatchRouteResponse implements ApiResponse
{
/**
* @var Route|null
*/
private $route;

public static function create(array $data): self
{
$model = new self();
$model->route = isset($data['route']) ? Route::create($data['route']) : null;

return $model;
}

private function __construct()
{
}

/**
* @return Route|null
*/
public function getRoute(): ?Route
{
return $this->route;
}
}

0 comments on commit e8d6b30

Please sign in to comment.