refactor: code style changes
Signed-off-by: miguel456 <me@nogueira.codes>
This commit is contained in:
@@ -13,14 +13,14 @@ class Absence extends Model
|
||||
use HasFactory;
|
||||
|
||||
protected $fillable = [
|
||||
'requesterID',
|
||||
'start',
|
||||
'predicted_end',
|
||||
'available_assist',
|
||||
'reason',
|
||||
'status',
|
||||
'reviewer',
|
||||
'reviewed_date'
|
||||
'requesterID',
|
||||
'start',
|
||||
'predicted_end',
|
||||
'available_assist',
|
||||
'reason',
|
||||
'status',
|
||||
'reviewer',
|
||||
'reviewed_date',
|
||||
];
|
||||
|
||||
public function requester(): BelongsTo
|
||||
@@ -28,72 +28,69 @@ class Absence extends Model
|
||||
return $this->belongsTo('App\User', 'requesterID', 'id');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Determines whether this model can be setApproved(), setDeclined() or setCancelled()
|
||||
*
|
||||
* @param bool $toCancel Switch the check to cancellability check
|
||||
* @param bool $toCancel Switch the check to cancellability check
|
||||
* @return bool
|
||||
*/
|
||||
public function isActionable(bool $toCancel = false): bool
|
||||
{
|
||||
if ($toCancel)
|
||||
{
|
||||
if ($toCancel) {
|
||||
return in_array($this->getRawOriginal('status'), ['PENDING', 'APPROVED']);
|
||||
}
|
||||
|
||||
return $this->getRawOriginal('status') == 'PENDING';
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Sets the Absence's status as approved
|
||||
*
|
||||
* @return Absence
|
||||
*
|
||||
* @throws AbsenceNotActionableException
|
||||
*/
|
||||
public function setApproved(): Absence
|
||||
{
|
||||
if ($this->isActionable())
|
||||
{
|
||||
if ($this->isActionable()) {
|
||||
return tap($this)->update([
|
||||
'status' => 'APPROVED'
|
||||
'status' => 'APPROVED',
|
||||
]);
|
||||
}
|
||||
|
||||
throw new AbsenceNotActionableException('This absence is not actionable!');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Sets the absence's status as declined
|
||||
*
|
||||
* @return Absence
|
||||
*
|
||||
* @throws AbsenceNotActionableException
|
||||
*/
|
||||
public function setDeclined(): Absence
|
||||
{
|
||||
if ($this->isActionable()) {
|
||||
return tap($this)->update([
|
||||
'status' => 'DECLINED'
|
||||
'status' => 'DECLINED',
|
||||
]);
|
||||
}
|
||||
|
||||
throw new AbsenceNotActionableException('This absence is not actionable!');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Sets the absence's status as cancelled
|
||||
*
|
||||
* @return Absence
|
||||
*
|
||||
* @throws AbsenceNotActionableException Thrown when the switch to this status would be invalid
|
||||
*/
|
||||
public function setCancelled(): Absence
|
||||
{
|
||||
if ($this->isActionable(true)) {
|
||||
return tap($this)->update([
|
||||
'status' => 'CANCELLED'
|
||||
'status' => 'CANCELLED',
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -108,18 +105,16 @@ class Absence extends Model
|
||||
public function setEnded(): Absence
|
||||
{
|
||||
return tap($this)->update([
|
||||
'status' => 'ENDED'
|
||||
'status' => 'ENDED',
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
// Look out when retrieving this value;
|
||||
//If you need the unaltered version of it, either adapt to its formatting or call getRawOriginal()
|
||||
protected function status(): Attribute {
|
||||
protected function status(): Attribute
|
||||
{
|
||||
return Attribute::make(
|
||||
get: fn($value) => ucfirst(strtolower($value))
|
||||
get: fn ($value) => ucfirst(strtolower($value))
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user