devadamlar / laravel-id3global
Acts as an adapter between Laravel Eloquent and GBG ID3global service
Installs: 2 046
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Requires
- php: ^7.4|^8.0
- illuminate/support: ^8.57
- madmatt/id3global-service: ^1.0
Requires (Dev)
- mockery/mockery: ^1.4
- orchestra/testbench: ^6.20
- phpunit/phpunit: ^9.0
This package is auto-updated.
Last update: 2025-03-16 20:32:47 UTC
README
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.