diff options
Diffstat (limited to 'src/Types')
| -rw-r--r-- | src/Types/IdentifierType.php | 10 | ||||
| -rw-r--r-- | src/Types/LoginFlow.php | 27 | ||||
| -rw-r--r-- | src/Types/LoginType.php | 9 |
3 files changed, 46 insertions, 0 deletions
diff --git a/src/Types/IdentifierType.php b/src/Types/IdentifierType.php new file mode 100644 index 0000000..93396fa --- /dev/null +++ b/src/Types/IdentifierType.php @@ -0,0 +1,10 @@ +<?php + +namespace App\Types; + +enum IdentifierType: string +{ + case USER = "m.id.user"; + case THIRDPARTY = "m.id.thirdparty"; + case PHONE = "m.id.phone"; +} diff --git a/src/Types/LoginFlow.php b/src/Types/LoginFlow.php new file mode 100644 index 0000000..bd948a8 --- /dev/null +++ b/src/Types/LoginFlow.php @@ -0,0 +1,27 @@ +<?php + +namespace App\Types; + +use App\Support\ArrayTransformable; + +class LoginFlow implements ArrayTransformable +{ + public function __construct( + private LoginType $type, + private bool $get_login_token = false, + ) + {} + + public function toArray(): array + { + $flow = [ + "type" => $this->type, + ]; + + if ($this->type == LoginType::TOKEN) { + $flow["get_login_token"] = $this->get_login_token; + } + + return $flow; + } +} diff --git a/src/Types/LoginType.php b/src/Types/LoginType.php new file mode 100644 index 0000000..a5e3d8b --- /dev/null +++ b/src/Types/LoginType.php @@ -0,0 +1,9 @@ +<?php + +namespace App\Types; + +enum LoginType: string +{ + case PASSWORD = "m.login.password"; + case TOKEN = "m.login.token"; +} |
