From fc5e6b2b410d6850278dd982990ce42552a3b1b2 Mon Sep 17 00:00:00 2001
From: Shin'ya Ueoka <ueokande@i-beam.org>
Date: Sat, 21 Jul 2018 11:17:51 +0900
Subject: Complete open histories and bookmarks

---
 src/background/usecases/completions.js | 24 ++++++++++++++++++++++--
 1 file changed, 22 insertions(+), 2 deletions(-)

(limited to 'src/background/usecases')

diff --git a/src/background/usecases/completions.js b/src/background/usecases/completions.js
index 21049d2..0bc34d1 100644
--- a/src/background/usecases/completions.js
+++ b/src/background/usecases/completions.js
@@ -27,8 +27,28 @@ export default class CompletionsInteractor {
     );
   }
 
-  queryOpen() {
-    return Promise.resolve(Completions.empty());
+  async queryOpen(name, keywords) {
+    let groups = [];
+    let histories = await this.completionRepository.queryHistories(keywords);
+    if (histories.length > 0) {
+      let items = histories.map(page => new CompletionItem({
+        caption: page.title,
+        content: name + ' ' + page.url,
+        url: page.url
+      }));
+      groups.push(new CompletionGroup('History', items));
+    }
+
+    let bookmarks = await this.completionRepository.queryBookmarks(keywords);
+    if (bookmarks.length > 0) {
+      let items = bookmarks.map(page => new CompletionItem({
+        caption: page.title,
+        content: name + ' ' + page.url,
+        url: page.url
+      }));
+      groups.push(new CompletionGroup('Bookmarks', items));
+    }
+    return new Completions(groups);
   }
 
   queryBuffer(name, keywords) {
-- 
cgit v1.2.3