%PDF- %PDF-
Direktori : /www/varak.net/nextcloud.varak.net/apps/app_api/lib/Service/UI/ |
Current File : //www/varak.net/nextcloud.varak.net/apps/app_api/lib/Service/UI/InitialStateService.php |
<?php declare(strict_types=1); namespace OCA\AppAPI\Service\UI; use OCA\AppAPI\Db\UI\InitialState; use OCA\AppAPI\Db\UI\InitialStateMapper; use OCP\AppFramework\Db\DoesNotExistException; use OCP\AppFramework\Db\MultipleObjectsReturnedException; use OCP\DB\Exception; use Psr\Log\LoggerInterface; class InitialStateService { public function __construct( private readonly InitialStateMapper $mapper, private readonly LoggerInterface $logger, ) { } public function setExAppInitialState(string $appId, string $type, string $name, string $key, array $value): ?InitialState { $initialState = $this->getExAppInitialState($appId, $type, $name, $key); try { $newInitialState = new InitialState([ 'appid' => $appId, 'type' => $type, 'name' => $name, 'key' => $key, 'value' => $value, ]); if ($initialState !== null) { $newInitialState->setId($initialState->getId()); } $initialState = $this->mapper->insertOrUpdate($newInitialState); } catch (Exception $e) { $this->logger->error( sprintf('Failed to set ExApp %s initial state %s. Error: %s', $appId, $name, $e->getMessage()), ['exception' => $e] ); return null; } return $initialState; } public function deleteExAppInitialState(string $appId, string $type, string $name, string $key): bool { return $this->mapper->removeByKey($appId, $type, $name, $key); } public function getExAppInitialState(string $appId, string $type, string $name, string $key): ?InitialState { try { return $this->mapper->findByAppIdTypeNameKey($appId, $type, $name, $key); } catch (DoesNotExistException|MultipleObjectsReturnedException|Exception $e) { } return null; } public function deleteExAppInitialStates(string $appId): int { try { $result = $this->mapper->removeAllByAppId($appId); } catch (Exception) { $result = -1; } return $result; } public function deleteExAppInitialStatesByTypeName(string $appId, string $type, string $name): int { try { $result = $this->mapper->removeAllByTypeName($appId, $type, $name); } catch (Exception) { $result = -1; } return $result; } public function getExAppInitialStates(string $appId, string $type, string $name): array { try { $initialStates = $this->mapper->findByAppIdTypeName($appId, $type, $name); $results = []; foreach ($initialStates as $value) { $results[$value['key']] = $value['value']; } return $results; } catch (Exception) { return []; } } }