Skip to content

devadamlar/laravel-id3global

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages