1
0
mirror of https://github.com/BookStackApp/BookStack.git synced 2025-08-09 10:22:51 +03:00

Notifications: Started core user notification logic

Put together an initial notification.
Started logic to query and identify watchers.
This commit is contained in:
Dan Brown
2023-08-04 12:27:29 +01:00
parent 9d149e4d36
commit 9779c1a357
13 changed files with 258 additions and 42 deletions

View File

@@ -0,0 +1,61 @@
<?php
namespace BookStack\Activity;
class WatchLevels
{
/**
* Default level, No specific option set
* Typically not a stored status
*/
const DEFAULT = -1;
/**
* Ignore all notifications.
*/
const IGNORE = 0;
/**
* Watch for new content.
*/
const NEW = 1;
/**
* Watch for updates and new content
*/
const UPDATES = 2;
/**
* Watch for comments, updates and new content.
*/
const COMMENTS = 3;
/**
* Get all the possible values as an option_name => value array.
*/
public static function all(): array
{
$options = [];
foreach ((new \ReflectionClass(static::class))->getConstants() as $name => $value) {
$options[strtolower($name)] = $value;
}
return $options;
}
public static function levelNameToValue(string $level): int
{
return static::all()[$level] ?? -1;
}
public static function levelValueToName(int $level): string
{
foreach (static::all() as $name => $value) {
if ($level === $value) {
return $name;
}
}
return 'default';
}
}