Skip to content

Commit 0a546de

Browse files
authored
Merge pull request #10 from coralsio/payment-methods
payment methods
2 parents e7fe9d2 + bdf0d58 commit 0a546de

File tree

6 files changed

+135
-0
lines changed

6 files changed

+135
-0
lines changed

src/Common/Models/PaymentMethod.php

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<?php
2+
3+
namespace Corals\Modules\Payment\Common\Models;
4+
5+
use Corals\Foundation\Models\BaseModel;
6+
use Corals\Foundation\Traits\ModelPropertiesTrait;
7+
use Corals\Foundation\Transformers\PresentableTrait;
8+
use Spatie\Activitylog\Traits\LogsActivity;
9+
10+
class PaymentMethod extends BaseModel
11+
{
12+
use PresentableTrait, LogsActivity, ModelPropertiesTrait;
13+
14+
protected $casts = [
15+
'properties' => 'json',
16+
'is_default' => 'boolean'
17+
];
18+
19+
protected $table = 'payment_payment_methods';
20+
21+
protected $guarded = ['id'];
22+
23+
public function parent()
24+
{
25+
return $this->morphTo();
26+
}
27+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?php
2+
3+
namespace Corals\Modules\Payment\Common\Transformers\API;
4+
5+
use Corals\Foundation\Transformers\FractalPresenter;
6+
7+
class PaymentMethodPresenter extends FractalPresenter
8+
{
9+
public function getTransformer()
10+
{
11+
return new PaymentMethodTransformer;
12+
}
13+
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
<?php
2+
3+
namespace Corals\Modules\Payment\Common\Transformers\API;
4+
5+
use Corals\Foundation\Transformers\APIBaseTransformer;
6+
use Corals\Modules\Payment\Common\Models\PaymentMethod;
7+
8+
class PaymentMethodTransformer extends APIBaseTransformer
9+
{
10+
/**
11+
* @param PaymentMethod $paymentMethod
12+
* @return array
13+
* @throws \Psr\Container\ContainerExceptionInterface
14+
* @throws \Psr\Container\NotFoundExceptionInterface
15+
*/
16+
public function transform(PaymentMethod $paymentMethod)
17+
{
18+
$transformedArray = [
19+
'id' => $paymentMethod->id,
20+
'last4' => $paymentMethod->last_four,
21+
'gateway' => $paymentMethod->gateway,
22+
'reference_id' => $paymentMethod->reference_id,
23+
'status' => $paymentMethod->status,
24+
'expiry_month' => $paymentMethod->expiry_month,
25+
'expiry_year' => $paymentMethod->expiry_year,
26+
'brand' => $paymentMethod->brand,
27+
'created_at' => format_date($paymentMethod->created_at),
28+
'updated_at' => format_date($paymentMethod->updated_at),
29+
];
30+
31+
return parent::transformResponse($transformedArray);
32+
}
33+
}
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
<?php
2+
3+
namespace Corals\Modules\Payment\Common\database\migrations;
4+
5+
use Illuminate\Database\Migrations\Migration;
6+
use Illuminate\Database\Schema\Blueprint;
7+
use Illuminate\Support\Facades\Schema;
8+
9+
class CreatePaymentMethodsTable extends Migration
10+
{
11+
/**
12+
* Run the migrations.
13+
*
14+
* @return void
15+
*/
16+
public function up()
17+
{
18+
Schema::create('payment_payment_methods', function (Blueprint $table) {
19+
$table->increments('id');
20+
21+
$table->morphs('parent');
22+
23+
$table->string('holder_name')->nullable();
24+
$table->string('holder_email')->nullable();
25+
$table->string('expiry_month')->nullable();
26+
$table->string('expiry_year')->nullable();
27+
$table->string('type')->default('card');
28+
$table->string('brand')->nullable();
29+
$table->string('last_four')->nullable();
30+
31+
$table->boolean('is_default')->default(false);
32+
33+
$table->text('properties')->nullable();
34+
$table->text('gateway')->nullable();
35+
$table->string('reference_id')->nullable();
36+
37+
$table->enum('status', ['active', 'invalid', 'expired'])->default('active')->index();
38+
$table->text('notes')->nullable();
39+
40+
$table->unsignedInteger('created_by')->nullable()->index();
41+
$table->unsignedInteger('updated_by')->nullable()->index();
42+
43+
$table->softDeletes();
44+
$table->timestamps();
45+
});
46+
}
47+
48+
/**
49+
* Reverse the migrations.
50+
*
51+
* @return void
52+
*/
53+
public function down()
54+
{
55+
Schema::dropIfExists('payment_payment_methods');
56+
}
57+
}

src/Providers/InstallModuleServiceProvider.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use Corals\Foundation\Providers\BaseInstallModuleServiceProvider;
66
use Corals\Modules\Payment\Common\database\migrations\CreateCurrencyTable;
77
use Corals\Modules\Payment\Common\database\migrations\CreateInvoicesTable;
8+
use Corals\Modules\Payment\Common\database\migrations\CreatePaymentMethodsTable;
89
use Corals\Modules\Payment\Common\database\migrations\CreateTaxablesTable;
910
use Corals\Modules\Payment\Common\database\migrations\CreateTaxClassesTable;
1011
use Corals\Modules\Payment\Common\database\migrations\CreateTaxesTable;
@@ -22,6 +23,7 @@ class InstallModuleServiceProvider extends BaseInstallModuleServiceProvider
2223
CreateTaxablesTable::class,
2324
CreateCurrencyTable::class,
2425
CreateTransactionsTable::class,
26+
CreatePaymentMethodsTable::class
2527
];
2628

2729
protected function providerBooted()

src/Providers/UninstallModuleServiceProvider.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use Corals\Foundation\Providers\BaseUninstallModuleServiceProvider;
66
use Corals\Modules\Payment\Common\database\migrations\CreateCurrencyTable;
77
use Corals\Modules\Payment\Common\database\migrations\CreateInvoicesTable;
8+
use Corals\Modules\Payment\Common\database\migrations\CreatePaymentMethodsTable;
89
use Corals\Modules\Payment\Common\database\migrations\CreateTaxablesTable;
910
use Corals\Modules\Payment\Common\database\migrations\CreateTaxClassesTable;
1011
use Corals\Modules\Payment\Common\database\migrations\CreateTaxesTable;
@@ -22,6 +23,8 @@ class UninstallModuleServiceProvider extends BaseUninstallModuleServiceProvider
2223
CreateTaxesTable::class,
2324
CreateTaxablesTable::class,
2425
CreateCurrencyTable::class,
26+
CreateCardsTable::class,
27+
CreatePaymentMethodsTable::class
2528
];
2629

2730
protected function providerBooted()

0 commit comments

Comments
 (0)