|
|
@@ -1,4 +1,5 @@ |
|
|
|
<?php |
|
|
|
declare(strict_types=1); |
|
|
|
/** |
|
|
|
* @copyright Copyright (c) 2017 Lukas Reschke <lukas@statuscode.ch> |
|
|
|
* |
|
|
@@ -22,11 +23,12 @@ |
|
|
|
namespace OCA\OAuth2\Db; |
|
|
|
|
|
|
|
use OCA\OAuth2\Exceptions\ClientNotFoundException; |
|
|
|
use OCP\AppFramework\Db\Mapper; |
|
|
|
use OCP\AppFramework\Db\IMapperException; |
|
|
|
use OCP\AppFramework\Db\QBMapper; |
|
|
|
use OCP\DB\QueryBuilder\IQueryBuilder; |
|
|
|
use OCP\IDBConnection; |
|
|
|
|
|
|
|
class ClientMapper extends Mapper { |
|
|
|
class ClientMapper extends QBMapper { |
|
|
|
|
|
|
|
/** |
|
|
|
* @param IDBConnection $db |
|
|
@@ -40,50 +42,50 @@ class ClientMapper extends Mapper { |
|
|
|
* @return Client |
|
|
|
* @throws ClientNotFoundException |
|
|
|
*/ |
|
|
|
public function getByIdentifier($clientIdentifier) { |
|
|
|
public function getByIdentifier(string $clientIdentifier): Client { |
|
|
|
$qb = $this->db->getQueryBuilder(); |
|
|
|
$qb |
|
|
|
->select('*') |
|
|
|
->from($this->tableName) |
|
|
|
->where($qb->expr()->eq('client_identifier', $qb->createNamedParameter($clientIdentifier))); |
|
|
|
$result = $qb->execute(); |
|
|
|
$row = $result->fetch(); |
|
|
|
$result->closeCursor(); |
|
|
|
if($row === false) { |
|
|
|
throw new ClientNotFoundException(); |
|
|
|
|
|
|
|
try { |
|
|
|
$client = $this->findEntity($qb); |
|
|
|
} catch (IMapperException $e) { |
|
|
|
throw new ClientNotFoundException('could not find client '.$clientIdentifier, 0, $e); |
|
|
|
} |
|
|
|
return Client::fromRow($row); |
|
|
|
return $client; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @param string $uid internal uid of the client |
|
|
|
* @param int $id internal id of the client |
|
|
|
* @return Client |
|
|
|
* @throws ClientNotFoundException |
|
|
|
*/ |
|
|
|
public function getByUid($uid) { |
|
|
|
public function getByUid(int $id): Client { |
|
|
|
$qb = $this->db->getQueryBuilder(); |
|
|
|
$qb |
|
|
|
->select('*') |
|
|
|
->from($this->tableName) |
|
|
|
->where($qb->expr()->eq('id', $qb->createNamedParameter($uid, IQueryBuilder::PARAM_INT))); |
|
|
|
$result = $qb->execute(); |
|
|
|
$row = $result->fetch(); |
|
|
|
$result->closeCursor(); |
|
|
|
if($row === false) { |
|
|
|
throw new ClientNotFoundException(); |
|
|
|
->where($qb->expr()->eq('id', $qb->createNamedParameter($id, IQueryBuilder::PARAM_INT))); |
|
|
|
|
|
|
|
try { |
|
|
|
$client = $this->findEntity($qb); |
|
|
|
} catch (IMapperException $e) { |
|
|
|
throw new ClientNotFoundException('could not find client with id '.$id, 0, $e); |
|
|
|
} |
|
|
|
return Client::fromRow($row); |
|
|
|
return $client; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @return Client[] |
|
|
|
*/ |
|
|
|
public function getClients() { |
|
|
|
public function getClients(): array { |
|
|
|
$qb = $this->db->getQueryBuilder(); |
|
|
|
$qb |
|
|
|
->select('*') |
|
|
|
->from($this->tableName); |
|
|
|
|
|
|
|
return $this->findEntities($qb->getSQL()); |
|
|
|
return $this->findEntities($qb); |
|
|
|
} |
|
|
|
} |