Skip to content

Commit 7f2528e

Browse files
committed
feat: error handling
Signed-off-by: Jana Peper <[email protected]>
1 parent 6ac0c82 commit 7f2528e

File tree

2 files changed

+21
-4
lines changed

2 files changed

+21
-4
lines changed

apps/webhook_listeners/lib/Db/EphemeralTokenMapper.php

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,8 +110,14 @@ public function invalidateOldTokens(int $token_lifetime = self::TOKEN_LIFETIME)
110110

111111
$this->logger->debug('Invalidating ephemeral webhook tokens older than ' . date('c', $olderThan), ['app' => 'webhook_listeners']);
112112
foreach ($tokensToDelete as $token) {
113-
$this->tokenMapper->invalidate($this->tokenMapper->getTokenById($token->getTokenId())->getToken()); // delete token itself
114-
$this->deleteByTokenId($token->getTokenId()); // delete db row in webhook_tokens
113+
try{
114+
$this->tokenMapper->invalidate($this->tokenMapper->getTokenById($token->getTokenId())->getToken()); // delete token itself
115+
$this->deleteByTokenId($token->getTokenId()); // delete db row in webhook_tokens
116+
}
117+
catch(Exception $e){
118+
$this->logger->error('Webhook token deletion failed: ' . $e->getMessage(), ['exception' => $e]);
119+
}
120+
115121
}
116122
}
117123
}

apps/webhook_listeners/lib/Service/TokenService.php

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,14 @@
1818
use OCP\IUserManager;
1919
use OCP\L10N\IFactory;
2020
use OCP\Security\ISecureRandom;
21+
use Psr\Log\LoggerInterface;
2122

2223
class TokenService {
2324
public function __construct(
2425
private IProvider $tokenProvider,
2526
private ISecureRandom $random,
2627
private EphemeralTokenMapper $tokenMapper,
28+
private LoggerInterface $logger,
2729
private ITimeFactory $time,
2830
private IFactory $l10nFactory,
2931
private IUserManager $userManager,
@@ -39,7 +41,7 @@ public function __construct(
3941
*
4042
* @param WebhookListener $webhookListener
4143
* @param ?string $triggerUserId the user that triggered the webhook call
42-
* @return array{user_ids?:array<string,string>,user_roles?:array{owner?:array<string,string>,trigger?:array<string,string>}}
44+
* @return array{user_ids?:list<string>,user_roles?:array{owner?:array<string,string>,trigger?:array<string,string>}}
4345
*/
4446
public function getTokens(WebhookListener $webhookListener, ?string $triggerUserId): array {
4547
$tokens = [
@@ -49,7 +51,13 @@ public function getTokens(WebhookListener $webhookListener, ?string $triggerUser
4951
$tokenNeeded = $webhookListener->getTokenNeeded();
5052
if (isset($tokenNeeded['user_ids'])) {
5153
foreach ($tokenNeeded['user_ids'] as $userId) {
52-
$tokens['user_ids'][$userId] = $this->createEphemeralToken($userId);
54+
try{
55+
$tokens['user_ids'][$userId] = $this->createEphemeralToken($userId);
56+
}
57+
catch(\Exception $e){
58+
$this->logger->error('Webhook token creation for user ' . $userId . ' failed: ' . $e->getMessage(), ['exception' => $e]);
59+
}
60+
5361
}
5462
}
5563
if (isset($tokenNeeded['user_roles'])) {
@@ -74,6 +82,9 @@ public function getTokens(WebhookListener $webhookListener, ?string $triggerUser
7482
$triggerUserId => $this->createEphemeralToken($triggerUserId)
7583
];
7684
break;
85+
default:
86+
$this->logger->error('Webhook token creation for user role ' . $function . ' not defined. ' . $e->getMessage(), ['exception' => $e]);
87+
7788
}
7889
}
7990
}

0 commit comments

Comments
 (0)