Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
13 / 13
100.00% covered (success)
100.00%
1 / 1
CRAP
100.00% covered (success)
100.00%
1 / 1
RevokeWebdavAccessTokenEndpoint
100.00% covered (success)
100.00%
13 / 13
100.00% covered (success)
100.00%
1 / 1
2
100.00% covered (success)
100.00%
1 / 1
 handle
100.00% covered (success)
100.00%
13 / 13
100.00% covered (success)
100.00%
1 / 1
2
1<?php
2
3namespace Olz\Apps\Files\Endpoints;
4
5use Olz\Api\OlzTypedEndpoint;
6use Olz\Entity\AccessToken;
7
8/**
9 * @extends OlzTypedEndpoint<
10 *   ?array{},
11 *   array{status: 'OK'|'ERROR'}
12 * >
13 */
14class RevokeWebdavAccessTokenEndpoint extends OlzTypedEndpoint {
15    protected function handle(mixed $input): mixed {
16        $this->checkPermission('webdav');
17
18        $current_user = $this->authUtils()->getCurrentUser();
19
20        $access_token_repo = $this->entityManager()->getRepository(AccessToken::class);
21        $access_token = $access_token_repo->findOneBy([
22            'user' => $current_user,
23            'purpose' => 'WebDAV',
24        ]);
25
26        if ($access_token) {
27            $this->entityManager()->remove($access_token);
28            $this->entityManager()->flush();
29        }
30
31        return [
32            'status' => 'OK',
33        ];
34    }
35}