Skip to content

Commit af2aa7a

Browse files
committed
added a feature to generate a random unique number for a model with a default value set in the configuration file
1 parent fab1666 commit af2aa7a

4 files changed

+20
-0
lines changed

CHANGELOG.md

+4
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,7 @@ All notable changes to `laravel-secure-random-number-generator` will be document
1717
## 0.0.4 - 2023-06-20
1818

1919
- updated composer packages
20+
21+
## 0.0.5 - 2023-06-20
22+
23+
- added a feature to generate a random unique number for a model with a default value set in the configuration file

README.md

+6
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,12 @@ use CreativeCrafts\SecureRandomNumberGenerator\SecureRandomNumberGenerator;
6464
$fromNumberRange = 100;
6565
$toNumberRange = 9999999;
6666
$secureRandomNumber = SecureRandomNumberGenerator::setNumberRange($fromNumberRange, $toNumberRange)->generate();
67+
68+
// Generate a random unique number for a model using the default number range set in the configuration file
69+
$tableName = 'users'
70+
$tableColumn = 'registration_number';
71+
72+
$secureUniqueRandomNumber = SecureRandomNumberGenerator::forModelUsingDefaultConfigNumberRange($tableName, $tableColumn)->generate();
6773

6874
```
6975

src/SecureRandomNumberGenerator.php

+5
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,11 @@ public static function forModel(int $fromNumberRange, int $toNumberRange, string
2727
return new self($fromNumberRange, $toNumberRange, $tableName, $tableColumnName);
2828
}
2929

30+
public static function forModelUsingDefaultConfigNumberRange(string $tableName, string $tableColumnName): self
31+
{
32+
return new self(self::fromRangeNumber(), self::toRangeNumber(), $tableName, $tableColumnName);
33+
}
34+
3035
public function generate(): int
3136
{
3237
$randomizer = new Randomizer(new Secure());

tests/SecureRandomNumberGeneratorTest.php

+5
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,8 @@
1616
$uniqueRandomNumber = SecureRandomNumberGenerator::forModel(1, 100, 'users', 'registration_number')->generate();
1717
expect($uniqueRandomNumber)->toBeInt();
1818
})->skip('This test will fail because the table users does not exist in the database.');
19+
20+
it('can generate a secure random unique number for model using default configuration', function () {
21+
$uniqueRandomNumber = SecureRandomNumberGenerator::forModelUsingDefaultConfigNumberRange('users', 'registration_number')->generate();
22+
expect($uniqueRandomNumber)->toBeInt();
23+
})->skip('This test will fail because the table users does not exist in the database.');

0 commit comments

Comments
 (0)