LaravelPackages.net
Acme Inc.
Toggle sidebar
devadamlar/laravel-id3global

Acts as an adapter between Laravel Eloquent and GBG ID3global service

2.046
0
1.0.0
About devadamlar/laravel-id3global

devadamlar/laravel-id3global is a Laravel package for acts as an adapter between laravel eloquent and gbg id3global service. It currently has 0 GitHub stars and 2.046 downloads on Packagist (latest version 1.0.0). Install it with composer require devadamlar/laravel-id3global. Discover more Laravel packages by devadamlar or browse all Laravel packages to compare alternatives.

Last updated

Introduction

This package converts Eloquent models to an Identity object that can be sent to verify users through ID3global API.

Installation

Install the library:

composer require devadamlar/laravel-id3global

Define the following environment variables:

ID3GLOBAL_USERNAME=
ID3GLOBAL_PASSWORD=

The pilot site will be used if the APP_ENV is other than Production. You can override this by setting the ID3GLOBAL_USE_PILOT variable in the environment file.

Usage

Use the Verifiable trait inside your Eloquent models to convert them into a GlobalInputData object with the makeInputData method. You can now call authenticateSp method of the Id3globalService facade and pass in the created object to do a verification.

You can set the $globalInputData array inside your model to override the names of attributes to be mapped to the ID3global's GlobalInputData properties. If you want to map an attribute from a relationship, put the name of the relationship, and the attribute separated by a dot:

use DevAdamlar\LaravelId3global\Verifiable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasOne;

class User extends Model
{
    use Verifiable;
    
    protected array $globalInputData = [
        'Personal.PersonalDetails.Gender' => 'sex',
        'ContactDetails.MobileTelephone.Number' => 'contact.mobile',
    ];
    
    public function contact(): HasOne
    {
        return $this->hasOne(Contact::class);
    }
}

class Contact extends Model
{

}

Some commonly-used attributes will be automatically mapped to the corresponding fields:

| GlobalInputData property | Corresponding model attribute | | ---------------------------------------- | ----------------------------- | | Personal.PersonalDetails.Forename | first_name | | Personal.PersonalDetails.MiddleName | middle_name | | Personal.PersonalDetails.Surname | last_name | | Personal.PersonalDetails.Gender | gender | | Personal.PersonalDetails.DateOfBirth | birthday | | Personal.PersonalDetails.CountryOfBirth| birth_country | | Addresses.CurrentAddress.Street | street | | Addresses.CurrentAddress.ZipPostcode | post_code | | Addresses.CurrentAddress.City | city | | Addresses.CurrentAddress.Country | country | | ContactDetails.Email | email | | ContactDetails.LandTelephone.Number | landline | | ContactDetails.MobileTelephone.Number | mobile | | ContactDetails.WorkTelephone.Number | work_phone |

If you need to override some properties on the fly, pass an array with the overridden properties as a value to the corresponding keys:

$user = User::find(1);
$user->makeInputData([
    'ContactDetails.MobileTelephone.Number' => '+994502000000'
]);

Refer to the ID3global's WSDL documentation to see the structure of the GlobalInputData class.

Star History Chart