Skip to content

Commit

Permalink
add telecom network type and extract phone number
Browse files Browse the repository at this point in the history
  • Loading branch information
PyaeSoneAungRgn committed Nov 5, 2023
1 parent b91034a commit b4d4360
Show file tree
Hide file tree
Showing 18 changed files with 346 additions and 8 deletions.
6 changes: 3 additions & 3 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@
"require": {
"php": "^8.1",
"illuminate/contracts": "^9.0|^10.0",
"laravel-myanmar-tools/phone-number": "^1.0.1",
"laravel-myanmar-tools/font": "^1.0",
"laravel-myanmar-tools/phone-number": "^1.1.0",
"laravel-myanmar-tools/font": "^1.0.0",
"laravel-myanmar-tools/nrc": "^1.0.1"
},
"require-dev": {
Expand Down Expand Up @@ -62,4 +62,4 @@
"pestphp/pest-plugin": true
}
}
}
}
24 changes: 19 additions & 5 deletions src/LaravelMyanmarToolsServiceProvider.php
Original file line number Diff line number Diff line change
Expand Up @@ -102,9 +102,9 @@ private function registerCarbonMacros(): void

private function registerLang(): void
{
$this->loadTranslationsFrom(__DIR__ . '/../resources/lang', $this->getPackageName());
$this->loadTranslationsFrom(__DIR__.'/../resources/lang', $this->getPackageName());
$this->publishes([
__DIR__ . '/../resources/lang' => base_path('/lang/vendor/' . $this->getPackageName()),
__DIR__.'/../resources/lang' => base_path('/lang/vendor/'.$this->getPackageName()),
]);
}

Expand All @@ -113,13 +113,20 @@ private function strMacros(): array
return [
// Telecom
'isMyanmarPhoneNumber' => \PyaeSoneAung\LaravelMyanmarTools\Macros\Str\IsMyanmarPhoneNumber::class,
'telecomName' => \PyaeSoneAung\LaravelMyanmarTools\Macros\Str\TelecomName::class,
'isMpt' => \PyaeSoneAung\LaravelMyanmarTools\Macros\Str\IsMpt::class,
'isOoredoo' => \PyaeSoneAung\LaravelMyanmarTools\Macros\Str\IsOoredoo::class,
'isTelenor' => \PyaeSoneAung\LaravelMyanmarTools\Macros\Str\IsTelenor::class,
'isMec' => \PyaeSoneAung\LaravelMyanmarTools\Macros\Str\IsMec::class,
'isMytel' => \PyaeSoneAung\LaravelMyanmarTools\Macros\Str\IsMytel::class,
'normalizeMyanmarPhoneNumber' => \PyaeSoneAung\LaravelMyanmarTools\Macros\Str\NormalizeMyanmarPhoneNumber::class,
'telecomName' => \PyaeSoneAung\LaravelMyanmarTools\Macros\Str\TelecomName::class,
'telecomNetworkType' => \PyaeSoneAung\LaravelMyanmarTools\Macros\Str\TelecomNetworkType::class,
'extractMyanmarPhoneNumber' => \PyaeSoneAung\LaravelMyanmarTools\Macros\Str\ExtractMyanmarPhoneNumber::class,
'extractMpt' => \PyaeSoneAung\LaravelMyanmarTools\Macros\Str\ExtractMpt::class,
'extractOoredoo' => \PyaeSoneAung\LaravelMyanmarTools\Macros\Str\ExtractOoredoo::class,
'extractTelenor' => \PyaeSoneAung\LaravelMyanmarTools\Macros\Str\ExtractTelenor::class,
'extractMec' => \PyaeSoneAung\LaravelMyanmarTools\Macros\Str\ExtractMec::class,
'extractMytel' => \PyaeSoneAung\LaravelMyanmarTools\Macros\Str\ExtractMytel::class,

// Font
'isZawgyiFont' => \PyaeSoneAung\LaravelMyanmarTools\Macros\Str\IsZawgyiFont::class,
Expand All @@ -139,13 +146,20 @@ private function requestMacros(): array
return [
// Telecom
'isMyanmarPhoneNumber' => \PyaeSoneAung\LaravelMyanmarTools\Macros\Request\IsMyanmarPhoneNumber::class,
'telecomName' => \PyaeSoneAung\LaravelMyanmarTools\Macros\Request\TelecomName::class,
'isMpt' => \PyaeSoneAung\LaravelMyanmarTools\Macros\Request\IsMpt::class,
'isOoredoo' => \PyaeSoneAung\LaravelMyanmarTools\Macros\Request\IsOoredoo::class,
'isTelenor' => \PyaeSoneAung\LaravelMyanmarTools\Macros\Request\IsTelenor::class,
'isMec' => \PyaeSoneAung\LaravelMyanmarTools\Macros\Request\IsMec::class,
'isMytel' => \PyaeSoneAung\LaravelMyanmarTools\Macros\Request\IsMytel::class,
'normalizeMyanmarPhoneNumber' => \PyaeSoneAung\LaravelMyanmarTools\Macros\Request\NormalizeMyanmarPhoneNumber::class,
'telecomName' => \PyaeSoneAung\LaravelMyanmarTools\Macros\Request\TelecomName::class,
'telecomNetworkType' => \PyaeSoneAung\LaravelMyanmarTools\Macros\Request\TelecomNetworkType::class,
'extractMyanmarPhoneNumber' => \PyaeSoneAung\LaravelMyanmarTools\Macros\Request\ExtractMyanmarPhoneNumber::class,
'extractMpt' => \PyaeSoneAung\LaravelMyanmarTools\Macros\Request\ExtractMpt::class,
'extractOoredoo' => \PyaeSoneAung\LaravelMyanmarTools\Macros\Request\ExtractOoredoo::class,
'extractTelenor' => \PyaeSoneAung\LaravelMyanmarTools\Macros\Request\ExtractTelenor::class,
'extractMec' => \PyaeSoneAung\LaravelMyanmarTools\Macros\Request\ExtractMec::class,
'extractMytel' => \PyaeSoneAung\LaravelMyanmarTools\Macros\Request\ExtractMytel::class,

// Font
'isZawgyiFont' => \PyaeSoneAung\LaravelMyanmarTools\Macros\Request\IsZawgyiFont::class,
Expand Down Expand Up @@ -235,6 +249,6 @@ private function getPackageName(): string

private function getErrorMessage($extend): mixed
{
return trans($this->getPackageName() . '::validation.' . Str::snake($extend));
return trans($this->getPackageName().'::validation.'.Str::snake($extend));
}
}
16 changes: 16 additions & 0 deletions src/Macros/Request/ExtractMec.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?php

namespace PyaeSoneAung\LaravelMyanmarTools\Macros\Request;

use Illuminate\Support\Str;

class ExtractMec
{
public function __invoke()
{
return function (string $key): array {
/** @var \Illuminate\Http\Request $this */
return Str::extractMec($this->input($key));
};
}
}
16 changes: 16 additions & 0 deletions src/Macros/Request/ExtractMpt.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?php

namespace PyaeSoneAung\LaravelMyanmarTools\Macros\Request;

use Illuminate\Support\Str;

class ExtractMpt
{
public function __invoke()
{
return function (string $key): array {
/** @var \Illuminate\Http\Request $this */
return Str::extractMpt($this->input($key));
};
}
}
16 changes: 16 additions & 0 deletions src/Macros/Request/ExtractMyanmarPhoneNumber.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?php

namespace PyaeSoneAung\LaravelMyanmarTools\Macros\Request;

use Illuminate\Support\Str;

class ExtractMyanmarPhoneNumber
{
public function __invoke()
{
return function (string $key): array {
/** @var \Illuminate\Http\Request $this */
return Str::extractMyanmarPhoneNumber($this->input($key));
};
}
}
16 changes: 16 additions & 0 deletions src/Macros/Request/ExtractMytel.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?php

namespace PyaeSoneAung\LaravelMyanmarTools\Macros\Request;

use Illuminate\Support\Str;

class ExtractMytel
{
public function __invoke()
{
return function (string $key): array {
/** @var \Illuminate\Http\Request $this */
return Str::extractMytel($this->input($key));
};
}
}
16 changes: 16 additions & 0 deletions src/Macros/Request/ExtractOoredoo.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?php

namespace PyaeSoneAung\LaravelMyanmarTools\Macros\Request;

use Illuminate\Support\Str;

class ExtractOoredoo
{
public function __invoke()
{
return function (string $key): array {
/** @var \Illuminate\Http\Request $this */
return Str::extractOoredoo($this->input($key));
};
}
}
16 changes: 16 additions & 0 deletions src/Macros/Request/ExtractTelenor.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?php

namespace PyaeSoneAung\LaravelMyanmarTools\Macros\Request;

use Illuminate\Support\Str;

class ExtractTelenor
{
public function __invoke()
{
return function (string $key): array {
/** @var \Illuminate\Http\Request $this */
return Str::extractTelenor($this->input($key));
};
}
}
16 changes: 16 additions & 0 deletions src/Macros/Request/TelecomNetworkType.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?php

namespace PyaeSoneAung\LaravelMyanmarTools\Macros\Request;

use Illuminate\Support\Str;

class TelecomNetworkType
{
public function __invoke()
{
return function (string $key): string {
/** @var \Illuminate\Http\Request $this */
return Str::telecomNetworkType($this->input($key));
};
}
}
15 changes: 15 additions & 0 deletions src/Macros/Str/ExtractMec.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?php

namespace PyaeSoneAung\LaravelMyanmarTools\Macros\Str;

use LaravelMyanmarTools\PhoneNumber\PhoneNumber;

class ExtractMec
{
public function __invoke()
{
return function (string $value): array {
return (new PhoneNumber())->extractMec($value);
};
}
}
15 changes: 15 additions & 0 deletions src/Macros/Str/ExtractMpt.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?php

namespace PyaeSoneAung\LaravelMyanmarTools\Macros\Str;

use LaravelMyanmarTools\PhoneNumber\PhoneNumber;

class ExtractMpt
{
public function __invoke()
{
return function (string $value): array {
return (new PhoneNumber())->extractMpt($value);
};
}
}
15 changes: 15 additions & 0 deletions src/Macros/Str/ExtractMyanmarPhoneNumber.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?php

namespace PyaeSoneAung\LaravelMyanmarTools\Macros\Str;

use LaravelMyanmarTools\PhoneNumber\PhoneNumber;

class ExtractMyanmarPhoneNumber
{
public function __invoke()
{
return function (string $value): array {
return (new PhoneNumber())->extractMyanmarPhoneNumber($value);
};
}
}
15 changes: 15 additions & 0 deletions src/Macros/Str/ExtractMytel.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?php

namespace PyaeSoneAung\LaravelMyanmarTools\Macros\Str;

use LaravelMyanmarTools\PhoneNumber\PhoneNumber;

class ExtractMytel
{
public function __invoke()
{
return function (string $value): array {
return (new PhoneNumber())->extractMytel($value);
};
}
}
15 changes: 15 additions & 0 deletions src/Macros/Str/ExtractOoredoo.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?php

namespace PyaeSoneAung\LaravelMyanmarTools\Macros\Str;

use LaravelMyanmarTools\PhoneNumber\PhoneNumber;

class ExtractOoredoo
{
public function __invoke()
{
return function (string $value): array {
return (new PhoneNumber())->extractOoredoo($value);
};
}
}
15 changes: 15 additions & 0 deletions src/Macros/Str/ExtractTelenor.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?php

namespace PyaeSoneAung\LaravelMyanmarTools\Macros\Str;

use LaravelMyanmarTools\PhoneNumber\PhoneNumber;

class ExtractTelenor
{
public function __invoke()
{
return function (string $value): array {
return (new PhoneNumber())->extractTelenor($value);
};
}
}
15 changes: 15 additions & 0 deletions src/Macros/Str/TelecomNetworkType.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?php

namespace PyaeSoneAung\LaravelMyanmarTools\Macros\Str;

use LaravelMyanmarTools\PhoneNumber\PhoneNumber;

class TelecomNetworkType
{
public function __invoke()
{
return function (string $value): string {
return (new PhoneNumber())->getNetworkType($value);
};
}
}
64 changes: 64 additions & 0 deletions tests/Feature/RequestTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
namespace PyaeSoneAung\LaravelMyanmarTools\Tests\Macro;

use Illuminate\Http\Request;
use LaravelMyanmarTools\PhoneNumber\Enums\Network;
use PyaeSoneAung\LaravelMyanmarTools\Tests\TestCase;

class RequestTest extends TestCase
Expand Down Expand Up @@ -170,6 +171,15 @@ public function it_can_get_telecom_name()
$this->assertEquals(static::MYTEL, $request->telecomName('mytel'));
}

/** @test */
public function it_can_get_telecom_network_type()
{
$request = $this->createRequest([
'mpt' => static::MPT_PHONE_NO,
]);
$this->assertEquals(Network::GSM->getValue(), $request->telecomNetworkType('mpt'));
}

/** @test */
public function it_can_normalize_myanmar_phone_number()
{
Expand Down Expand Up @@ -207,4 +217,58 @@ public function it_can_normalize_nrc()
$this->assertEquals(static::NRC_EN, $request->normalizeNrc('nrc_en'));
$this->assertEquals(static::NRC_MM, $request->normalizeNrc('nrc_mm', 'mm'));
}

/** @test */
public function it_can_extract_myanmar_phone_number()
{
$request = $this->createRequest([
'text' => 'မောင်မောင်ရဲ့ ဖုန်းနံပါတ်များမှာ ၀၉၂၅၀၀၀၀၀၀၀ နှင့် ၀၉၉၇၀၀၀၀၀၀၀ တို့ဖြစ်ပါသည်။',
]);
$this->assertEquals([static::MPT_PHONE_NO, static::OOREDOO_PHONE_NO], $request->extractMyanmarPhoneNumber('text'));
}

/** @test */
public function it_can_extract_mpt_number()
{
$request = $this->createRequest([
'text' => 'မောင်မောင်ရဲ့ ဖုန်းနံပါတ်မှာ 09250000000 ဖြစ်ပါသည်။',
]);
$this->assertEquals([static::MPT_PHONE_NO], $request->extractMpt('text'));
}

/** @test */
public function it_can_extract_ooredoo_number()
{
$request = $this->createRequest([
'text' => 'မောင်မောင်ရဲ့ ဖုန်းနံပါတ်မှာ 09970000000 ဖြစ်ပါသည်။',
]);
$this->assertEquals([static::OOREDOO_PHONE_NO], $request->extractOoredoo('text'));
}

/** @test */
public function it_can_extract_telenor_number()
{
$request = $this->createRequest([
'text' => 'မောင်မောင်ရဲ့ ဖုန်းနံပါတ်မှာ 09790000000 ဖြစ်ပါသည်။',
]);
$this->assertEquals([static::TELENOR_PHONE_NO], $request->extractTelenor('text'));
}

/** @test */
public function it_can_extract_mec_number()
{
$request = $this->createRequest([
'text' => 'မောင်မောင်ရဲ့ ဖုန်းနံပါတ်မှာ 0930000000 ဖြစ်ပါသည်။',
]);
$this->assertEquals([static::MEC_PHONE_NO], $request->extractMec('text'));
}

/** @test */
public function it_can_extract_mytel_number()
{
$request = $this->createRequest([
'text' => 'မောင်မောင်ရဲ့ ဖုန်းနံပါတ်မှာ 09690000000 ဖြစ်ပါသည်။',
]);
$this->assertEquals([static::MYTEL_PHONE_NO], $request->extractMytel('text'));
}
}
Loading

0 comments on commit b4d4360

Please sign in to comment.