|
|
|
|
@ -38,12 +38,12 @@ class NewTvRequest extends Model {
|
|
|
|
|
// -- RELATED TO SCOPE
|
|
|
|
|
public function scopeAddColumnCanApprove(Builder $query) {
|
|
|
|
|
$query->withCount(['self as can_approve' => function($q) {
|
|
|
|
|
$q->whereNull('activated_at');
|
|
|
|
|
$q->whereNull('approved_at');
|
|
|
|
|
}]);
|
|
|
|
|
}
|
|
|
|
|
public function scopeAddColumnCanReject(Builder $query) {
|
|
|
|
|
$query->withCount(['self as can_reject' => function($q) {
|
|
|
|
|
$q->whereNull('activated_at');
|
|
|
|
|
$q->whereNull('approved_at');
|
|
|
|
|
}]);
|
|
|
|
|
}
|
|
|
|
|
// -- END RELATED TO SCOPE
|
|
|
|
|
@ -64,16 +64,16 @@ class NewTvRequest extends Model {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Rule:
|
|
|
|
|
* 1. if it has not been activated for more than the expiry date, deleted it
|
|
|
|
|
* 2. if it has been activated & has been responded more than expiry date, delete it
|
|
|
|
|
* - case: when has been activated, but intenet connection missing, how can device know
|
|
|
|
|
* that the new request tv has been activated?
|
|
|
|
|
* 1. if it has not been approved for more than the expiry date, deleted it
|
|
|
|
|
* 2. if it has been approved & has been responded more than expiry date, delete it
|
|
|
|
|
* - case: when has been approved, but intenet connection missing, how can device know
|
|
|
|
|
* that the new request tv has been approved?
|
|
|
|
|
*/
|
|
|
|
|
private static function _getMaxExpiredTime() :Carbon { return Carbon::now()->subHour(); }
|
|
|
|
|
public static function deleteExpiredRequests() {
|
|
|
|
|
$expiredTime = self::_getMaxExpiredTime()->toDateTimeString();
|
|
|
|
|
NewTvRequest::where(function($q) use ($expiredTime) {
|
|
|
|
|
$q->whereNull('activated_at')->where('created_at', '<=', $expiredTime);
|
|
|
|
|
$q->whereNull('approved_at')->where('created_at', '<=', $expiredTime);
|
|
|
|
|
})->orWhere(function($q) use ($expiredTime) {
|
|
|
|
|
$q->where('responded_at', '<=', $expiredTime );
|
|
|
|
|
})->delete();
|
|
|
|
|
@ -84,7 +84,7 @@ class NewTvRequest extends Model {
|
|
|
|
|
//------------------------------------------------------------
|
|
|
|
|
// -- RELATED TO FROM REQUEST FUNCTION
|
|
|
|
|
private static function _checkOrCreateResponse(NewTvRequest $newTvReq) {
|
|
|
|
|
if($newTvReq->activated_at) {
|
|
|
|
|
if($newTvReq->approved_at) {
|
|
|
|
|
// make sure waiting tv_device responded before deleted
|
|
|
|
|
if(empty($newTvReq->responded_at)) {
|
|
|
|
|
$newTvReq->responded_at = now();
|
|
|
|
|
@ -92,7 +92,7 @@ class NewTvRequest extends Model {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return JSONResponse::Success([
|
|
|
|
|
'message' => 'activated',
|
|
|
|
|
'message' => 'approved',
|
|
|
|
|
'new_tv_request' => $newTvReq,
|
|
|
|
|
'tv' => $newTvReq->tv
|
|
|
|
|
]);
|
|
|
|
|
@ -176,7 +176,7 @@ class NewTvRequest extends Model {
|
|
|
|
|
$tv->save();
|
|
|
|
|
TVLog::historyCreate($request->user(), $tv->id, $tv);
|
|
|
|
|
|
|
|
|
|
$newTvReq->activated_at = now();
|
|
|
|
|
$newTvReq->approved_at = now();
|
|
|
|
|
$newTvReq->tv_fk = $tv->id;
|
|
|
|
|
$newTvReq->save();
|
|
|
|
|
|
|
|
|
|
|