Skip to content

Commit

Permalink
additional request api
Browse files Browse the repository at this point in the history
  • Loading branch information
robertdrakedennis committed Mar 31, 2023
1 parent 964d137 commit 88896cb
Show file tree
Hide file tree
Showing 19 changed files with 206 additions and 12 deletions.
4 changes: 3 additions & 1 deletion src/Requests/Baskets/CreateBasketRequest.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,9 @@ public function __construct(
protected Method $method = Method::POST;

/**
* Define the endpoint for the request
* Create a basket that can be used to pay for items.
*
* @see https://docs.tebex.io/tebex-checkout-apis/eICB5LG5njxwP9wLlQv4/apis#create-a-basket-that-can-be-used-to-pay-for-items
*/
public function resolveEndpoint(): string
{
Expand Down
4 changes: 3 additions & 1 deletion src/Requests/Baskets/GetBasketRequest.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,9 @@ public function __construct(
protected Method $method = Method::GET;

/**
* Define the endpoint for the request
* Fetch a basket by its identifier.
*
* @see https://docs.tebex.io/tebex-checkout-apis/eICB5LG5njxwP9wLlQv4/apis#fetch-a-basket-by-its-identifier
*/
public function resolveEndpoint(): string
{
Expand Down
6 changes: 4 additions & 2 deletions src/Requests/Baskets/Packages/AddPackageRequest.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ class AddPackageRequest extends Request implements HasBody

public function __construct(
protected string $ident,
protected object $package,
protected array $package,
protected string $type,
) {
}
Expand All @@ -24,7 +24,9 @@ public function __construct(
protected Method $method = Method::POST;

/**
* Define the endpoint for the request
* Add a package to a basket.
*
* @see https://docs.tebex.io/tebex-checkout-apis/eICB5LG5njxwP9wLlQv4/apis#add-package-to-a-basket
*/
public function resolveEndpoint(): string
{
Expand Down
4 changes: 3 additions & 1 deletion src/Requests/Baskets/Packages/DeletePackageRequest.php
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,9 @@ public function __construct(
protected Method $method = Method::DELETE;

/**
* Define the endpoint for the request
* Remove a row from the basket
*
* @see https://docs.tebex.io/tebex-checkout-apis/eICB5LG5njxwP9wLlQv4/apis#remove-a-row-from-the-basket
*/
public function resolveEndpoint(): string
{
Expand Down
4 changes: 3 additions & 1 deletion src/Requests/Baskets/Sales/CreateSaleRequest.php
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,9 @@ public function __construct(
protected Method $method = Method::POST;

/**
* Define the endpoint for the request
* Add a sale to the basket
*
* @see https://docs.tebex.io/tebex-checkout-apis/eICB5LG5njxwP9wLlQv4/apis#add-a-sale-to-the-basket
*/
public function resolveEndpoint(): string
{
Expand Down
4 changes: 3 additions & 1 deletion src/Requests/Checkout/CreateCheckoutRequest.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,9 @@ public function __construct(
protected Method $method = Method::POST;

/**
* Define the endpoint for the request
* Create a checkout request.
*
* @see https://docs.tebex.io/tebex-checkout-apis/eICB5LG5njxwP9wLlQv4/apis#create-a-checkout-request
*/
public function resolveEndpoint(): string
{
Expand Down
4 changes: 3 additions & 1 deletion src/Requests/Payments/GetPaymentRequest.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,9 @@ public function __construct(
protected Method $method = Method::GET;

/**
* Define the endpoint for the request
* Fetch a payment by its transaction ID
*
* @see https://docs.tebex.io/tebex-checkout-apis/eICB5LG5njxwP9wLlQv4/apis#fetch-a-payment-by-its-transaction-id
*/
public function resolveEndpoint(): string
{
Expand Down
4 changes: 3 additions & 1 deletion src/Requests/Payments/RefundPaymentRequest.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,9 @@ public function __construct(
protected Method $method = Method::POST;

/**
* Define the endpoint for the request
* Refund a payment by its transaction ID
*
* @see https://docs.tebex.io/tebex-checkout-apis/eICB5LG5njxwP9wLlQv4/apis#refund-a-payment-by-its-transaction-id
*/
public function resolveEndpoint(): string
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,9 @@ public function __construct(
protected Method $method = Method::DELETE;

/**
* Define the endpoint for the request
* Cancel a recurring payment.
*
* @see https://docs.tebex.io/tebex-checkout-apis/eICB5LG5njxwP9wLlQv4/apis#cancel-a-recurring-payment
*/
public function resolveEndpoint(): string
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,9 @@ public function __construct(
protected Method $method = Method::GET;

/**
* Define the endpoint for the request
* Fetch a recurring payment (subscription) by its reference.
*
* @see https://docs.tebex.io/tebex-checkout-apis/eICB5LG5njxwP9wLlQv4/apis#fetch-a-recurring-payment-subscription-by-its-reference
*/
public function resolveEndpoint(): string
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,9 @@ public function __construct(
protected Method $method = Method::PUT;

/**
* Define the endpoint for the request
* Update a subscription with a new product / amount to pay - replacing the existing product.
*
* @see https://docs.tebex.io/tebex-checkout-apis/eICB5LG5njxwP9wLlQv4/apis#update-a-subscription-with-a-new-product-amount-to-pay-replacing-the-existing-product
*/
public function resolveEndpoint(): string
{
Expand Down
20 changes: 20 additions & 0 deletions src/Resources/BasketResource.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<?php

namespace Shimmer\LaravelTebexCheckout\Resources;

use Saloon\Contracts\Response;
use Shimmer\LaravelTebexCheckout\Requests\Baskets\CreateBasketRequest;
use Shimmer\LaravelTebexCheckout\Requests\Baskets\GetBasketRequest;

class BasketResource extends Resource
{
public function get(string $id): Response
{
return $this->connector->send(new GetBasketRequest($id));
}

public function create(string $returnUrl, string $completeUrl): Response
{
return $this->connector->send(new CreateBasketRequest($returnUrl, $completeUrl));
}
}
14 changes: 14 additions & 0 deletions src/Resources/CheckoutResource.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<?php

namespace Shimmer\LaravelTebexCheckout\Resources;

use Saloon\Contracts\Response;
use Shimmer\LaravelTebexCheckout\Requests\Checkout\CreateCheckoutRequest;

class CheckoutResource extends Resource
{
public function create(array $basket, array $items): Response
{
return $this->connector->send(new CreateCheckoutRequest($basket, $items));
}
}
20 changes: 20 additions & 0 deletions src/Resources/PackageResource.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<?php

namespace Shimmer\LaravelTebexCheckout\Resources;

use Saloon\Contracts\Response;
use Shimmer\LaravelTebexCheckout\Requests\Baskets\Packages\AddPackageRequest;
use Shimmer\LaravelTebexCheckout\Requests\Baskets\Packages\DeletePackageRequest;

class PackageResource extends Resource
{
public function create(string $id, array $package, string $type): Response
{
return $this->connector->send(new AddPackageRequest($id, $package, $type));
}

public function delete(string $id, string $rowID): Response
{
return $this->connector->send(new DeletePackageRequest($id, $rowID));
}
}
25 changes: 25 additions & 0 deletions src/Resources/PaymentResource.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<?php

namespace Shimmer\LaravelTebexCheckout\Resources;

use Saloon\Contracts\Response;
use Shimmer\LaravelTebexCheckout\Requests\Payments\GetPaymentRequest;
use Shimmer\LaravelTebexCheckout\Requests\Payments\RefundPaymentRequest;

class PaymentResource extends Resource
{
public function get(string $txnID): Response
{
return $this->connector->send(new GetPaymentRequest($txnID));
}

public function refund(string $txnID): Response
{
return $this->connector->send(new RefundPaymentRequest($txnID));
}

public function delete(string $txnID): Response
{
return $this->refund($txnID);
}
}
31 changes: 31 additions & 0 deletions src/Resources/RecurringPaymentResource.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
<?php

namespace Shimmer\LaravelTebexCheckout\Resources;

use Saloon\Contracts\Response;
use Shimmer\LaravelTebexCheckout\Requests\RecurringPayments\CancelRecurringPaymentRequest;
use Shimmer\LaravelTebexCheckout\Requests\RecurringPayments\GetRecurringPaymentRequest;
use Shimmer\LaravelTebexCheckout\Requests\RecurringPayments\UpdateRecurringPaymentRequest;

class RecurringPaymentResource extends Resource
{
public function get(string $reference): Response
{
return $this->connector->send(new GetRecurringPaymentRequest($reference));
}

public function update(string $reference, array $items): Response
{
return $this->connector->send(new UpdateRecurringPaymentRequest($reference, $items));
}

public function cancel(string $reference): Response
{
return $this->connector->send(new CancelRecurringPaymentRequest($reference));
}

public function delete(string $reference): Response
{
return $this->cancel($reference);
}
}
12 changes: 12 additions & 0 deletions src/Resources/Resource.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?php

namespace Shimmer\LaravelTebexCheckout\Resources;

use Saloon\Contracts\Connector;

class Resource
{
public function __construct(
protected Connector $connector
){}
}
14 changes: 14 additions & 0 deletions src/Resources/SaleResource.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<?php

namespace Shimmer\LaravelTebexCheckout\Resources;

use Saloon\Contracts\Response;
use Shimmer\LaravelTebexCheckout\Requests\Baskets\Sales\CreateSaleRequest;

class SaleResource extends Resource
{
public function create(string $id, string $name, string $discountType, float $amount): Response
{
return $this->connector->send(new CreateSaleRequest($id, $name, $discountType, $amount));
}
}
36 changes: 36 additions & 0 deletions src/TebexCheckout.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,12 @@
use Saloon\Http\Auth\BasicAuthenticator;
use Saloon\Http\Connector;
use Saloon\Traits\Plugins\AcceptsJson;
use Shimmer\LaravelTebexCheckout\Resources\BasketResource;
use Shimmer\LaravelTebexCheckout\Resources\CheckoutResource;
use Shimmer\LaravelTebexCheckout\Resources\PackageResource;
use Shimmer\LaravelTebexCheckout\Resources\PaymentResource;
use Shimmer\LaravelTebexCheckout\Resources\RecurringPaymentResource;
use Shimmer\LaravelTebexCheckout\Resources\SaleResource;

class TebexCheckout extends Connector
{
Expand Down Expand Up @@ -52,4 +58,34 @@ protected function defaultAuth(): ?Authenticator
$this->password
);
}

public function basket(): BasketResource
{
return new BasketResource($this);
}

public function packages(): PackageResource
{
return new PackageResource($this);
}

public function sales(): SaleResource
{
return new SaleResource($this);
}

public function checkout(): CheckoutResource
{
return new CheckoutResource($this);
}

public function payments(): PaymentResource
{
return new PaymentResource($this);
}

public function recurringPayments(): RecurringPaymentResource
{
return new RecurringPaymentResource($this);
}
}

0 comments on commit 88896cb

Please sign in to comment.