Skip to content

Commit d2a9538

Browse files
author
Andrey Helldar
authored
Merge pull request #87 from cashier-provider/3.x
Added the ability to use different query methods
2 parents 980b65d + b003faa commit d2a9538

File tree

6 files changed

+24
-28
lines changed

6 files changed

+24
-28
lines changed

composer.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,12 @@
2323
"php": "^7.3 || ^8.0",
2424
"ext-json": "*",
2525
"doctrine/dbal": "^2.6 || ^3.0",
26-
"dragon-code/contracts": "^2.16",
26+
"dragon-code/contracts": "^2.18",
2727
"dragon-code/laravel-cache": "^2.12",
2828
"dragon-code/laravel-support": "^3.3.2",
2929
"dragon-code/simple-dto": "^2.2",
3030
"dragon-code/support": "^5.2",
31+
"fig/http-message-util": "^1.1",
3132
"guzzlehttp/guzzle": "^6.5 || ^7.0",
3233
"illuminate/broadcasting": "^6.0 || ^7.0 || ^8.0 || ^9.0",
3334
"illuminate/console": "^6.0 || ^7.0 || ^8.0 || ^9.0",

src/Concerns/Logs.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,9 @@ protected function logInfo(ModelResource $model, string $method, Builder $url, a
3333
HttpLog::info($model, $method, $url, $request, $response, $status_code, $model->getExtra());
3434
}
3535

36-
protected function logError(ModelResource $model, string $method, Request $request, Throwable $exception): void
36+
protected function logError(ModelResource $model, Request $request, Throwable $exception): void
3737
{
38-
$this->logInfo($model, $method, $request->uri(), $request->getRawBody(), [
38+
$this->logInfo($model, $request->method(), $request->uri(), $request->getRawBody(), [
3939
'Message' => $exception->getMessage(),
4040
], $this->getStatusCode($exception));
4141
}

src/Facades/Helpers/Http.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,11 @@
2525
use Illuminate\Support\Facades\Facade;
2626

2727
/**
28-
* @method static array post(Request $request, ExceptionManager $manager)
28+
* @method static array request(Request $request, ExceptionManager $manager)
2929
*/
3030
class Http extends Facade
3131
{
32-
protected static function getFacadeAccessor()
32+
protected static function getFacadeAccessor(): string
3333
{
3434
return Helper::class;
3535
}

src/Helpers/Http.php

Lines changed: 7 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -51,23 +51,11 @@ public function __construct(Client $client)
5151
$this->client = $client;
5252
}
5353

54-
/**
55-
* @param \DragonCode\Contracts\Cashier\Http\Request $request
56-
* @param \DragonCode\Contracts\Exceptions\Manager $manager
57-
*
58-
* @throws \DragonCode\Contracts\Exceptions\Http\ClientException
59-
*
60-
* @return array
61-
*/
62-
public function post(Request $request, ExceptionManagerContract $manager): array
63-
{
64-
return $this->request('post', $request, $manager);
65-
}
66-
67-
protected function request(string $method, Request $request, ExceptionManagerContract $exception): array
54+
public function request(Request $request, ExceptionManagerContract $exception): array
6855
{
6956
try {
70-
return $this->retry($this->tries, function () use ($method, $request, $exception) {
57+
return $this->retry($this->tries, function () use ($request, $exception) {
58+
$method = $request->method();
7159
$uri = $request->uri();
7260
$headers = $request->headers();
7361
$data = $request->body();
@@ -76,8 +64,7 @@ protected function request(string $method, Request $request, ExceptionManagerCon
7664

7765
$params = compact('headers') + $options + $this->body($data, $headers);
7866

79-
/** @var \Psr\Http\Message\ResponseInterface $response */
80-
$response = $this->client->{$method}($uri, $params);
67+
$response = $this->client->request($method, $uri, $params);
8168

8269
$content = $this->decode($response);
8370

@@ -92,19 +79,19 @@ protected function request(string $method, Request $request, ExceptionManagerCon
9279
} catch (ClientException $e) {
9380
$this->failedEvent($e);
9481

95-
$this->logError($request->model(), $method, $request, $e);
82+
$this->logError($request->model(), $request, $e);
9683

9784
throw $e;
9885
} catch (GuzzleClientException $e) {
9986
$response = $e->getResponse();
10087

10188
$content = $this->decode($response);
10289

103-
$this->logError($request->model(), $method, $request, $e);
90+
$this->logError($request->model(), $request, $e);
10491

10592
$exception->throw($request->uri(), $response->getStatusCode(), $content);
10693
} catch (Throwable $e) {
107-
$this->logError($request->model(), $method, $request, $e);
94+
$this->logError($request->model(), $request, $e);
10895

10996
$exception->throw($request->uri(), $e->getCode(), [
11097
'Message' => $e->getMessage(),

src/Http/Request.php

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
use DragonCode\Contracts\Cashier\Resources\Model;
2828
use DragonCode\Contracts\Http\Builder as HttpBuilderContract;
2929
use DragonCode\Support\Concerns\Makeable;
30+
use Fig\Http\Message\RequestMethodInterface;
3031

3132
/**
3233
* @method static Contract make(Model $model)
@@ -39,6 +40,9 @@ abstract class Request implements Contract
3940
/** @var \DragonCode\Contracts\Cashier\Resources\Model */
4041
protected $model;
4142

43+
/** @var string HTTP Request method */
44+
protected $method = RequestMethodInterface::METHOD_POST;
45+
4246
/** @var string */
4347
protected $production_host;
4448

@@ -71,6 +75,11 @@ public function model(): Model
7175
return $this->model;
7276
}
7377

78+
public function method(): string
79+
{
80+
return $this->method;
81+
}
82+
7483
public function uri(): HttpBuilderContract
7584
{
7685
return $this->getUriBuilder()->getWithPath($this->getPath());

src/Services/Driver.php

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,7 @@ public function __construct(DriverConfig $config, Model $payment)
7070
public function statuses(): Statuses
7171
{
7272
return $this->resolveDynamicCallback($this->statuses, function (string $statuses) {
73-
// @var \DragonCode\Contracts\Cashier\Helpers\Statuses|string $statuses
74-
73+
/** @var \DragonCode\Contracts\Cashier\Helpers\Statuses|string $statuses */
7574
return $statuses::make($this->payment);
7675
});
7776
}
@@ -98,7 +97,7 @@ protected function request(RequestResource $request, string $response): Response
9897
{
9998
$manager = $this->resolveExceptionManager();
10099

101-
$content = Http::post($request, $manager);
100+
$content = Http::request($request, $manager);
102101

103102
return $response::make($content);
104103
}

0 commit comments

Comments
 (0)