*/ class OcmTokenMapMapper extends QBMapper { public function __construct(IDBConnection $db) { parent::__construct($db, 'ocm_token_map', OcmTokenMap::class); } /** * @throws DoesNotExistException */ public function getByAccessTokenId(int $accessTokenId): OcmTokenMap { $qb = $this->db->getQueryBuilder(); $qb->select('*') ->from($this->getTableName()) ->where($qb->expr()->eq('access_token_id', $qb->createNamedParameter($accessTokenId))); return $this->findEntity($qb); } /** * All mappings for a refresh token. Returns every match, since a refresh * token can back several access tokens and concurrent exchanges may add * duplicate rows. * * @return OcmTokenMap[] */ public function findAllByRefreshToken(string $refreshToken): array { $qb = $this->db->getQueryBuilder(); $qb->select('*') ->from($this->getTableName()) ->where($qb->expr()->eq('refresh_token', $qb->createNamedParameter($refreshToken))); return $this->findEntities($qb); } /** * All mappings whose access token has expired before $time. * * @return OcmTokenMap[] */ public function findExpired(int $time): array { $qb = $this->db->getQueryBuilder(); $qb->select('*') ->from($this->getTableName()) ->where($qb->expr()->lt('expires', $qb->createNamedParameter($time))); return $this->findEntities($qb); } }