Skip to content

Commit 608a303

Browse files
Any97Crisvitormattos
authored andcommitted
feat: unified search
Signed-off-by: Crisciany Souza <crisciany.souza@librecode.coop>
1 parent 353bb31 commit 608a303

File tree

2 files changed

+26
-38
lines changed

2 files changed

+26
-38
lines changed

lib/Db/SignRequestMapper.php

Lines changed: 26 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -457,19 +457,20 @@ public function getFilesAssociatedFilesWithMe(
457457
];
458458
}
459459

460-
public function getFilesToSearchProvider(IUser $user, string $term, int $limit, int $offset): array {
460+
public function getFilesToSearchProvider(IUser $user, string $fileName, int $limit, int $offset): array {
461461
$filter = [
462462
'page' => ($offset / $limit) + 1,
463463
'length' => $limit,
464+
'fileName' => $fileName,
464465
];
465466

466-
$qb = $this->getFilesAssociatedFilesWithMeQueryBuilder($user->getUID(), $filter);
467+
$sort = [
468+
'sortBy' => 'created_at',
469+
'sortDirection' => 'desc',
470+
];
471+
472+
$qb = $this->getFilesAssociatedFilesWithMeQueryBuilder($user->getUID(), $filter, false, $sort);
467473

468-
if (!empty($term)) {
469-
$qb->andWhere(
470-
$qb->expr()->like('f.name', $qb->createNamedParameter('%' . $this->db->escapeLikeParameter($term) . '%'))
471-
);
472-
}
473474

474475
$qb->orderBy('f.created_at', 'DESC');
475476

@@ -478,16 +479,7 @@ public function getFilesToSearchProvider(IUser $user, string $term, int $limit,
478479

479480
while ($row = $result->fetch()) {
480481
try {
481-
$file = new File();
482-
$file->setId((int)$row['id']);
483-
$file->setUserId($row['user_id']);
484-
$file->setNodeId((int)($row['node_id'] ?? 0));
485-
$file->setSignedNodeId($row['signed_node_id'] ? (int)$row['signed_node_id'] : null);
486-
$file->setName($row['name'] ?? '');
487-
$file->setStatus((int)($row['status'] ?? 0));
488-
$file->setUuid($row['uuid'] ?? '');
489-
$file->setCreatedAt($row['created_at'] ?? '');
490-
482+
$file = File::fromRow($row);
491483

492484
$files[] = $file;
493485
} catch (\Exception $e) {
@@ -573,7 +565,7 @@ public function getMyLibresignFile(string $userId, ?array $filter = []): File {
573565
return $file->fromRow($row);
574566
}
575567

576-
private function getFilesAssociatedFilesWithMeQueryBuilder(string $userId, array $filter = [], bool $count = false): IQueryBuilder {
568+
private function getFilesAssociatedFilesWithMeQueryBuilder(string $userId, array $filter = [], bool $count = false, array $sort = []): IQueryBuilder {
577569
$qb = $this->db->getQueryBuilder();
578570
$qb->from('libresign_file', 'f')
579571
->leftJoin('f', 'libresign_sign_request', 'sr', 'sr.file_id = f.id')
@@ -676,26 +668,21 @@ private function getFilesAssociatedFilesWithMeQueryBuilder(string $userId, array
676668
$qb->expr()->lte('f.created_at', $qb->createNamedParameter($end, IQueryBuilder::PARAM_STR))
677669
);
678670
}
671+
if (!empty($filter['fileName'])) {
672+
$qb->andWhere(
673+
$qb->expr()->like('f.name', $qb->createNamedParameter('%' . $this->db->escapeLikeParameter($filter['fileName']) . '%'))
674+
);
675+
}
679676
if (!empty($filter['parentFileId'])) {
680677
$qb->andWhere(
681678
$qb->expr()->eq('f.parent_file_id', $qb->createNamedParameter($filter['parentFileId'], IQueryBuilder::PARAM_INT))
682679
);
683680
} else {
684681
$qb->andWhere($qb->expr()->isNull('f.parent_file_id'));
685682
}
686-
} else {
687-
$qb->andWhere($qb->expr()->isNull('f.parent_file_id'));
688683
}
689-
return $qb;
690-
}
691684

692-
private function getFilesAssociatedFilesWithMeStmt(
693-
string $userId,
694-
?array $filter = [],
695-
?array $sort = [],
696-
): Pagination {
697-
$qb = $this->getFilesAssociatedFilesWithMeQueryBuilder($userId, $filter);
698-
if (!empty($sort['sortBy'])) {
685+
if (!empty($sort['sortBy']) && !empty($sort['sortDirection'])) {
699686
switch ($sort['sortBy']) {
700687
case 'name':
701688
case 'status':
@@ -712,6 +699,16 @@ private function getFilesAssociatedFilesWithMeStmt(
712699
}
713700
}
714701

702+
return $qb;
703+
}
704+
705+
private function getFilesAssociatedFilesWithMeStmt(
706+
string $userId,
707+
?array $filter = [],
708+
?array $sort = [],
709+
): Pagination {
710+
$qb = $this->getFilesAssociatedFilesWithMeQueryBuilder($userId, $filter, false, $sort);
711+
715712
$countQb = $this->getFilesAssociatedFilesWithMeQueryBuilder(
716713
userId: $userId,
717714
filter: $filter,

lib/Search/FileSearchProvider.php

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
use OCP\App\IAppManager;
1616
use OCP\Files\IMimeTypeDetector;
1717
use OCP\Files\IRootFolder;
18-
use OCP\IDBConnection;
1918
use OCP\IL10N;
2019
use OCP\IURLGenerator;
2120
use OCP\IUser;
@@ -30,7 +29,6 @@ public function __construct(
3029
private IURLGenerator $urlGenerator,
3130
private IRootFolder $rootFolder,
3231
private IAppManager $appManager,
33-
private IDBConnection $db,
3432
private IMimeTypeDetector $mimeTypeDetector,
3533
private SignRequestMapper $fileMapper,
3634
) {
@@ -81,13 +79,6 @@ public function search(IUser $user, ISearchQuery $query): SearchResult {
8179
);
8280
}
8381

84-
/**
85-
* Format a File entity as a SearchResultEntry
86-
*
87-
* @param File $file The file entity to format
88-
* @param IUser $user Current user
89-
* @return SearchResultEntry Formatted search result entry
90-
*/
9182
private function formatResult(File $file, IUser $user): SearchResultEntry {
9283
$userFolder = $this->rootFolder->getUserFolder($user->getUID());
9384
$thumbnailUrl = '';

0 commit comments

Comments
 (0)