First commit
This commit is contained in:
36
Pub/Controller/Webhook.php
Normal file
36
Pub/Controller/Webhook.php
Normal file
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
namespace RomhackPlaza\Master\Pub\Controller;
|
||||
|
||||
use XF\Mvc\Controller;
|
||||
use XF\Mvc\Reply\AbstractReply;
|
||||
|
||||
class Webhook extends Controller
|
||||
{
|
||||
public function actionUpdateUserEntryCount(): AbstractReply
|
||||
{
|
||||
$this->assertPostOnly();
|
||||
|
||||
$token = $this->filter('_token', 'str');
|
||||
$secret = \XF::options()->rhpz_webhook_secret ?? '';
|
||||
|
||||
if( !$secret || !hash_equals($secret, $token) ){
|
||||
return $this->error('Unauthorized', 401);
|
||||
}
|
||||
|
||||
$userId = $this->filter('user_id', 'uint');
|
||||
$count = $this->filter('count', 'uint');
|
||||
|
||||
$user = \XF::em()->find('XF:User', $userId);
|
||||
if( !$user ){
|
||||
return $this->error('User not found', 404);
|
||||
}
|
||||
|
||||
$user->rhpz_entry_count = $count;
|
||||
$user->save();
|
||||
|
||||
$trophyService = \XF::service('XF:Trophy\Notify', $user);
|
||||
$trophyService->checkAndAwardTrophies();
|
||||
|
||||
return $this->apiSuccess(['count' => $count]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user