Skip to content

Commit

Permalink
remit seeder update
Browse files Browse the repository at this point in the history
  • Loading branch information
hafijul233 committed Feb 4, 2024
1 parent 7a43cb0 commit 2ce39cf
Show file tree
Hide file tree
Showing 8 changed files with 200 additions and 16 deletions.
32 changes: 32 additions & 0 deletions src/EventServiceProvider.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
<?php

namespace Fintech\Remit;

use Fintech\Remit\Events\RemitTransferFailed;
use Fintech\Remit\Events\RemitTransferRejected;
use Fintech\Remit\Events\RemitTransferRequested;
use Fintech\Remit\Events\RemitTransferVendorAssigned;
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;

class EventServiceProvider extends ServiceProvider
{
/**
* The event to listener mappings for the application.
*
* @var array<class-string, array<int, class-string>>
*/
protected $listen = [
RemitTransferFailed::class => [

],
RemitTransferRequested::class => [

],
RemitTransferVendorAssigned::class => [

],
RemitTransferRejected::class => [

],
];
}
Empty file removed src/Events/.gitkeep
Empty file.
37 changes: 37 additions & 0 deletions src/Events/RemitTransferFailed.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
<?php

namespace Fintech\Remit\Events;

use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Broadcasting\PrivateChannel;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Queue\SerializesModels;

class RemitTransferFailed
{
use Dispatchable, InteractsWithSockets, SerializesModels;

public $transfer;

/**
* Create a new event instance.
* @param \Fintech\Remit\Models\BankTransfer|\Fintech\Remit\Models\CashPickup|\Fintech\Remit\Models\WalletTransfer
*
*/
public function __construct($transfer)

Check failure on line 21 in src/Events/RemitTransferFailed.php

View workflow job for this annotation

GitHub Actions / phpstan

PHPDoc tag @param has invalid value (\Fintech\Remit\Models\BankTransfer|\Fintech\Remit\Models\CashPickup|\Fintech\Remit\Models\WalletTransfer): Unexpected token "\n *", expected variable at offset 158
{
$this->transfer = $transfer;
}

/**
* Get the channels the event should broadcast on.
*
* @return array<int, \Illuminate\Broadcasting\Channel>
*/
public function broadcastOn(): array
{
return [
new PrivateChannel('channel-name'),
];
}
}
37 changes: 37 additions & 0 deletions src/Events/RemitTransferRejected.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
<?php

namespace Fintech\Remit\Events;

use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Broadcasting\PrivateChannel;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Queue\SerializesModels;

class RemitTransferRejected
{
use Dispatchable, InteractsWithSockets, SerializesModels;

public $transfer;

/**
* Create a new event instance.
* @param \Fintech\Remit\Models\BankTransfer|\Fintech\Remit\Models\CashPickup|\Fintech\Remit\Models\WalletTransfer
*
*/
public function __construct($transfer)

Check failure on line 21 in src/Events/RemitTransferRejected.php

View workflow job for this annotation

GitHub Actions / phpstan

PHPDoc tag @param has invalid value (\Fintech\Remit\Models\BankTransfer|\Fintech\Remit\Models\CashPickup|\Fintech\Remit\Models\WalletTransfer): Unexpected token "\n *", expected variable at offset 158
{
$this->transfer = $transfer;
}

/**
* Get the channels the event should broadcast on.
*
* @return array<int, \Illuminate\Broadcasting\Channel>
*/
public function broadcastOn(): array
{
return [
new PrivateChannel('channel-name'),
];
}
}
37 changes: 37 additions & 0 deletions src/Events/RemitTransferRequested.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
<?php

namespace Fintech\Remit\Events;

use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Broadcasting\PrivateChannel;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Queue\SerializesModels;

class RemitTransferRequested
{
use Dispatchable, InteractsWithSockets, SerializesModels;

public $transfer;

/**
* Create a new event instance.
* @param \Fintech\Remit\Models\BankTransfer|\Fintech\Remit\Models\CashPickup|\Fintech\Remit\Models\WalletTransfer
*
*/
public function __construct($transfer)

Check failure on line 21 in src/Events/RemitTransferRequested.php

View workflow job for this annotation

GitHub Actions / phpstan

PHPDoc tag @param has invalid value (\Fintech\Remit\Models\BankTransfer|\Fintech\Remit\Models\CashPickup|\Fintech\Remit\Models\WalletTransfer): Unexpected token "\n *", expected variable at offset 158
{
$this->transfer = $transfer;
}

/**
* Get the channels the event should broadcast on.
*
* @return array<int, \Illuminate\Broadcasting\Channel>
*/
public function broadcastOn(): array
{
return [
new PrivateChannel('channel-name'),
];
}
}
37 changes: 37 additions & 0 deletions src/Events/RemitTransferVendorAssigned.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
<?php

namespace Fintech\Remit\Events;

use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Broadcasting\PrivateChannel;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Queue\SerializesModels;

class RemitTransferVendorAssigned
{
use Dispatchable, InteractsWithSockets, SerializesModels;

public $transfer;

/**
* Create a new event instance.
* @param \Fintech\Remit\Models\BankTransfer|\Fintech\Remit\Models\CashPickup|\Fintech\Remit\Models\WalletTransfer
*
*/
public function __construct($transfer)

Check failure on line 21 in src/Events/RemitTransferVendorAssigned.php

View workflow job for this annotation

GitHub Actions / phpstan

PHPDoc tag @param has invalid value (\Fintech\Remit\Models\BankTransfer|\Fintech\Remit\Models\CashPickup|\Fintech\Remit\Models\WalletTransfer): Unexpected token "\n *", expected variable at offset 158
{
$this->transfer = $transfer;
}

/**
* Get the channels the event should broadcast on.
*
* @return array<int, \Illuminate\Broadcasting\Channel>
*/
public function broadcastOn(): array
{
return [
new PrivateChannel('channel-name'),
];
}
}
35 changes: 19 additions & 16 deletions src/Http/Controllers/BankTransferController.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
use Fintech\Core\Exceptions\StoreOperationException;
use Fintech\Core\Exceptions\UpdateOperationException;
use Fintech\Core\Traits\ApiResponseTrait;
use Fintech\Remit\Events\RemitTransferRequested;
use Fintech\Remit\Facades\Remit;
use Fintech\Remit\Http\Requests\ImportBankTransferRequest;
use Fintech\Remit\Http\Requests\IndexBankTransferRequest;
Expand Down Expand Up @@ -84,7 +85,7 @@ public function store(StoreBankTransferRequest $request): JsonResponse
'country_id' => $request->input('source_country_id', $depositor->profile?->country_id),
])->first();

if (! $depositAccount) {
if (!$depositAccount) {
throw new Exception("User don't have account deposit balance");
}

Expand All @@ -93,8 +94,8 @@ public function store(StoreBankTransferRequest $request): JsonResponse
'country_id' => $request->input('source_country_id', $depositor->profile?->country_id),
])->first();

if (! $masterUser) {
throw new Exception('Master User Account not found for '.$request->input('source_country_id', $depositor->profile?->country_id).' country');
if (!$masterUser) {
throw new Exception('Master User Account not found for ' . $request->input('source_country_id', $depositor->profile?->country_id) . ' country');
}

//set pre defined conditions of deposit
Expand Down Expand Up @@ -125,7 +126,7 @@ public function store(StoreBankTransferRequest $request): JsonResponse

$bankTransfer = Remit::bankTransfer()->create($inputs);

if (! $bankTransfer) {
if (!$bankTransfer) {
throw (new StoreOperationException)->setModel(config('fintech.remit.bank_transfer_model'));
}
$order_data = $bankTransfer->order_data;
Expand All @@ -140,12 +141,12 @@ public function store(StoreBankTransferRequest $request): JsonResponse
])->first();
//update User Account
$depositedUpdatedAccount = $depositedAccount->toArray();
$depositedUpdatedAccount['user_account_data']['spent_amount'] = (float) $depositedUpdatedAccount['user_account_data']['spent_amount'] + (float) $userUpdatedBalance['spent_amount'];
$depositedUpdatedAccount['user_account_data']['available_amount'] = (float) $userUpdatedBalance['current_amount'];
$depositedUpdatedAccount['user_account_data']['spent_amount'] = (float)$depositedUpdatedAccount['user_account_data']['spent_amount'] + (float)$userUpdatedBalance['spent_amount'];
$depositedUpdatedAccount['user_account_data']['available_amount'] = (float)$userUpdatedBalance['current_amount'];

$order_data['order_data']['previous_amount'] = (float) $depositedAccount->user_account_data['available_amount'];
$order_data['order_data']['current_amount'] = ((float) $order_data['order_data']['previous_amount'] + (float) $inputs['converted_currency']);
if (! Transaction::userAccount()->update($depositedAccount->getKey(), $depositedUpdatedAccount)) {
$order_data['order_data']['previous_amount'] = (float)$depositedAccount->user_account_data['available_amount'];
$order_data['order_data']['current_amount'] = ((float)$order_data['order_data']['previous_amount'] + (float)$inputs['converted_currency']);
if (!Transaction::userAccount()->update($depositedAccount->getKey(), $depositedUpdatedAccount)) {
throw new Exception(__('User Account Balance does not update', [
'current_status' => $bankTransfer->currentStatus(),
'target_status' => OrderStatus::Success->value,
Expand All @@ -158,6 +159,8 @@ public function store(StoreBankTransferRequest $request): JsonResponse
Remit::bankTransfer()->update($bankTransfer->getKey(), ['order_data' => $order_data, 'order_number' => $order_data['purchase_number']]);
Transaction::orderQueue()->removeFromQueueUserWise($user_id ?? $depositor->getKey());

event(new RemitTransferRequested('bank_deposit', $bankTransfer));

DB::commit();

return $this->created([
Expand Down Expand Up @@ -190,7 +193,7 @@ public function show(string|int $id): BankTransferResource|JsonResponse

$bankTransfer = Remit::bankTransfer()->find($id);

if (! $bankTransfer) {
if (!$bankTransfer) {
throw (new ModelNotFoundException)->setModel(config('fintech.remit.bank_transfer_model'), $id);
}

Expand Down Expand Up @@ -218,13 +221,13 @@ public function update(UpdateBankTransferRequest $request, string|int $id): Json

$bankTransfer = Remit::bankTransfer()->find($id);

if (! $bankTransfer) {
if (!$bankTransfer) {
throw (new ModelNotFoundException)->setModel(config('fintech.remit.bank_transfer_model'), $id);
}

$inputs = $request->validated();

if (! Remit::bankTransfer()->update($id, $inputs)) {
if (!Remit::bankTransfer()->update($id, $inputs)) {

throw (new UpdateOperationException)->setModel(config('fintech.remit.bank_transfer_model'), $id);
}
Expand Down Expand Up @@ -256,11 +259,11 @@ public function destroy(string|int $id): JsonResponse

$bankTransfer = Remit::bankTransfer()->find($id);

if (! $bankTransfer) {
if (!$bankTransfer) {
throw (new ModelNotFoundException)->setModel(config('fintech.remit.bank_transfer_model'), $id);
}

if (! Remit::bankTransfer()->destroy($id)) {
if (!Remit::bankTransfer()->destroy($id)) {

throw (new DeleteOperationException())->setModel(config('fintech.remit.bank_transfer_model'), $id);
}
Expand Down Expand Up @@ -290,11 +293,11 @@ public function restore(string|int $id): JsonResponse

$bankTransfer = Remit::bankTransfer()->find($id, true);

if (! $bankTransfer) {
if (!$bankTransfer) {
throw (new ModelNotFoundException)->setModel(config('fintech.remit.bank_transfer_model'), $id);
}

if (! Remit::bankTransfer()->restore($id)) {
if (!Remit::bankTransfer()->restore($id)) {

throw (new RestoreOperationException())->setModel(config('fintech.remit.bank_transfer_model'), $id);
}
Expand Down
1 change: 1 addition & 0 deletions src/RemitServiceProvider.php
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ public function register()

$this->app->register(RouteServiceProvider::class);
$this->app->register(RepositoryServiceProvider::class);
$this->app->register(EventServiceProvider::class);
}

/**
Expand Down

0 comments on commit 2ce39cf

Please sign in to comment.