API improvements (#1826)

This commit is contained in:
Kevin Papst
2020-07-17 20:30:16 +02:00
committed by GitHub
parent 5864c7e127
commit c843dba29a
77 changed files with 1745 additions and 1189 deletions

View File

@@ -11,177 +11,127 @@ declare(strict_types=1);
namespace App\API\Model;
final class I18n
use JMS\Serializer\Annotation as Serializer;
/**
* @Serializer\ExclusionPolicy("all")
*/
final class I18nConfig
{
/**
* Format used for 'begin' and 'end'
*
* @var string
*
* @Serializer\Expose()
* @Serializer\Groups({"Default"})
* @Serializer\Type(name="string")
*/
private $formDateTime = '';
/**
* Format used for toolbar queries
*
* @var string
*
* @Serializer\Expose()
* @Serializer\Groups({"Default"})
* @Serializer\Type(name="string")
*/
private $formDate = '';
/**
* Format used to display date-time values (see PHP function date_format)
*
* @var string
*
* @Serializer\Expose()
* @Serializer\Groups({"Default"})
* @Serializer\Type(name="string")
*/
private $dateTime = '';
/**
* Format used to display date values (see PHP function date_format)
*
* @var string
*
* @Serializer\Expose()
* @Serializer\Groups({"Default"})
* @Serializer\Type(name="string")
*/
private $date = '';
/**
* Format used to display times (see PHP function date_format)
*
* @var string
*
* @Serializer\Expose()
* @Serializer\Groups({"Default"})
* @Serializer\Type(name="string")
*/
private $time = '';
/**
* Format used to display durations (replace: %h with hours, %m with minutes, %s with seconds)
*
* @var string
*
* @Serializer\Expose()
* @Serializer\Groups({"Default"})
* @Serializer\Type(name="string")
*/
private $duration = '';
/**
* Whether a twenty-four hour format is used (true) or 12-hours AM/PM format (false)
*
* @var bool
*
* @Serializer\Expose()
* @Serializer\Groups({"Default"})
* @Serializer\Type(name="boolean")
*/
private $is24hours = true;
/**
* @return string
*/
public function getFormDateTime(): string
{
return $this->formDateTime;
}
/**
* @param string $formDateTime
* @return I18n
*/
public function setFormDateTime(string $formDateTime)
public function setFormDateTime(string $formDateTime): I18nConfig
{
$this->formDateTime = $formDateTime;
return $this;
}
/**
* @return string
*/
public function getFormDate(): string
{
return $this->formDate;
}
/**
* @param string $formDate
* @return I18n
*/
public function setFormDate(string $formDate)
public function setFormDate(string $formDate): I18nConfig
{
$this->formDate = $formDate;
return $this;
}
/**
* @return string
*/
public function getDateTime(): string
{
return $this->dateTime;
}
/**
* @param string $dateTime
* @return I18n
*/
public function setDateTime(string $dateTime)
public function setDateTime(string $dateTime): I18nConfig
{
$this->dateTime = $dateTime;
return $this;
}
/**
* @return string
*/
public function getDate(): string
{
return $this->date;
}
/**
* @param string $date
* @return I18n
*/
public function setDate(string $date)
public function setDate(string $date): I18nConfig
{
$this->date = $date;
return $this;
}
/**
* @return string
*/
public function getDuration(): string
{
return $this->duration;
}
/**
* @param string $duration
* @return I18n
*/
public function setDuration(string $duration)
public function setDuration(string $duration): I18nConfig
{
$this->duration = $duration;
return $this;
}
/**
* @return string
*/
public function getTime(): string
{
return $this->time;
}
/**
* @param string $time
* @return I18n
*/
public function setTime(string $time)
public function setTime(string $time): I18nConfig
{
$this->time = $time;
return $this;
}
/**
* @return bool
*/
public function isIs24hours(): bool
{
return $this->is24hours;
}
/**
* @param bool $is24hours
* @return I18n
*/
public function setIs24hours(bool $is24hours)
public function setIs24hours(bool $is24hours): I18nConfig
{
$this->is24hours = $is24hours;

View File

@@ -11,53 +11,74 @@ declare(strict_types=1);
namespace App\API\Model;
use JMS\Serializer\Annotation as Serializer;
/**
* @Serializer\ExclusionPolicy("none")
*/
final class TimesheetConfig
{
/**
* See here: https://www.kimai.org/documentation/timesheet.html#tracking-modes
* The time-tracking mode, see also: https://www.kimai.org/documentation/timesheet.html#tracking-modes
*
* @var string
*
* @Serializer\Expose()
* @Serializer\Groups({"Default"})
* @Serializer\Type(name="string")
*/
private $trackingMode = 'default';
/**
* Default begin datetime in PHP format
*
* @var string
*
* @Serializer\Expose()
* @Serializer\Groups({"Default"})
* @Serializer\Type(name="string")
*/
private $defaultBeginTime = 'now';
/**
* How many running timesheets a user is allowed to have at the same time
*
* @var int
*
* @Serializer\Expose()
* @Serializer\Groups({"Default"})
* @Serializer\Type(name="integer")
*/
private $activeEntriesHardLimit = 1;
/**
* How many running timesheets a user is allowed before a warning is shown
*
* @var int
*
* @Serializer\Expose()
* @Serializer\Groups({"Default"})
* @Serializer\Type(name="integer")
*/
private $activeEntriesSoftLimit = 1;
/**
* Whether entries for future times are allowed
*
* @var bool
*
* @Serializer\Expose()
* @Serializer\Groups({"Default"})
* @Serializer\Type(name="boolean")
*/
private $isAllowFutureTimes = true;
/**
* Whether overlapping entries are allowed
*
* @var bool
*
* @Serializer\Expose()
* @Serializer\Groups({"Default"})
* @Serializer\Type(name="boolean")
*/
private $isAllowOverlapping = true;
/**
* @return string
*/
public function getTrackingMode(): string
{
return $this->trackingMode;
}
public function setTrackingMode(string $trackingMode): TimesheetConfig
{
$this->trackingMode = $trackingMode;
@@ -65,11 +86,6 @@ final class TimesheetConfig
return $this;
}
public function getDefaultBeginTime(): string
{
return $this->defaultBeginTime;
}
public function setDefaultBeginTime(string $defaultBeginTime): TimesheetConfig
{
$this->defaultBeginTime = $defaultBeginTime;
@@ -77,11 +93,6 @@ final class TimesheetConfig
return $this;
}
public function getActiveEntriesHardLimit(): int
{
return $this->activeEntriesHardLimit;
}
public function setActiveEntriesHardLimit(int $activeEntriesHardLimit): TimesheetConfig
{
$this->activeEntriesHardLimit = $activeEntriesHardLimit;
@@ -89,11 +100,6 @@ final class TimesheetConfig
return $this;
}
public function getActiveEntriesSoftLimit(): int
{
return $this->activeEntriesSoftLimit;
}
public function setActiveEntriesSoftLimit(int $activeEntriesSoftLimit): TimesheetConfig
{
$this->activeEntriesSoftLimit = $activeEntriesSoftLimit;
@@ -101,11 +107,6 @@ final class TimesheetConfig
return $this;
}
public function isAllowFutureTimes(): bool
{
return $this->isAllowFutureTimes;
}
public function setIsAllowFutureTimes(bool $isAllowFutureTimes): TimesheetConfig
{
$this->isAllowFutureTimes = $isAllowFutureTimes;
@@ -113,11 +114,6 @@ final class TimesheetConfig
return $this;
}
public function isAllowOverlapping(): bool
{
return $this->isAllowOverlapping;
}
public function setIsAllowOverlapping(bool $isAllowOverlapping): TimesheetConfig
{
$this->isAllowOverlapping = $isAllowOverlapping;

View File

@@ -12,37 +12,61 @@ declare(strict_types=1);
namespace App\API\Model;
use App\Constants;
use JMS\Serializer\Annotation as Serializer;
/**
* @Serializer\ExclusionPolicy("all")
*/
class Version
{
/**
* Kimai Version, eg. "1.9"
*
* @var string
*
* @Serializer\Expose()
* @Serializer\Groups({"Default"})
* @Serializer\Type(name="string")
*/
protected $version = Constants::VERSION;
/**
* Candidate: either "prod" or "dev"
*
* @var string
*
* @Serializer\Expose()
* @Serializer\Groups({"Default"})
* @Serializer\Type(name="string")
*/
protected $candidate = Constants::STATUS;
/**
* Full version including status, eg: "1.9-prod"
*
* @var string
*
* @Serializer\Expose()
* @Serializer\Groups({"Default"})
* @Serializer\Type(name="string")
*/
protected $semver = Constants::VERSION . '-' . Constants::STATUS;
/**
* The version name
*
* @var string
*
* @Serializer\Expose()
* @Serializer\Groups({"Default"})
* @Serializer\Type(name="string")
*/
protected $name = Constants::NAME;
/**
* A full copyright notice
*
* @var string
*
* @Serializer\Expose()
* @Serializer\Groups({"Default"})
* @Serializer\Type(name="string")
*/
protected $copyright = Constants::SOFTWARE . ' - ' . Constants::VERSION . ' ' . Constants::STATUS . ' (' . Constants::NAME . ') by Kevin Papst and contributors.';
}