Skip to content

Commit

Permalink
Merge pull request #29 from mah-shamim/develop
Browse files Browse the repository at this point in the history
Develop
  • Loading branch information
hafijul233 authored Aug 31, 2022
2 parents 95ccfa7 + 745ad94 commit 10b4b67
Show file tree
Hide file tree
Showing 7 changed files with 194 additions and 195 deletions.
10 changes: 5 additions & 5 deletions .github/workflows/run-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,13 @@ jobs:
matrix:
os: [ubuntu-latest]
php: [8.*, 7.*]
laravel: [9.*, 8.*]
laravel: [9.*, 8.*, 7.*, 6.*]
stability: [prefer-lowest, prefer-stable]
include:
- laravel: [9.*, 8.*]
testbench: [7.*, 6.*]
- laravel: [9.*, 8.*, 7.*, 6.*]
testbench: [7.*, 6.*, 5.*]

name: P${{ matrix.php }} - L${{ matrix.laravel }} - ${{ matrix.stability }} - ${{ matrix.os }}
name: PHP:${{ matrix.php }} - Larave:l${{ matrix.laravel }} - ${{ matrix.stability }} - OS :${{ matrix.os }}

steps:
- name: Checkout code
Expand All @@ -30,7 +30,7 @@ jobs:
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite, bcmath, soap, intl, gd, exif, iconv, imagick, fileinfo
extensions: simplexml, dom, curl, libxml, mbstring, zip, pcntl, bcmath, fileinfo
coverage: none

- name: Setup problem matchers
Expand Down
3 changes: 1 addition & 2 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,7 @@
]
},
"scripts": {
"analyse": "vendor/bin/phpstan analyse",
"format": "vendor/bin/pint"
"analyse": "vendor/bin/phpstan analyse"
},
"config": {
"sort-packages": true,
Expand Down
166 changes: 84 additions & 82 deletions src/CityBank.php
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,14 @@ class CityBank
/**
* CityBank constructor.
*
* @param array $config
* @param array|object $config
*
* @throws Exception
*/
public function __construct($config = [])
{
$config = is_object($config) ? (array) $config : $config;

$this->config = new Config($config);
}

Expand All @@ -51,14 +53,43 @@ public function init()
return $this;
}

/**
* Do authenticate service will provide you the access token
*
* @return self
*
* @throws Exception
*
* @since 2.0.0
*/
public function doAuthenticate()
{
$payload = [
'username' => $this->config->username,
'password' => $this->config->password,
'exchange_company' => $this->config->company,
];

$response = $this->request
->method(Config::AUTHENTICATE)
->payload('auth_info', $payload)
->connect();

$this->request->token = (isset($response['token']) && $response['token'] != Config::AUTH_FAILED)
? $response['token']
: null;

return $this;
}

/**
* @return string
*
* @throws Exception
*/
public function token()
{
if (is_null($this->request->token)) {
if (strlen($this->request->token) == 0) {
$this->doAuthenticate();
}

Expand Down Expand Up @@ -89,35 +120,6 @@ public function execute()
return $this->request->connect();
}

/**
* Do authenticate service will provide you the access token
*
* @return self
*
* @throws Exception
*
* @since 2.0.0
*/
public function doAuthenticate()
{
$payload = [
'username' => $this->config->username,
'password' => $this->config->password,
'exchange_company' => $this->config->company,
];

$response = $this->request
->method(Config::AUTHENTICATE)
->payload('auth_info', $payload)
->connect();

$this->request->token = (isset($response['token']) && $response['token'] != Config::AUTH_FAILED)
? $response['token']
: null;

return $this;
}

/**
* Do transfer service will help you to send a new transaction by providing following parameter value
*
Expand All @@ -129,38 +131,38 @@ public function doAuthenticate()
*
* @since 2.0.0
*/
public function doTransfer($reference, $data = [])
public function doTransfer($reference, array $data = [])
{
$payload = ['reference_no' => $reference];

$payload['remitter_name'] = isset($data['remitter_name']) ? $data['remitter_name'] : '';
$payload['remitter_code'] = isset($data['remitter_code']) ? $data['remitter_code'] : '';
$payload['remitter_iqama_no'] = isset($data['remitter_iqama_no']) ? $data['remitter_iqama_no'] : '';
$payload['remitter_id_passport_no'] = isset($data['remitter_id_passport_no']) ? $data['remitter_id_passport_no'] : '';
$payload['issuing_country'] = isset($data['issuing_country']) ? $data['issuing_country'] : '';
$payload['beneficiary_name'] = isset($data['beneficiary_name']) ? $data['beneficiary_name'] : '';
$payload['remitter_name'] = $data['remitter_name'] ?? '';
$payload['remitter_code'] = $data['remitter_code'] ?? '';
$payload['remitter_iqama_no'] = $data['remitter_iqama_no'] ?? '';
$payload['remitter_id_passport_no'] = $data['remitter_id_passport_no'] ?? '';
$payload['issuing_country'] = $data['issuing_country'] ?? '';
$payload['beneficiary_name'] = $data['beneficiary_name'] ?? '';
$payload['mode_of_payment'] = $data['mode_of_payment'] ?? '';
if (in_array($payload['mode_of_payment'], ['CBL Account', 'Other Bank'])) {
$payload['beneficiary_account_no'] = isset($data['beneficiary_account_no']) ? $data['beneficiary_account_no'] : '';
$payload['beneficiary_bank_account_type'] = isset($data['beneficiary_bank_account_type']) ? $data['beneficiary_bank_account_type'] : '';
$payload['beneficiary_bank_name'] = isset($data['beneficiary_bank_name']) ? $data['beneficiary_bank_name'] : '';
$payload['beneficiary_bank_branch_name'] = isset($data['beneficiary_bank_branch_name']) ? $data['beneficiary_bank_branch_name'] : '';
$payload['branch_routing_number'] = isset($data['branch_routing_number']) ? $data['branch_routing_number'] : '';
$payload['beneficiary_account_no'] = $data['beneficiary_account_no'] ?? '';
$payload['beneficiary_bank_account_type'] = $data['beneficiary_bank_account_type'] ?? '';
$payload['beneficiary_bank_name'] = $data['beneficiary_bank_name'] ?? '';
$payload['beneficiary_bank_branch_name'] = $data['beneficiary_bank_branch_name'] ?? '';
$payload['branch_routing_number'] = $data['branch_routing_number'] ?? '';
}
$payload['amount_in_bdt'] = isset($data['amount_in_bdt']) ? $data['amount_in_bdt'] : '';
$payload['purpose_of_payment'] = isset($data['purpose_of_payment']) ? $data['purpose_of_payment'] : '';
$payload['beneficiary_mobile_phone_no'] = isset($data['beneficiary_mobile_phone_no']) ? $data['beneficiary_mobile_phone_no'] : '?';
$payload['beneficiary_id_type'] = isset($data['beneficiary_id_type']) ? $data['beneficiary_id_type'] : '';
$payload['pin_no'] = isset($data['pin_no']) ? $data['pin_no'] : '';
$payload['remitter_address'] = isset($data['remitter_address']) ? $data['remitter_address'] : '';
$payload['remitter_mobile_no'] = isset($data['remitter_mobile_no']) ? $data['remitter_mobile_no'] : '';
$payload['beneficiary_address'] = isset($data['beneficiary_address']) ? $data['beneficiary_address'] : '';
$payload['beneficiary_id_no'] = isset($data['beneficiary_id_no']) ? $data['beneficiary_id_no'] : '';
$payload['special_instruction'] = isset($data['special_instruction']) ? $data['special_instruction'] : 'NA';
$payload['mode_of_payment'] = isset($data['mode_of_payment']) ? $data['mode_of_payment'] : '';
$payload['issue_date'] = isset($data['issue_date']) ? $data['issue_date'] : '';
$payload['amount_in_bdt'] = $data['amount_in_bdt'] ?? '';
$payload['purpose_of_payment'] = $data['purpose_of_payment'] ?? '';
$payload['beneficiary_mobile_phone_no'] = $data['beneficiary_mobile_phone_no'] ?? '?';
$payload['beneficiary_id_type'] = $data['beneficiary_id_type'] ?? '';
$payload['pin_no'] = $data['pin_no'] ?? '';
$payload['remitter_address'] = $data['remitter_address'] ?? '';
$payload['remitter_mobile_no'] = $data['remitter_mobile_no'] ?? '';
$payload['beneficiary_address'] = $data['beneficiary_address'] ?? '';
$payload['beneficiary_id_no'] = $data['beneficiary_id_no'] ?? '';
$payload['special_instruction'] = $data['special_instruction'] ?? 'NA';
$payload['issue_date'] = $data['issue_date'] ?? '';
for ($i = 1; $i <= 10; $i++) {
$payload['custom_field_name_'.$i] = isset($data['custom_field_name_'.$i]) ? $data['custom_field_name_'.$i] : '?';
$payload['custom_field_value_'.$i] = isset($data['custom_field_value_'.$i]) ? $data['custom_field_value_'.$i] : '?';
$payload['custom_field_name_'.$i] = $data['custom_field_name_'.$i] ?? '?';
$payload['custom_field_value_'.$i] = $data['custom_field_value_'.$i] ?? '?';
}
$this->request
->method(Config::TRANSFER)
Expand All @@ -172,7 +174,7 @@ public function doTransfer($reference, $data = [])
/**
* Get transaction status service will help you to get the transaction status
*
* @param string $reference
* @param mixed $reference
* @return self
*
* @throws Exception
Expand All @@ -193,15 +195,15 @@ public function getTnxStatus($reference)
/**
* Do amendment or cancel service will help you to send the transaction cancel/amendment request
*
* @param string
* @param string
* @param mixed $reference
* @param string $details
* @return self
*
* @throws Exception
*
* @since 2.0.0
*/
public function doAmendmentOrCancel($reference, $details = '?')
public function doAmendmentOrCancel($reference, string $details = '?')
{
$payload = ['reference_no' => $reference, 'amend_query' => $details];

Expand Down Expand Up @@ -235,15 +237,15 @@ public function getBalance()
/**
* bKash customer validation service will help you to validate the beneficiary bkash number before send the transaction
*
* @param $mobileNumber
* @param string $mobileNumber
* @param string $fullName
* @return self
*
* @throws Exception
*
* @since 2.1.0
*/
public function doBkashCustomerValidation($mobileNumber, $fullName = '?')
public function doBkashCustomerValidation(string $mobileNumber, string $fullName = '?')
{
$payload = ['mobileNumber' => $mobileNumber];

Expand All @@ -261,54 +263,54 @@ public function doBkashCustomerValidation($mobileNumber, $fullName = '?')
/**
* Do Bkash transfer service will help you to send a bkash transaction
*
* @param string|int $reference
* @param mixed $reference
* @param array $data
* @return self
*
* @throws Exception
*
* @since 2.1.0
*/
public function doBkashTransfer($reference, $data = [])
public function doBkashTransfer($reference, array $data = [])
{
$payload = ['reference_no' => $reference];

try {
$payload['amount_in_bdt'] = isset($data['amount_in_bdt']) ? $data['amount_in_bdt'] : 0;
$payload['remitter_name'] = isset($data['remitter_name']) ? $data['remitter_name'] : '?';
$payload['remitter_dob'] = isset($data['remitter_dob']) ? $data['remitter_dob'] : '?';
$payload['amount_in_bdt'] = $data['amount_in_bdt'] ?? 0;
$payload['remitter_name'] = $data['remitter_name'] ?? '?';
$payload['remitter_dob'] = $data['remitter_dob'] ?? '?';

if (isset($data['remitter_iqama_no'])) {
$payload['remitter_iqama_no'] = $data['remitter_iqama_no'];
}

$payload['remitter_id_passport_no'] = isset($data['remitter_id_passport_no']) ? $data['remitter_id_passport_no'] : '2';
$payload['remitter_id_passport_no'] = $data['remitter_id_passport_no'] ?? '2';

if (isset($data['remitter_address'])) {
$payload['remitter_address'] = $data['remitter_address'];
}

$payload['remitter_mobile_no'] = isset($data['remitter_mobile_no']) ? $data['remitter_mobile_no'] : '?';
$payload['issuing_country'] = isset($data['issuing_country']) ? $data['issuing_country'] : '?';
$payload['beneficiary_name'] = isset($data['beneficiary_name']) ? $data['beneficiary_name'] : '?';
$payload['beneficiary_city'] = isset($data['beneficiary_city']) ? $data['beneficiary_city'] : '?';
$payload['remitter_mobile_no'] = $data['remitter_mobile_no'] ?? '?';
$payload['issuing_country'] = $data['issuing_country'] ?? '?';
$payload['beneficiary_name'] = $data['beneficiary_name'] ?? '?';
$payload['beneficiary_city'] = $data['beneficiary_city'] ?? '?';

if (isset($data['beneficiary_id_no'])) {
$payload['beneficiary_id_no'] = $data['beneficiary_id_no'];
$payload['beneficiary_id_type'] = isset($data['beneficiary_id_type']) ? $data['beneficiary_id_type'] : '';
$payload['beneficiary_id_type'] = $data['beneficiary_id_type'] ?? '';
}

$payload['beneficiary_id_no'] = isset($data['beneficiary_id_no']) ? $data['beneficiary_id_no'] : '?';
$payload['purpose_of_payment'] = isset($data['purpose_of_payment']) ? $data['purpose_of_payment'] : '?';
$payload['beneficiary_mobile_phone_no'] = isset($data['beneficiary_mobile_phone_no']) ? $data['beneficiary_mobile_phone_no'] : '?';
$payload['beneficiary_id_no'] = $data['beneficiary_id_no'] ?? '?';
$payload['purpose_of_payment'] = $data['purpose_of_payment'] ?? '?';
$payload['beneficiary_mobile_phone_no'] = $data['beneficiary_mobile_phone_no'] ?? '?';

if (isset($data['beneficiary_address'])) {
$payload['beneficiary_address'] = $data['beneficiary_address'];
}

$payload['issue_date'] = isset($data['issue_date']) ? $data['issue_date'] : date('Y-m-d');
} catch (\Exception $exception) {
throw new \Exception($exception->getMessage());
$payload['issue_date'] = $data['issue_date'] ?? date('Y-m-d');
} catch (Exception $exception) {
throw new Exception($exception->getMessage());
}

$this->request
Expand All @@ -321,8 +323,8 @@ public function doBkashTransfer($reference, $data = [])
/**
* This service call will provide you the bkash transaction status.
*
* @param $reference
* @return mixed
* @param mixed $reference
* @return self
*
* @throws Exception
*
Expand Down
2 changes: 1 addition & 1 deletion src/Commands/InstallCommand.php
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ protected function saveEnvironmentVariable()
* @param bool $overwrite
* @return string
*/
protected function envVariables($overwrite = false)
protected function envVariables(bool $overwrite = false)
{
$currentConfig = config('city-bank.sandbox');

Expand Down
13 changes: 7 additions & 6 deletions src/Config.php
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ class Config
*
* @param array $options
*/
public function __construct($options = [])
public function __construct(array $options = [])
{
foreach ($options as $property => $value) {
$this->{$property} = $value;
Expand Down Expand Up @@ -111,7 +111,6 @@ public function __get($key)
public function __set($key, $value)
{
switch ($key) {

case 'base_url':
$this->configBaseUrl($value);
break;
Expand All @@ -133,7 +132,7 @@ public function __set($key, $value)
/**
* @param string $url
*/
private function configBaseUrl($url)
private function configBaseUrl(string $url)
{
$metaData = parse_url($url);

Expand All @@ -159,7 +158,7 @@ private function configApiUrl($url)
/**
* @param string $mode
*/
private function configMode($mode)
private function configMode(string $mode)
{
if (in_array($mode, [self::MODE_LIVE, self::MODE_SANDBOX])) {
$this->values['mode'] = $mode;
Expand All @@ -173,7 +172,7 @@ private function configMode($mode)
* value stored in values array exception
*
* @param $key
* @return void
* @return bool
*
* @throws Exception
*/
Expand All @@ -182,6 +181,8 @@ public function __isset($key)
if (! array_key_exists($key, $this->values)) {
throw new Exception("Trying to access an undefined magic property $key");
}

return true;
}

/**
Expand Down Expand Up @@ -224,7 +225,7 @@ public function setHeaders($header, $value)
*
* @param string $api_url
*/
public function setApiUrl($api_url)
public function setApiUrl(string $api_url)
{
$this->api_url = $api_url;
}
Expand Down
Loading

0 comments on commit 10b4b67

Please sign in to comment.