mchervenkov/bnbfixing

Laravel BNB Fixing XML Wrapper

1.0.2 2024-07-31 08:23 UTC

This package is auto-updated.

Last update: 2024-10-31 00:43:35 UTC


README

Latest Version on Packagist Total Downloads

Installation

You can install the package via composer:

composer require mchervenkov/bnbfixing

If you plan to use database for storing bnb exchange rates:

php artisan migrate

If you need to export configuration file:

php artisan vendor:publish --tag=bnbfixing-config

If you need to export migrations:

php artisan vendor:publish --tag=bnbfixing-migrations

If you need to export models:

php artisan vendor:publish --tag=bnbfixing-models

If you need to export commands:

php artisan vendor:publish --tag=bnbfixing-commands

Usage

Methods

// Init BnbFixing Client
$bnbFixing = new BnbFixing();

// Return Bnb exchange rates in xml string format
$bnbFixing->getXmlContent();

// Get Certain exchange rate by code for certain bulgarian lev amount
// This will return how much Euro are 100 bulgarian lev
$bnbFixing->geExchangeBGNRateAmount('EUR', 100);

// Get Bulgarian Lev Rate for certain exchange rate and amount
// This will return how much bulgarian lev are 100 Euro
$bnbFixing->getReverseExchangeBGNRateAmount('EUR', 100);

// Get Amount between two exchange rates depends on BNB Fixings
// This will return how much euro are 100 american dollars
$bnbFixing->getExchangeRate('USD', 'EUR', 100);

Commands

#get exchange rates and insert them into database
php artisan bnb-fixing:sync-bnbfixing

Models

BnbFixing

Examples

Get xml content

$bnbFixing = new BnbFixing();
$xmlContent = $bnbFixing->getXmlContent();
dd($xmlContent);

Certain Exchange rate from bulgarian lev amount (100 Bulgarian lev to American dollars)

$bnbFixing = new BnbFixing();
$usd = $bnbFixing->getExchangeRateAmount('USD', 100);
dd($usd);

Certain Exchange rate to bulgarian lev (100 American Dollars to Lev)

$bnbFixing = new BnbFixing();
$lev = $bnbFixing->getReverseExchangeRateAmount('USD', 100);
dd($lev)

Testing

Before running tests config xml_url in phpunit.xml file

<php>
   <env name="BNB_XML_URL" value="https://www.bnb.bg/Statistics/StExternalSector/StExchangeRates/StERForeignCurrencies/?download=xml"/>
</php>
composer test

Changelog

Please see CHANGELOG for more information what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email mario.chervenkov@gmail.com instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.