Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 25 additions & 24 deletions lib/Db/CollectedAddressMapper.php
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,11 @@

namespace OCA\Mail\Db;

use OCP\AppFramework\Db\Mapper;
use OCP\AppFramework\Db\QBMapper;
use OCP\DB\QueryBuilder\IQueryBuilder;
use OCP\IDBConnection;

class CollectedAddressMapper extends Mapper {
class CollectedAddressMapper extends QBMapper {

/**
* @param IDBConnection $db
Expand All @@ -40,25 +40,32 @@ public function __construct(IDBConnection $db) {
*
* @param string $userId
* @param string $query
*
* @return CollectedAddress[]
*/
public function findMatching($userId, $query) {
$sql = 'SELECT * FROM *PREFIX*mail_collected_addresses WHERE `user_id` = ? AND (`email` ILIKE ? OR `display_name` ILIKE ?)';
$params = [
$userId,
'%' . $query . '%',
'%' . $query . '%',
];
return $this->findEntities($sql, $params);
$qb = $this->db->getQueryBuilder();
$dbQuery = $qb
->select('*')
->from($this->getTableName())
->where($qb->expr()->eq('user_id', $qb->createNamedParameter($userId)))
->andWhere($qb->expr()->orX(
$qb->expr()->iLike('email', $qb->createNamedParameter("%$query%")),
$qb->expr()->iLike('display_name', $qb->createNamedParameter("%$query%"))
));

return $this->findEntities($dbQuery);
}

public function exists($userId, $email) {
$sql = 'SELECT * FROM *PREFIX*mail_collected_addresses WHERE `user_id` = ? AND `email` ILIKE ?';
$params = [
$userId,
$email
];
return count($this->findEntities($sql, $params)) > 0;
$qb = $this->db->getQueryBuilder();
$dbQuery = $qb
->select('*')
->from($this->getTableName())
->where($qb->expr()->eq('user_id', $qb->createNamedParameter($userId)))
->andWhere($qb->expr()->iLike('email', $qb->createNamedParameter($email)));

return count($this->findEntities($dbQuery)) > 0;
}

public function getTotal() {
Expand All @@ -68,7 +75,7 @@ public function getTotal() {
->from($this->getTableName());
$result = $qb->execute();

$count = (int) $result->fetchColumn(0);
$count = (int)$result->fetchColumn(0);
$result->closeCursor();
return $count;
}
Expand All @@ -85,16 +92,10 @@ public function getChunk($minId = null) {
->setMaxResults(100);
if (!is_null($minId)) {
$query = $query->where($qb->expr()->gte('id',
$qb->createNamedParameter($minId)));
$qb->createNamedParameter($minId)));
}

$result = $query->execute();
$rows = $result->fetchAll();
$result->closeCursor();

return array_map(function(array $data) {
return CollectedAddress::fromRow($data);
}, $rows);
return $this->findEntities($query);
}

}
18 changes: 12 additions & 6 deletions lib/Db/LocalAttachmentMapper.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,10 @@
namespace OCA\Mail\Db;

use OCP\AppFramework\Db\DoesNotExistException;
use OCP\AppFramework\Db\Mapper;
use OCP\AppFramework\Db\QBMapper;
use OCP\IDBConnection;

class LocalAttachmentMapper extends Mapper {
class LocalAttachmentMapper extends QBMapper {

/**
* @param IDBConnection $db
Expand All @@ -37,15 +37,21 @@ public function __construct(IDBConnection $db) {

/**
* @throws DoesNotExistException
*
* @param int $userId
* @param int $id
*
* @return LocalAttachment
*/
public function find($userId, $id) {
$sql = 'SELECT * FROM `' . $this->getTableName() . '` WHERE user_id = ? and id = ?';
$params = [$userId, $id];

return $this->findEntity($sql, $params);
$qb = $this->db->getQueryBuilder();
$query = $qb
->select('*')
->from($this->getTableName())
->where($qb->expr()->eq('user_id', $qb->createNamedParameter($userId)))
->andWhere($qb->expr()->eq('id', $qb->createNamedParameter($id)));

return $this->findEntity($query);
}

}
28 changes: 20 additions & 8 deletions lib/Db/MailAccountMapper.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,10 @@

namespace OCA\Mail\Db;

use OCP\AppFramework\Db\Mapper;
use OCP\AppFramework\Db\QBMapper;
use OCP\IDBConnection;

class MailAccountMapper extends Mapper {
class MailAccountMapper extends QBMapper {

/**
* @param IDBConnection $db
Expand All @@ -40,31 +40,43 @@ public function __construct(IDBConnection $db) {
*
* @param string $userId
* @param int $accountId
*
* @return MailAccount
*/
public function find($userId, $accountId) {
$sql = 'SELECT * FROM `' . $this->getTableName() . '` WHERE user_id = ? and id = ?';
$params = [$userId, $accountId];
$qb = $this->db->getQueryBuilder();
$query = $qb
->select('*')
->from($this->getTableName())
->where($qb->expr()->eq('user_id', $qb->createNamedParameter($userId)))
->andWhere($qb->expr()->eq('id', $qb->createNamedParameter($accountId)));

return $this->findEntity($sql, $params);
return $this->findEntity($qb);
}

/**
* Finds all Mail Accounts by user id existing for this user
*
* @param string $userId the id of the user that we want to find
* @param $userId
*
* @return MailAccount[]
*/
public function findByUserId($userId) {
$sql = 'SELECT * FROM ' . $this->getTableName() . ' WHERE user_id = ?';
$params = [$userId];
$qb = $this->db->getQueryBuilder();
$query = $qb
->select('*')
->from($this->getTableName())
->where($qb->expr()->eq('user_id', $qb->createNamedParameter($userId)));

return $this->findEntities($sql, $params);
return $this->findEntities($query);
}

/**
* Saves an User Account into the database
*
* @param MailAccount $account
*
* @return MailAccount
*/
public function save(MailAccount $account) {
Expand Down