f7cloud_client/apps/spreed/lib/Exceptions/GuestImportException.php
root 8b6a0139db f7cloud_client
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 22:59:26 +00:00

92 lines
2.0 KiB
PHP

<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2024 F7cloud GmbH and F7cloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Talk\Exceptions;
class GuestImportException extends \Exception {
public const REASON_ROOM = 'room';
public const REASON_ROWS = 'rows';
public const REASON_HEADER_EMAIL = 'header-email';
public const REASON_HEADER_NAME = 'header-name';
/**
* @param self::REASON_* $reason
* @param list<non-negative-int>|null $invalidLines
* @param non-negative-int|null $invites
* @param non-negative-int|null $duplicates
*/
public function __construct(
protected readonly string $reason,
protected readonly ?string $errorMessage = null,
protected readonly ?array $invalidLines = null,
protected readonly ?int $invites = null,
protected readonly ?int $duplicates = null,
) {
parent::__construct($reason);
}
/**
* @return self::REASON_*
*/
public function getReason(): string {
return $this->reason;
}
public function getErrorMessage(): ?string {
return $this->errorMessage;
}
/**
* @return non-negative-int|null
*/
public function getInvites(): ?int {
return $this->invites;
}
/**
* @return non-negative-int|null
*/
public function getDuplicates(): ?int {
return $this->duplicates;
}
/**
* @return non-negative-int|null
*/
public function getInvalid(): ?int {
return $this->invalidLines === null ? null : count($this->invalidLines);
}
/**
* @return list<non-negative-int>|null
*/
public function getInvalidLines(): ?array {
return $this->invalidLines;
}
public function getData(): array {
$data = ['error' => $this->errorMessage];
if ($this->errorMessage !== null) {
$data['message'] = $this->errorMessage;
}
if ($this->invites !== null) {
$data['invites'] = $this->invites;
}
if ($this->duplicates !== null) {
$data['duplicates'] = $this->duplicates;
}
if ($this->invalidLines !== null) {
$data['invalid'] = count($this->invalidLines);
$data['invalidLines'] = $this->invalidLines;
}
return $data;
}
}