gocanto/places-validation

validate users addresses through services like google place

0.8 2018-02-25 13:02 UTC

This package is auto-updated.

Last update: 2024-04-20 16:04:00 UTC


README

Total Downloads Build Status Latest Stable Version

Places validation is a laravel library that will help you out to handle your user addresses. Its aim is making sure the addresses submitted by users are valid through 3rd party services, as google.

Installation

Begin by installing the package through Composer. Run the following command in your terminal:

composer require gocanto/places-validation

Once composer is done, add the package service provider in the providers array in config/app.php:

Gocanto\AddressValidation\ValidatorServiceProvider::class

Client Side

Vuejs component which implements the google autocomplete library:

Settings

You will be able to set the validator driver into config/addressval.php file. At the moment, the package just has the ability to work with google, but others services are planned ahead.

The array driver looks like this:

'driver' => [

  //api key if required
  'key' => '',

  //driver object
  'name' => 'GeoogleGeocode',

  //api url
  'api' => 'http://maps.google.com/maps/api/geocode/json'
],

if you do not set the driver within this file, the default one will be used.

Validate user address using the Laravel validator object

Now you will be able to use this package to validate the user address information within your validations rules. This is how it would look like:

$rules = [
  'address' => 'valid_place'
];

$data = [
  'address' => 'Guacara, Carabobo, Venezuela'
];

$v = \Validator::make($data, $rules);

You will be able to see the implementation on ManagerTest

Use out of the Laravel object

To implement the validation within your project, you have to include the Checker object as so:

use Gocanto\AddressValidation\Lib\Checker;

then, you can let laravel to handle the dependency injection for you, as so:

public function index(Checker $places)
{

  if ( ! $v = $places->validate('Guacara, Carabobo, Venezuela')) {
    //the place is not valid.
  }

  //retrieve the place information.
  dd($v->retrieve(), $v->location());
}

Output Illustration

example

Inspiration

The inspiration came from a needed of using the validation within a form request object. I used Prosper Otemuyiwa package to have a scope of what I had to do.

Contributing

Please feel free to fork this package and contribute by submitting a pull request to enhance the functionalities.

License

The MIT License (MIT). Please see License File for more information.

How can I thank you?

Why not star the github repo? Why not share the link for this repository on Twitter? Spread the word!

Don't forget to follow me on twitter!

Thanks!

Gustavo Ocanto. gustavoocanto@gmail.com