From 73e8cdd7f28e6f436861b45aaa9f7309509254dd Mon Sep 17 00:00:00 2001 From: myckhel Date: Fri, 20 May 2022 02:48:49 +0100 Subject: [PATCH] created `Subscription` APIs --- readme.md | 20 ++++- .../Controllers/SubscriptionController.php | 15 ++++ src/Support/Subscription.php | 85 +++++++++++++++++++ src/routes.php | 10 +++ 4 files changed, 129 insertions(+), 1 deletion(-) create mode 100644 src/Http/Controllers/SubscriptionController.php create mode 100644 src/Support/Subscription.php diff --git a/readme.md b/readme.md index 0642a33..1a9db34 100644 --- a/readme.md +++ b/readme.md @@ -166,7 +166,25 @@ Plan::fetch($plan, $params); Plan::update($plan, $params); ``` -### Subscriptions **TODO** +### Subscriptions +```php +use Myckhel\Paystack\Support\Subscription; + +Subscription::create($params); + +Subscription::list($params); + +Subscription::fetch($plan, $params); + +Subscription::enable($params); + +Subscription::disable($params); + +Subscription::link($code, $params); + +Subscription::sendUpdateSubscription($code, $params); +``` + ### Products **TODO** ### Payment Pages **TODO** ### Invoices **TODO** diff --git a/src/Http/Controllers/SubscriptionController.php b/src/Http/Controllers/SubscriptionController.php new file mode 100644 index 0000000..4e5c7c3 --- /dev/null +++ b/src/Http/Controllers/SubscriptionController.php @@ -0,0 +1,15 @@ +all()) + : Subscription::$method(request()->all()); + } +} diff --git a/src/Support/Subscription.php b/src/Support/Subscription.php new file mode 100644 index 0000000..c60e89e --- /dev/null +++ b/src/Support/Subscription.php @@ -0,0 +1,85 @@ + 'plan,list', 'get,plan/{plan}' => 'plan,fetch', 'put,plan/{plan}' => 'plan,update', + // subscriptions + 'post,subscription' => 'subscription,create', + 'get,subscription' => 'subscription,list', + 'get,subscription/{subscription}' => 'subscription,fetch', + 'post,subscription/enable' => 'subscription,enable', + 'post,subscription/disable' => 'subscription,disable', + 'get,subscription/{code}/manage/link' => 'subscription,link', + 'post,subscription/{code}/manage/email' => 'subscription,sendUpdateSubscription', ]; $controls = [ @@ -77,6 +86,7 @@ 'dva' => DedicatedVirtualAccountController::class, 'apple' => ApplePayController::class, 'plan' => PlanController::class, + 'subscription' => SubscriptionController::class, ]; collect($routes)->map(function ($route, $index) use ($controls) {