Files
2023-11-19 17:10:33 +08:00

38 lines
1.1 KiB
PHP

<?php
namespace App\Classes\Modules\Documents\Services;
use App\Classes\General\Eloquent\AbstractUpdateRecord;
use App\Classes\ValueObjects\Constants\ApprovalStatus;
use App\Models\Document;
use App\Models\User;
use Carbon\Carbon;
class RejectsDocument extends AbstractUpdateRecord
{
/**
* @param Document $model
* @return \Illuminate\Database\Eloquent\Model
* @throws \App\Classes\Exceptions\MalformedRequestException
*/
public function execute(Document $model)
{
$user = Auth()->user();
// if auth user is null, then this services is calling from shipping
if (!$user) {
$token = explode('.', request()->bearerToken())[1];
$decodedToken = base64_decode($token);
$shippingUser = json_decode($decodedToken, true)['user'];
$user = User::where('email', $shippingUser['email'])->first();
if (!$user) {
$user = User::find(1);
}
}
$model->status = ApprovalStatus::REJECTED;
$model->approver = $user->id;
$model->approval_date = Carbon::now();
return $this->handler($model);
}
}