diff --git a/app/Http/Controllers/HelixRankCheckController.php b/app/Http/Controllers/HelixRankCheckController.php index 341281e..af5dea2 100644 --- a/app/Http/Controllers/HelixRankCheckController.php +++ b/app/Http/Controllers/HelixRankCheckController.php @@ -36,6 +36,27 @@ class HelixRankCheckController extends Controller return $e; }, $members); + $mostRecentTimestamp = array_reduce($members, function($c, $e) { + $lastSeen = Carbon::parse($e['lastSeen']); + if ($lastSeen > $c) + return $lastSeen; + return $c; + }, Carbon::createFromTimestamp(0)); + + $demotionTimestamp = $mostRecentTimestamp->subHours(config('chaosapi.helix.demotion_time_hours', 3)); + + $members = array_filter($members, function($e) use ($demotionTimestamp) { + if ($e['lastSeen'] > $demotionTimestamp) { + return true; + } + + // User should be removed from our system regarding Helix + $fcRankedUser = FreeCompanyRankedUser::find($e['lodestoneId']); + if ($fcRankedUser !== null) + $fcRankedUser->delete(); + return false; + }); + return [ 'success' => true, 'error' => null, diff --git a/config/chaosapi.php b/config/chaosapi.php index 71a088d..d528f1c 100644 --- a/config/chaosapi.php +++ b/config/chaosapi.php @@ -10,6 +10,7 @@ return [ "Recruit" => 0, "Initiate" => 14, "Member" => 44, - ] + ], + 'demotion_time_hours' => 5 ] ];