aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Eilertsen <haraldei@anduin.net>2024-10-30 12:09:31 +0100
committerHarald Eilertsen <haraldei@anduin.net>2025-06-29 13:20:00 +0200
commit6336853b35b257b1004a6a0d625e56b113fd1503 (patch)
treeb6c95521f6362f214e9f946b025942201b4f0c45
parent53634cc1f27e9ed0711b50f9e03745d2949efb14 (diff)
downloadvolse-hubzilla-move-account-processing-to-class.tar.gz
volse-hubzilla-move-account-processing-to-class.tar.bz2
volse-hubzilla-move-account-processing-to-class.zip
Model\Account: Specify types for properties.move-account-processing-to-class
Adds a layer of type safety at the model level.
-rw-r--r--Zotlabs/Model/Account.php39
-rw-r--r--tests/unit/Model/AccountTest.php9
2 files changed, 41 insertions, 7 deletions
diff --git a/Zotlabs/Model/Account.php b/Zotlabs/Model/Account.php
index 2b29fdff4..0159149d9 100644
--- a/Zotlabs/Model/Account.php
+++ b/Zotlabs/Model/Account.php
@@ -14,7 +14,32 @@ use DateTimeImmutable;
use Zotlabs\Lib\Exceptions\AccountNotFoundException;
use Zotlabs\Lib\Exceptions\UnexpectedDatabaseError;
+/**
+ * Class for interacting with accounts.
+ *
+ * @SuppressWarnings(PHPMD.TooManyFields)
+ * @SuppressWarnings(PHPMD.LongVariable)
+ */
class Account {
+ private int $account_id = 0;
+ private int $account_parent = 0;
+ private int $account_default_channel = 0;
+ private string $account_salt = '';
+ private string $account_password = '';
+ private string $account_email = '';
+ private string $account_external = '';
+ private string $account_language = '';
+ private string $account_created = '';
+ private string $account_lastlog = '';
+ private int $account_flags = 0;
+ private int $account_roles = 0;
+ private string $account_reset = '';
+ private string $account_expires = '';
+ private string $account_expire_notified = '';
+ private string $account_service_class = '';
+ private int $account_level = 0;
+ private string $account_password_changed = '';
+
function __construct(array $attributes) {
foreach($attributes as $key => $val) {
$this->$key = $val;
@@ -180,9 +205,9 @@ class Account {
SQL;
$result = q($sql,
- intval($this->account_id),
- intval($this->account_parent),
- intval($this->account_default_channel),
+ $this->account_id,
+ $this->account_parent,
+ $this->account_default_channel,
dbesc($this->account_salt),
dbesc($this->account_password),
dbesc($this->account_email),
@@ -190,15 +215,15 @@ class Account {
dbesc($this->account_language),
dbesc($this->account_created),
dbesc($this->account_lastlog),
- intval($this->account_flags),
- intval($this->account_roles),
+ $this->account_flags,
+ $this->account_roles,
dbesc($this->account_reset),
dbesc($this->account_expires),
dbesc($this->account_expire_notified),
dbesc($this->account_service_class),
- intval($this->account_level),
+ $this->account_level,
dbesc($this->account_password_changed),
- intval($this->account_id)
+ $this->account_id
);
if ($result === false) {
diff --git a/tests/unit/Model/AccountTest.php b/tests/unit/Model/AccountTest.php
index 1da1ab87b..f9b126fa0 100644
--- a/tests/unit/Model/AccountTest.php
+++ b/tests/unit/Model/AccountTest.php
@@ -37,4 +37,13 @@ class AccountTest extends UnitTestCase {
public function test_get_total_number_of_accounts(): void {
$this->assertEquals(count($this->fixtures['account']), Account::count());
}
+
+ /**
+ * @SuppressWarnings(PHPMD.UnusedLocalVariable)
+ */
+ public function test_construct_account_with_invalid_id(): void {
+ $this->expectException(\TypeError::class);
+
+ $account = new Account(['account_id' => 'neverwhere']);
+ }
}