2017 © Pedro Peláez
 

library b2b-api-php-laravel

Laravel package for a working with B2B API service

image

avtocod/b2b-api-php-laravel

Laravel package for a working with B2B API service

  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 6 Versions
  • 26 % Grown

The README.md

Laravel , (*1)

B2B Api client integration for Laravel applications

Version ![Version][badge_php_version] Build Status ![Coverage][badge_coverage] Downloads count ![License][badge_license], (*2)

Install

Require this package with composer using the following command:, (*3)

$ composer require avtocod/b2b-api-php-laravel "^4.0"

Installed composer is required (how to install composer)., (*4)

You need to fix the major version of package., (*5)

After that you should "publish" package configuration file using next command:, (*6)

$ php ./artisan vendor:publish --provider='Avtocod\B2BApi\Laravel\ServiceProvider'

And modify ./config/b2b-api-client.php., (*7)

Usage

This package provides:, (*8)

  • Connections factory (ConnectionsFactoryInterface) - B2B API client factory (configuration for it loads from published configuration file);
  • Report types repository (RepositoryInterface) - single entry-point for getting access to the report types information;

In any part of your application you can resolve their implementations. For example, in artisan command:, (*9)

<?php

declare(strict_types = 1);

namespace App\Console\Commands;

use Avtocod\B2BApi\Params\UserReportMakeParams;
use Avtocod\B2BApi\Laravel\ReportTypes\RepositoryInterface;
use Avtocod\B2BApi\Laravel\Connections\ConnectionsFactoryInterface;

class SomeCommand extends \Illuminate\Console\Command
{
    /**
     * The console command name.
     *
     * @var string
     */
    protected $name = 'some:command';

    /**
     * Execute the console command.
     *
     * @param RepositoryInterface         $report_types
     * @param ConnectionsFactoryInterface $connections
     *
     * @return void
     */
    public function handle(RepositoryInterface $report_types, ConnectionsFactoryInterface $connections): void
    {
        $uid = $report_types->default()->getUid(); // Get default report type UID

        // Create a parameter object for a request to make a report
        $report_make_params = UserReportMakeParams($uid, 'VIN', 'Z94CB41AAGR323020')

        $report_uid = $connections->default()
            ->userReportMake($report_make_params)
            ->first()
            ->getReportUid();

        $this->comment("Report UID: {$report_uid}");
    }
}

Events

Also this package proxying B2B Api client events into Laravel events dispatcher. So, feel free for writing own listeners like:, (*10)

<?php

declare(strict_types = 1);

namespace App\Listeners;

use Psr\Log\LoggerInterface;
use Psr\Http\Message\ResponseInterface;
use Avtocod\B2BApi\Events\RequestFailedEvent;

class LogFailedB2bApiRequestListener
{
    /**
     * @var LoggerInterface
     */
    protected $logger;

    /**
     * Create a new listener instance.
     *
     * @param LoggerInterface $logger
     */
    public function __construct(LoggerInterface $logger)
    {
        $this->logger = $logger;
    }

    /**
     * @param RequestFailedEvent $event
     *
     * @return void
     */
    public function handle(RequestFailedEvent $event): void
    {
        $this->logger->warning('Request to the Avtocod B2B API Failed', [
            'request_uri'   => $event->getRequest()->getUri(),
            'response_code' => $event->getResponse() instanceof ResponseInterface
                ? $event->getResponse()->getStatusCode()
                : null
        ]);
    }
}

More information about events listeners can be found here, (*11)

Testing

For package testing we use phpunit framework and docker-ce + docker-compose as develop environment. So, just write into your terminal after repository cloning:, (*12)

$ make build
$ make latest # or 'make lowest'
$ make test

Changes log

Release date ![Commits since latest release][badge_commits_since_release], (*13)

Changes log can be found here., (*14)

Support

Issues ![Issues][badge_pulls], (*15)

If you will find any package errors, please, make an issue in current repository., (*16)

License

This is open-sourced software licensed under the MIT License., (*17)

The Versions

03/04 2018

dev-master

9999999-dev

Laravel package for a working with B2B API service

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel service b2b avtocod

03/04 2018

v2.0.4

2.0.4.0

Laravel package for a working with B2B API service

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel service b2b avtocod

19/02 2018

v2.0.3

2.0.3.0

Laravel package for a working with B2B API service

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel service b2b avtocod

08/02 2018

v2.0.2

2.0.2.0

Laravel package for a working with B2B API service

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel service b2b avtocod

07/12 2017

v2.0.1

2.0.1.0

Laravel package for a working with B2B API service

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel service b2b avtocod

14/10 2017

v2.0.0

2.0.0.0

Laravel package for a working with B2B API service

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel service b2b avtocod