aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorCôme Chilliet <91878298+come-nc@users.noreply.github.com>2023-09-05 10:15:08 +0200
committerGitHub <noreply@github.com>2023-09-05 10:15:08 +0200
commitf331d86ca84f45c94c9bd38df771c40e133c6bf7 (patch)
tree5d087e7482aa127603ee0d91c5dd87865b80966e /lib
parent7ee34a3fac802b1512fe3d12e9cc4d5b817a8ee1 (diff)
parent637cafcf35422fbf1280144ac68c71a3284be74f (diff)
downloadnextcloud-server-f331d86ca84f45c94c9bd38df771c40e133c6bf7.tar.gz
nextcloud-server-f331d86ca84f45c94c9bd38df771c40e133c6bf7.zip
Merge pull request #35539 from nextcloud/cleanup/carl/application-contactsmanager
Cleanup psalm issues in DB/ContactsManager and Console
Diffstat (limited to 'lib')
-rw-r--r--lib/private/Console/Application.php17
-rw-r--r--lib/private/ContactsManager.php25
-rw-r--r--lib/private/DB/Adapter.php10
-rw-r--r--lib/private/DB/Connection.php16
-rw-r--r--lib/private/DB/ConnectionAdapter.php2
-rw-r--r--lib/private/DB/MigrationService.php58
-rw-r--r--lib/private/DB/OracleConnection.php2
-rw-r--r--lib/public/Contacts/IManager.php17
8 files changed, 62 insertions, 85 deletions
diff --git a/lib/private/Console/Application.php b/lib/private/Console/Application.php
index 113f0507ef5..a0306c9798c 100644
--- a/lib/private/Console/Application.php
+++ b/lib/private/Console/Application.php
@@ -47,17 +47,12 @@ use Symfony\Component\Console\Output\ConsoleOutputInterface;
use Symfony\Component\Console\Output\OutputInterface;
class Application {
- /** @var IConfig */
- private $config;
+ private IConfig $config;
private SymfonyApplication $application;
- /** @var IEventDispatcher */
- private $dispatcher;
- /** @var IRequest */
- private $request;
- /** @var LoggerInterface */
- private $logger;
- /** @var MemoryInfo */
- private $memoryInfo;
+ private IEventDispatcher $dispatcher;
+ private IRequest $request;
+ private LoggerInterface $logger;
+ private MemoryInfo $memoryInfo;
public function __construct(IConfig $config,
IEventDispatcher $dispatcher,
@@ -74,8 +69,6 @@ class Application {
}
/**
- * @param InputInterface $input
- * @param ConsoleOutputInterface $output
* @throws \Exception
*/
public function loadCommands(
diff --git a/lib/private/ContactsManager.php b/lib/private/ContactsManager.php
index c39f7c715cc..cfbd4305cd8 100644
--- a/lib/private/ContactsManager.php
+++ b/lib/private/ContactsManager.php
@@ -91,20 +91,20 @@ class ContactsManager implements IManager {
* This function can be used to delete the contact identified by the given id
*
* @param int $id the unique identifier to a contact
- * @param string $address_book_key identifier of the address book in which the contact shall be deleted
+ * @param string $addressBookKey identifier of the address book in which the contact shall be deleted
* @return bool successful or not
*/
- public function delete($id, $address_book_key) {
- $addressBook = $this->getAddressBook($address_book_key);
+ public function delete($id, $addressBookKey) {
+ $addressBook = $this->getAddressBook($addressBookKey);
if (!$addressBook) {
- return null;
+ return false;
}
if ($addressBook->getPermissions() & Constants::PERMISSION_DELETE) {
return $addressBook->delete($id);
}
- return null;
+ return false;
}
/**
@@ -112,11 +112,11 @@ class ContactsManager implements IManager {
* Otherwise the contact will be updated by replacing the entire data set.
*
* @param array $properties this array if key-value-pairs defines a contact
- * @param string $address_book_key identifier of the address book in which the contact shall be created or updated
- * @return array representing the contact just created or updated
+ * @param string $addressBookKey identifier of the address book in which the contact shall be created or updated
+ * @return ?array representing the contact just created or updated
*/
- public function createOrUpdate($properties, $address_book_key) {
- $addressBook = $this->getAddressBook($address_book_key);
+ public function createOrUpdate($properties, $addressBookKey) {
+ $addressBook = $this->getAddressBook($addressBookKey);
if (!$addressBook) {
return null;
}
@@ -133,7 +133,7 @@ class ContactsManager implements IManager {
*
* @return bool true if enabled, false if not
*/
- public function isEnabled() {
+ public function isEnabled(): bool {
return !empty($this->addressBooks) || !empty($this->addressBookLoaders);
}
@@ -192,11 +192,8 @@ class ContactsManager implements IManager {
/**
* Get (and load when needed) the address book for $key
- *
- * @param string $addressBookKey
- * @return IAddressBook
*/
- protected function getAddressBook($addressBookKey) {
+ protected function getAddressBook(string $addressBookKey): ?IAddressBook {
$this->loadAddressBooks();
if (!array_key_exists($addressBookKey, $this->addressBooks)) {
return null;
diff --git a/lib/private/DB/Adapter.php b/lib/private/DB/Adapter.php
index acaa529c0e2..ad232aaabd1 100644
--- a/lib/private/DB/Adapter.php
+++ b/lib/private/DB/Adapter.php
@@ -30,6 +30,7 @@ namespace OC\DB;
use Doctrine\DBAL\Exception;
use Doctrine\DBAL\Exception\UniqueConstraintViolationException;
+use OC\DB\Exceptions\DbalException;
/**
* This handles the way we use to write queries, into something that can be
@@ -142,9 +143,12 @@ class Adapter {
foreach ($values as $key => $value) {
$builder->setValue($key, $builder->createNamedParameter($value));
}
- return $builder->execute();
- } catch (UniqueConstraintViolationException $e) {
- return 0;
+ return $builder->executeStatement();
+ } catch (DbalException $e) {
+ if ($e->getReason() === \OCP\DB\Exception::REASON_UNIQUE_CONSTRAINT_VIOLATION) {
+ return 0;
+ }
+ throw $e;
}
}
}
diff --git a/lib/private/DB/Connection.php b/lib/private/DB/Connection.php
index 85c6a72dfdb..2bd1d4c824a 100644
--- a/lib/private/DB/Connection.php
+++ b/lib/private/DB/Connection.php
@@ -220,7 +220,7 @@ class Connection extends \Doctrine\DBAL\Connection {
* @return Statement The prepared statement.
* @throws Exception
*/
- public function prepare($statement, $limit = null, $offset = null): Statement {
+ public function prepare($sql, $limit = null, $offset = null): Statement {
if ($limit === -1 || $limit === null) {
$limit = null;
} else {
@@ -231,9 +231,9 @@ class Connection extends \Doctrine\DBAL\Connection {
}
if (!is_null($limit)) {
$platform = $this->getDatabasePlatform();
- $statement = $platform->modifyLimitQuery($statement, $limit, $offset);
+ $sql = $platform->modifyLimitQuery($sql, $limit, $offset);
}
- $statement = $this->replaceTablePrefix($statement);
+ $statement = $this->replaceTablePrefix($sql);
$statement = $this->adapter->fixupStatement($statement);
return parent::prepare($statement);
@@ -321,14 +321,14 @@ class Connection extends \Doctrine\DBAL\Connection {
*
* @param string $seqName Name of the sequence object from which the ID should be returned.
*
- * @return string the last inserted ID.
+ * @return int the last inserted ID.
* @throws Exception
*/
- public function lastInsertId($seqName = null) {
- if ($seqName) {
- $seqName = $this->replaceTablePrefix($seqName);
+ public function lastInsertId($name = null): int {
+ if ($name) {
+ $name = $this->replaceTablePrefix($name);
}
- return $this->adapter->lastInsertId($seqName);
+ return $this->adapter->lastInsertId($name);
}
/**
diff --git a/lib/private/DB/ConnectionAdapter.php b/lib/private/DB/ConnectionAdapter.php
index a53c7ecd994..56d554f8313 100644
--- a/lib/private/DB/ConnectionAdapter.php
+++ b/lib/private/DB/ConnectionAdapter.php
@@ -87,7 +87,7 @@ class ConnectionAdapter implements IDBConnection {
public function lastInsertId(string $table): int {
try {
- return (int)$this->inner->lastInsertId($table);
+ return $this->inner->lastInsertId($table);
} catch (Exception $e) {
throw DbalException::wrap($e);
}
diff --git a/lib/private/DB/MigrationService.php b/lib/private/DB/MigrationService.php
index 71d7b51d149..29df1c1f78d 100644
--- a/lib/private/DB/MigrationService.php
+++ b/lib/private/DB/MigrationService.php
@@ -58,7 +58,7 @@ class MigrationService {
/**
* @throws \Exception
*/
- public function __construct($appName, Connection $connection, ?IOutput $output = null, ?AppLocator $appLocator = null) {
+ public function __construct(string $appName, Connection $connection, ?IOutput $output = null, ?AppLocator $appLocator = null) {
$this->appName = $appName;
$this->connection = $connection;
if ($output === null) {
@@ -100,18 +100,15 @@ class MigrationService {
/**
* Returns the name of the app for which this migration is executed
- *
- * @return string
*/
- public function getApp() {
+ public function getApp(): string {
return $this->appName;
}
/**
- * @return bool
* @codeCoverageIgnore - this will implicitly tested on installation
*/
- private function createMigrationTable() {
+ private function createMigrationTable(): bool {
if ($this->migrationTableCreated) {
return false;
}
@@ -188,7 +185,7 @@ class MigrationService {
->where($qb->expr()->eq('app', $qb->createNamedParameter($this->getApp())))
->orderBy('version');
- $result = $qb->execute();
+ $result = $qb->executeQuery();
$rows = $result->fetchAll(\PDO::FETCH_COLUMN);
$result->closeCursor();
@@ -197,15 +194,17 @@ class MigrationService {
/**
* Returns all versions which are available in the migration folder
- *
- * @return array
+ * @return list<string>
*/
- public function getAvailableVersions() {
+ public function getAvailableVersions(): array {
$this->ensureMigrationsAreLoaded();
return array_map('strval', array_keys($this->migrations));
}
- protected function findMigrations() {
+ /**
+ * @return array<string, string>
+ */
+ protected function findMigrations(): array {
$directory = realpath($this->migrationsPath);
if ($directory === false || !file_exists($directory) || !is_dir($directory)) {
return [];
@@ -322,10 +321,9 @@ class MigrationService {
/**
* Return the explicit version for the aliases; current, next, prev, latest
*
- * @param string $alias
* @return mixed|null|string
*/
- public function getMigration($alias) {
+ public function getMigration(string $alias) {
switch ($alias) {
case 'current':
return $this->getCurrentVersion();
@@ -342,29 +340,22 @@ class MigrationService {
return '0';
}
- /**
- * @param string $version
- * @param int $delta
- * @return null|string
- */
- private function getRelativeVersion($version, $delta) {
+ private function getRelativeVersion(string $version, int $delta): ?string {
$this->ensureMigrationsAreLoaded();
$versions = $this->getAvailableVersions();
- array_unshift($versions, 0);
+ array_unshift($versions, '0');
+ /** @var int $offset */
$offset = array_search($version, $versions, true);
if ($offset === false || !isset($versions[$offset + $delta])) {
// Unknown version or delta out of bounds.
return null;
}
- return (string) $versions[$offset + $delta];
+ return (string)$versions[$offset + $delta];
}
- /**
- * @return string
- */
- private function getCurrentVersion() {
+ private function getCurrentVersion(): string {
$m = $this->getMigratedVersions();
if (count($m) === 0) {
return '0';
@@ -374,11 +365,9 @@ class MigrationService {
}
/**
- * @param string $version
- * @return string
* @throws \InvalidArgumentException
*/
- private function getClass($version) {
+ private function getClass(string $version): string {
$this->ensureMigrationsAreLoaded();
if (isset($this->migrations[$version])) {
@@ -390,21 +379,16 @@ class MigrationService {
/**
* Allows to set an IOutput implementation which is used for logging progress and messages
- *
- * @param IOutput $output
*/
- public function setOutput(IOutput $output) {
+ public function setOutput(IOutput $output): void {
$this->output = $output;
}
/**
* Applies all not yet applied versions up to $to
- *
- * @param string $to
- * @param bool $schemaOnly
* @throws \InvalidArgumentException
*/
- public function migrate($to = 'latest', $schemaOnly = false) {
+ public function migrate(string $to = 'latest', bool $schemaOnly = false): void {
if ($schemaOnly) {
$this->migrateSchemaOnly($to);
return;
@@ -425,11 +409,9 @@ class MigrationService {
/**
* Applies all not yet applied versions up to $to
- *
- * @param string $to
* @throws \InvalidArgumentException
*/
- public function migrateSchemaOnly($to = 'latest') {
+ public function migrateSchemaOnly(string $to = 'latest'): void {
// read known migrations
$toBeExecuted = $this->getMigrationsToExecute($to);
diff --git a/lib/private/DB/OracleConnection.php b/lib/private/DB/OracleConnection.php
index b7e040965ee..1112d5c450a 100644
--- a/lib/private/DB/OracleConnection.php
+++ b/lib/private/DB/OracleConnection.php
@@ -29,6 +29,8 @@ namespace OC\DB;
class OracleConnection extends Connection {
/**
* Quote the keys of the array
+ * @param array<string, string> $data
+ * @return array<string, string>
*/
private function quoteKeys(array $data) {
$return = [];
diff --git a/lib/public/Contacts/IManager.php b/lib/public/Contacts/IManager.php
index 6ca349b95d0..97fa2e61529 100644
--- a/lib/public/Contacts/IManager.php
+++ b/lib/public/Contacts/IManager.php
@@ -107,22 +107,22 @@ interface IManager {
* This function can be used to delete the contact identified by the given id
*
* @param int $id the unique identifier to a contact
- * @param string $address_book_key identifier of the address book in which the contact shall be deleted
+ * @param string $addressBookKey identifier of the address book in which the contact shall be deleted
* @return bool successful or not
* @since 6.0.0
*/
- public function delete($id, $address_book_key);
+ public function delete($id, $addressBookKey);
/**
* This function is used to create a new contact if 'id' is not given or not present.
* Otherwise the contact will be updated by replacing the entire data set.
*
* @param array $properties this array if key-value-pairs defines a contact
- * @param string $address_book_key identifier of the address book in which the contact shall be created or updated
- * @return array an array representing the contact just created or updated
+ * @param string $addressBookKey identifier of the address book in which the contact shall be created or updated
+ * @return ?array an array representing the contact just created or updated
* @since 6.0.0
*/
- public function createOrUpdate($properties, $address_book_key);
+ public function createOrUpdate($properties, $addressBookKey);
/**
* Check if contacts are available (e.g. contacts app enabled)
@@ -135,20 +135,19 @@ interface IManager {
/**
* Registers an address book
*
- * @param \OCP\IAddressBook $address_book
* @return void
* @since 6.0.0
*/
- public function registerAddressBook(\OCP\IAddressBook $address_book);
+ public function registerAddressBook(\OCP\IAddressBook $addressBook);
/**
* Unregisters an address book
*
- * @param \OCP\IAddressBook $address_book
+ * @param \OCP\IAddressBook $addressBook
* @return void
* @since 6.0.0
*/
- public function unregisterAddressBook(\OCP\IAddressBook $address_book);
+ public function unregisterAddressBook(\OCP\IAddressBook $addressBook);
/**
* In order to improve lazy loading a closure can be registered which will be called in case