neyric/yousign-bundle

Yousign Bundle for Symfony

Installs: 16 044

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 3

Forks: 2

Open Issues: 2

Type:symfony-bundle

v0.0.7 2021-10-16 21:02 UTC

This package is auto-updated.

Last update: 2024-10-17 03:36:05 UTC


README

A Symfony bundle for Yousign.

  • Provide a service to access the API for a better Symfony integration
  • Webhook handler (HTTP controller) + Webhook Event

Requirements

  • Php >= 7.1
  • Symfony 4.4 or 5+

Installation

$ composer require neyric/yousign-bundle

Load the bundle in your app

$bundles = [
    // ...
    new \Neyric\YousignBundle\NeyricYousignBundle(),
];

Configuration

The bundle (in particular the YousignApiClient), expects those 2 environement variables to be defined

Using the webhook handler

First, setup the route in your routes.yaml file :

neyric_yousign:
    path: /yousign_webook/hook_handler # Customizable url
    controller: Neyric\YousignBundle\Controller\YousignController::webhookHandlerAction

Create a subscriber

use Neyric\YousignBundle\Event\WebhookEvent;

class MySubscriber implements EventSubscriberInterface
{
    
    public function onYousignWebhook(WebhookEvent $event)
    {
        $headers = $event->getHeaders();

        if (array_key_exists('x-my-custom-header', $headers)) {
            // ...
        }

        // ...
    }

    public static function getSubscribedEvents()
    {
        return [
            WebhookEvent::class => ['onYousignWebhook'],
        ];
    }
}

And eventually declare the service with the kernel.event_subscriber tag :

    App\Subscriber\MySubscriber:
        class: App\Subscriber\MySubscriber
        tags:
            - { name: kernel.event_subscriber }

Prepare a local tunnel

Using a local tunnel will save you a lot of time because you can test locally. The recommended choice is ngrok. Ngrok is a tool to tunnel our local server to the web, making our local webhook handlers available to the email providers webhooks.

License

neyric/yousign-bundle is distributed under MIT license, see the LICENSE file.

Contacts

Report bugs or suggest features using issue tracker on GitHub.