Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: robertdrakedennis/laravel-tebex-checkout
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v0.1
Choose a base ref
...
head repository: robertdrakedennis/laravel-tebex-checkout
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref

Commits on Mar 30, 2023

  1. Update README.md

    robertdrakedennis authored Mar 30, 2023
    Copy the full SHA
    b788266 View commit details

Commits on Mar 31, 2023

  1. checkout test

    robertdrakedennis committed Mar 31, 2023
    Copy the full SHA
    eba0d45 View commit details
  2. Copy the full SHA
    7ee7d01 View commit details
  3. Fix styling

    robertdrakedennis authored and github-actions[bot] committed Mar 31, 2023
    Copy the full SHA
    074888f View commit details
  4. Copy the full SHA
    2deee89 View commit details
  5. Copy the full SHA
    198aa26 View commit details
  6. Copy the full SHA
    80ecc57 View commit details
  7. Copy the full SHA
    f222956 View commit details
  8. Copy the full SHA
    964d137 View commit details
  9. Copy the full SHA
    88896cb View commit details
  10. Fix styling

    robertdrakedennis authored and github-actions[bot] committed Mar 31, 2023
    Copy the full SHA
    37ddf41 View commit details
  11. Copy the full SHA
    c98c871 View commit details
  12. Copy the full SHA
    b2c025b View commit details
  13. Fix styling

    robertdrakedennis authored and github-actions[bot] committed Mar 31, 2023
    Copy the full SHA
    34c3b57 View commit details
  14. Copy the full SHA
    4884c8c View commit details
  15. Copy the full SHA
    ce2b2bc View commit details
  16. Fix styling

    robertdrakedennis authored and github-actions[bot] committed Mar 31, 2023
    Copy the full SHA
    7fcabd5 View commit details

Commits on Apr 24, 2023

  1. Bump dependabot/fetch-metadata from 1.3.6 to 1.4.0

    Bumps [dependabot/fetch-metadata](https://github.com/dependabot/fetch-metadata) from 1.3.6 to 1.4.0.
    - [Release notes](https://github.com/dependabot/fetch-metadata/releases)
    - [Commits](dependabot/fetch-metadata@v1.3.6...v1.4.0)
    
    ---
    updated-dependencies:
    - dependency-name: dependabot/fetch-metadata
      dependency-type: direct:production
      update-type: version-update:semver-minor
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    dependabot[bot] authored Apr 24, 2023
    Copy the full SHA
    b9e0402 View commit details
  2. Merge pull request #1 from robertdrakedennis/dependabot/github_action…

    …s/dependabot/fetch-metadata-1.4.0
    
    Bump dependabot/fetch-metadata from 1.3.6 to 1.4.0
    github-actions[bot] authored Apr 24, 2023
    Copy the full SHA
    3d45dd4 View commit details

Commits on May 29, 2023

  1. Bump dependabot/fetch-metadata from 1.4.0 to 1.5.1

    Bumps [dependabot/fetch-metadata](https://github.com/dependabot/fetch-metadata) from 1.4.0 to 1.5.1.
    - [Release notes](https://github.com/dependabot/fetch-metadata/releases)
    - [Commits](dependabot/fetch-metadata@v1.4.0...v1.5.1)
    
    ---
    updated-dependencies:
    - dependency-name: dependabot/fetch-metadata
      dependency-type: direct:production
      update-type: version-update:semver-minor
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    dependabot[bot] authored May 29, 2023
    Copy the full SHA
    945f224 View commit details
  2. Merge pull request #3 from robertdrakedennis/dependabot/github_action…

    …s/dependabot/fetch-metadata-1.5.1
    
    Bump dependabot/fetch-metadata from 1.4.0 to 1.5.1
    github-actions[bot] authored May 29, 2023
    Copy the full SHA
    e7f0944 View commit details

Commits on Jul 3, 2023

  1. Bump dependabot/fetch-metadata from 1.5.1 to 1.6.0

    Bumps [dependabot/fetch-metadata](https://github.com/dependabot/fetch-metadata) from 1.5.1 to 1.6.0.
    - [Release notes](https://github.com/dependabot/fetch-metadata/releases)
    - [Commits](dependabot/fetch-metadata@v1.5.1...v1.6.0)
    
    ---
    updated-dependencies:
    - dependency-name: dependabot/fetch-metadata
      dependency-type: direct:production
      update-type: version-update:semver-minor
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    dependabot[bot] authored Jul 3, 2023
    Copy the full SHA
    bd47a7c View commit details
  2. Merge pull request #4 from robertdrakedennis/dependabot/github_action…

    …s/dependabot/fetch-metadata-1.6.0
    
    Bump dependabot/fetch-metadata from 1.5.1 to 1.6.0
    github-actions[bot] authored Jul 3, 2023
    Copy the full SHA
    a9511f0 View commit details
Showing with 488 additions and 89 deletions.
  1. +1 −1 .github/workflows/dependabot-auto-merge.yml
  2. +2 −2 .github/workflows/run-tests.yml
  3. +58 −1 README.md
  4. +2 −1 composer.json
  5. +28 −0 src/Data/Requests/BasketData.php
  6. +17 −0 src/Data/Requests/ItemData.php
  7. +23 −0 src/Data/Requests/PackageData.php
  8. +16 −0 src/Data/Requests/SaleData.php
  9. +12 −0 src/Enums/PackageExpiryPeriod.php
  10. +10 −0 src/Enums/PackageType.php
  11. +12 −0 src/Enums/SaleDiscountType.php
  12. +7 −7 src/Requests/Baskets/CreateBasketRequest.php
  13. +5 −8 src/Requests/Baskets/GetBasketRequest.php
  14. +7 −9 src/Requests/Baskets/Packages/AddPackageRequest.php
  15. +5 −6 src/Requests/Baskets/Packages/DeletePackageRequest.php
  16. +8 −8 src/Requests/Baskets/Sales/CreateSaleRequest.php
  17. +5 −6 src/Requests/Checkout/CreateCheckoutRequest.php
  18. +5 −6 src/Requests/Payments/GetPaymentRequest.php
  19. +5 −6 src/Requests/Payments/RefundPaymentRequest.php
  20. +5 −6 src/Requests/RecurringPayments/CancelRecurringPaymentRequest.php
  21. +5 −6 src/Requests/RecurringPayments/GetRecurringPaymentRequest.php
  22. +6 −7 src/Requests/RecurringPayments/UpdateRecurringPaymentRequest.php
  23. +20 −0 src/Resources/BasketResource.php
  24. +14 −0 src/Resources/CheckoutResource.php
  25. +20 −0 src/Resources/PackageResource.php
  26. +25 −0 src/Resources/PaymentResource.php
  27. +31 −0 src/Resources/RecurringPaymentResource.php
  28. +13 −0 src/Resources/Resource.php
  29. +14 −0 src/Resources/SaleResource.php
  30. +38 −3 src/TebexCheckout.php
  31. +68 −0 tests/CheckoutTest.php
  32. +0 −5 tests/ExampleTest.php
  33. +1 −0 tests/Fixtures/Saloon/create.checkout.request.json
  34. +0 −1 tests/TestCase.php
2 changes: 1 addition & 1 deletion .github/workflows/dependabot-auto-merge.yml
Original file line number Diff line number Diff line change
@@ -13,7 +13,7 @@ jobs:

- name: Dependabot metadata
id: metadata
uses: dependabot/fetch-metadata@v1.3.6
uses: dependabot/fetch-metadata@v1.6.0
with:
github-token: "${{ secrets.GITHUB_TOKEN }}"

4 changes: 2 additions & 2 deletions .github/workflows/run-tests.yml
Original file line number Diff line number Diff line change
@@ -2,9 +2,9 @@ name: run-tests

on:
push:
branches: [main]
branches: [master]
pull_request:
branches: [main]
branches: [master]

jobs:
test:
59 changes: 58 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,58 @@
This package is currently for internal use, do not expect support.
This package is currently for internal use, do not expect support.


```
composer require useshimmer/laravel-tebex-checkout
```


### Create a checkout with sdk:

```PHP
$connector = new TebexCheckout('foo', 'bar');

$request = new CreateCheckoutRequest(
basket: [
'return_url' => 'http://foo.com',
'complete_url' => 'http://bar.com',
'custom' => [
'baz' => 'buzz',
],
],
items: [
[
'package' => [
'name' => 'foobar',
'price' => 12.34,
],
],
]
);

$response = $connector->send($request);
```

### Create a checkout with resource api:

```PHP
$connector = new TebexCheckout('foo', 'bar');

$response = $connector->checkout()->create(
basket: [
'return_url' => 'http://foo.com',
'complete_url' => 'http://bar.com',
'custom' => [
'baz' => 'buzz',
],
],
items: [
[
'package' => [
'name' => 'foobar',
'price' => 12.34,
],
],
]
);

```
3 changes: 2 additions & 1 deletion composer.json
Original file line number Diff line number Diff line change
@@ -7,7 +7,7 @@
"laravel-tebex-checkout"
],
"homepage": "https://github.com/useshimmer/laravel-tebex-checkout",
"license": "MIT",
"license": "GPL-3.0-or-later",
"authors": [
{
"name": "Robert Dennis",
@@ -19,6 +19,7 @@
"php": "^8.1",
"illuminate/contracts": "^10.0",
"sammyjo20/saloon": "^2.0",
"spatie/laravel-data": "^3.2",
"spatie/laravel-package-tools": "^1.14.0"
},
"require-dev": {
28 changes: 28 additions & 0 deletions src/Data/Requests/BasketData.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
<?php

namespace Shimmer\LaravelTebexCheckout\Data\Requests;

use Spatie\LaravelData\Data;
use Spatie\LaravelData\Optional;

class BasketData extends Data
{
public function __construct(
public string $return_url,
public string $complete_url,
public array|Optional $custom,
public string|Optional $first_name,
public string|Optional $last_name,
public string|Optional $email
) {
}

public function toArrayWithFilledProps(): array
{
$array = $this->transform();

return array_filter($array, function ($array) {
return ! is_null($array);
});
}
}
17 changes: 17 additions & 0 deletions src/Data/Requests/ItemData.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?php

namespace Shimmer\LaravelTebexCheckout\Data\Requests;

use Spatie\LaravelData\Data;
use Spatie\LaravelData\Optional;

class ItemData extends Data
{
public function __construct(
public PackageData $package,
public int|Optional $qty,
public array|Optional $revenue_share,
public SaleData|Optional $sale,
) {
}
}
23 changes: 23 additions & 0 deletions src/Data/Requests/PackageData.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<?php

namespace Shimmer\LaravelTebexCheckout\Data\Requests;

use Shimmer\LaravelTebexCheckout\Enums\PackageExpiryPeriod;
use Shimmer\LaravelTebexCheckout\Enums\PackageType;
use Spatie\LaravelData\Data;
use Spatie\LaravelData\Optional;

class PackageData extends Data
{
public function __construct(
public string $name,
public float $price,
public PackageExpiryPeriod|Optional $expiry_period,
public int|Optional $expiry_length,
public array|Optional $metadata,
public int|Optional $qty,
public PackageType $type,
public array|Optional $revenue_share,
) {
}
}
16 changes: 16 additions & 0 deletions src/Data/Requests/SaleData.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?php

namespace Shimmer\LaravelTebexCheckout\Data\Requests;

use Shimmer\LaravelTebexCheckout\Enums\SaleDiscountType;
use Spatie\LaravelData\Data;

class SaleData extends Data
{
public function __construct(
public string $name,
public SaleDiscountType $discount_type,
public float $amount,
) {
}
}
12 changes: 12 additions & 0 deletions src/Enums/PackageExpiryPeriod.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?php

namespace Shimmer\LaravelTebexCheckout\Enums;

enum PackageExpiryPeriod: string
{
case Day = 'day';

case Month = 'month';

case Year = 'year';
}
10 changes: 10 additions & 0 deletions src/Enums/PackageType.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?php

namespace Shimmer\LaravelTebexCheckout\Enums;

enum PackageType: string
{
case Single = 'single';

case Subscription = 'subscription';
}
12 changes: 12 additions & 0 deletions src/Enums/SaleDiscountType.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?php

namespace Shimmer\LaravelTebexCheckout\Enums;

enum SaleDiscountType: string
{
case Percentage = 'percentage';

case Amount = 'amount';

case basket = 'basket';
}
14 changes: 7 additions & 7 deletions src/Requests/Baskets/CreateBasketRequest.php
Original file line number Diff line number Diff line change
@@ -5,27 +5,27 @@
use Saloon\Contracts\Body\HasBody;
use Saloon\Enums\Method;
use Saloon\Http\Request;
use Saloon\Traits\Body\HasJsonBody;

class CreateBasketRequest extends Request implements HasBody
{
use \Saloon\Traits\Body\HasBody;
use HasJsonBody;

public function __construct(
protected string $returnUrl,
protected string $completeUrl
){}
) {
}

/**
* Define the HTTP method
*
* @var Method
*/
protected Method $method = Method::POST;

/**
* Define the endpoint for the request
* Create a basket that can be used to pay for items.
*
* @return string
* @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
{
@@ -36,7 +36,7 @@ protected function defaultBody(): array
{
return [
'return_url' => $this->returnUrl,
'complete_url' => $this->completeUrl
'complete_url' => $this->completeUrl,
];
}
}
13 changes: 5 additions & 8 deletions src/Requests/Baskets/GetBasketRequest.php
Original file line number Diff line number Diff line change
@@ -2,31 +2,28 @@

namespace Shimmer\LaravelTebexCheckout\Requests\Baskets;

use App\Data\TebexCheckout\Responses\Baskets\BasketResponse;
use Saloon\Contracts\Response;
use Saloon\Enums\Method;
use Saloon\Http\Request;

class GetBasketRequest extends Request
{
public function __construct(
protected string $ident
){}
) {
}

/**
* Define the HTTP method
*
* @var Method
*/
protected Method $method = Method::GET;

/**
* Define the endpoint for the request
* Fetch a basket by its identifier.
*
* @return string
* @see https://docs.tebex.io/tebex-checkout-apis/eICB5LG5njxwP9wLlQv4/apis#fetch-a-basket-by-its-identifier
*/
public function resolveEndpoint(): string
{
return '/baskets/' . $this->ident;
return '/baskets/'.$this->ident;
}
}
16 changes: 7 additions & 9 deletions src/Requests/Baskets/Packages/AddPackageRequest.php
Original file line number Diff line number Diff line change
@@ -3,7 +3,6 @@
namespace Shimmer\LaravelTebexCheckout\Requests\Baskets\Packages;

use Saloon\Contracts\Body\HasBody;
use Saloon\Contracts\Response;
use Saloon\Enums\Method;
use Saloon\Http\Request;
use Saloon\Traits\Body\HasJsonBody;
@@ -14,32 +13,31 @@ class AddPackageRequest extends Request implements HasBody

public function __construct(
protected string $ident,
protected object $package,
protected array $package,
protected string $type,
){}
) {
}

/**
* Define the HTTP method
*
* @var Method
*/
protected Method $method = Method::POST;

/**
* Define the endpoint for the request
* Add a package to a basket.
*
* @return string
* @see https://docs.tebex.io/tebex-checkout-apis/eICB5LG5njxwP9wLlQv4/apis#add-package-to-a-basket
*/
public function resolveEndpoint(): string
{
return '/baskets/'. $this->ident . '/packages';
return '/baskets/'.$this->ident.'/packages';
}

protected function defaultBody(): array
{
return [
'package' => $this->package,
'type' => $this->type
'type' => $this->type,
];
}
}
11 changes: 5 additions & 6 deletions src/Requests/Baskets/Packages/DeletePackageRequest.php
Original file line number Diff line number Diff line change
@@ -10,22 +10,21 @@ class DeletePackageRequest extends Request
public function __construct(
protected string $ident,
protected int $rowId
){}
) {
}

/**
* Define the HTTP method
*
* @var Method
*/
protected Method $method = Method::DELETE;

/**
* Define the endpoint for the request
* Remove a row from the basket
*
* @return string
* @see https://docs.tebex.io/tebex-checkout-apis/eICB5LG5njxwP9wLlQv4/apis#remove-a-row-from-the-basket
*/
public function resolveEndpoint(): string
{
return '/baskets/' . $this->ident . '/packages/' . $this->rowId;
return '/baskets/'.$this->ident.'/packages/'.$this->rowId;
}
}
Loading