generate a hex code for an aircraft on creation #33
This commit is contained in:
parent
2678514077
commit
5c58dfe1ae
@ -14,6 +14,7 @@ $factory->define(App\Models\Aircraft::class, function (Faker $faker) {
|
||||
'icao' => $faker->unique()->text(5),
|
||||
'name' => $faker->unique()->text(50),
|
||||
'registration' => $faker->unique()->text(10),
|
||||
'hex_code' => \App\Support\ICAO::createHexCode(),
|
||||
'active' => true,
|
||||
'created_at' => $faker->dateTimeBetween('-1 week', 'now'),
|
||||
'updated_at' => function (array $pirep) {
|
||||
|
@ -2,6 +2,8 @@
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use App\Support\ICAO;
|
||||
|
||||
class Aircraft extends BaseModel
|
||||
{
|
||||
public $table = 'aircraft';
|
||||
@ -12,6 +14,7 @@ class Aircraft extends BaseModel
|
||||
'name',
|
||||
'icao',
|
||||
'registration',
|
||||
'hex_code',
|
||||
'zfw',
|
||||
'active',
|
||||
];
|
||||
@ -46,6 +49,10 @@ class Aircraft extends BaseModel
|
||||
if (!empty($model->icao)) {
|
||||
$model->icao = strtoupper(trim($model->icao));
|
||||
}
|
||||
|
||||
if(empty($model->hex_code)) {
|
||||
$model->hex_code = ICAO::createHexCode();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -9,4 +9,15 @@ namespace App\Support;
|
||||
class ICAO
|
||||
{
|
||||
|
||||
/**
|
||||
* Create a random hex code. Eventually this may follow the format in:
|
||||
* ICAO Aeronautical Telecommunications, Annex 10, Vol. III, chapter 9
|
||||
* @param null $country
|
||||
* @return string
|
||||
*/
|
||||
public static function createHexCode($country=null)
|
||||
{
|
||||
$bytes = random_bytes(4);
|
||||
return bin2hex($bytes);
|
||||
}
|
||||
}
|
||||
|
@ -29,7 +29,7 @@
|
||||
<!-- Registration Field -->
|
||||
<div class="form-group col-sm-6">
|
||||
{!! Form::label('registration', 'Registration:') !!}
|
||||
<p class="text-success small">Enter the registration without the country prefix</p>
|
||||
{{--<p class="text-success small">Enter the registration with the country prefix</p>--}}
|
||||
{!! Form::text('registration', null, ['class' => 'form-control']) !!}
|
||||
<p class="text-danger">{{ $errors->first('registration') }}</p>
|
||||
</div>
|
||||
|
@ -57,4 +57,10 @@ class UtilsTest extends TestCase
|
||||
$api_key = Utils::generateApiKey();
|
||||
$this->assertNotNull($api_key);
|
||||
}
|
||||
|
||||
public function testHexCode()
|
||||
{
|
||||
$hex_code = \App\Support\ICAO::createHexCode();
|
||||
$this->assertNotNull($hex_code);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user