From f73bc67b992eef01bab2c5b35e7e85a741276b94 Mon Sep 17 00:00:00 2001
From: Janne Koschinski <janne@kuschku.de>
Date: Sun, 18 Sep 2016 16:15:55 +0200
Subject: [PATCH] Improved the API and fixed a minor UI issue

---
 api/backlog/index.php             |  2 +-
 api/search/index.php              |  2 +-
 api/searchbuffer/index.php        |  4 ++--
 api/searchbuffers/index.php       | 19 +++++++++++++++++++
 backend/helper/RendererHelper.php |  1 -
 res/search.js                     |  2 +-
 6 files changed, 24 insertions(+), 6 deletions(-)
 create mode 100644 api/searchbuffers/index.php

diff --git a/api/backlog/index.php b/api/backlog/index.php
index b994fcf..557b4ce 100644
--- a/api/backlog/index.php
+++ b/api/backlog/index.php
@@ -15,5 +15,5 @@ try {
     $backend->authenticateFromHeader($_SERVER['HTTP_AUTHORIZATION'] ?: "");
     $renderer->renderJson($backend->context($_GET['anchor'] ?: 0, $_GET['buffer'] ?: 0, $_GET['before'], $_GET['after']));
 } catch (\Exception $e) {
-    $renderer->renderError($e);
+    $renderer->renderJson(["error" => $e->getMessage()]);
 }
\ No newline at end of file
diff --git a/api/search/index.php b/api/search/index.php
index e9e45c8..8b977f0 100644
--- a/api/search/index.php
+++ b/api/search/index.php
@@ -15,5 +15,5 @@ try {
     $backend->authenticateFromHeader($_SERVER['HTTP_AUTHORIZATION'] ?: "");
     $renderer->renderJson($backend->findBuffers($_GET['q'] ?: ""));
 } catch (\Exception $e) {
-    $renderer->renderError($e);
+    $renderer->renderJson(["error" => $e->getMessage()]);
 }
\ No newline at end of file
diff --git a/api/searchbuffer/index.php b/api/searchbuffer/index.php
index 5e964b7..af96e4b 100644
--- a/api/searchbuffer/index.php
+++ b/api/searchbuffer/index.php
@@ -13,7 +13,7 @@ $backend = Backend::createFromConfig($config);
 
 try {
     $backend->authenticateFromHeader($_SERVER['HTTP_AUTHORIZATION'] ?: "");
-    $renderer->renderJson($backend->findInBuffer($_GET['q'] ?: "", $_GET['buffer'] ?: 0, $_GET['offset'] ?: 0));
+    $renderer->renderJson($backend->findInBuffer($_GET['q'] ?: "", $_GET['buffer'] ?: 0, $_GET['offset'] ?: 0, $_GET['limit'] ?: 0));
 } catch (\Exception $e) {
-    $renderer->renderError($e);
+    $renderer->renderJson(["error" => $e->getMessage()]);
 }
\ No newline at end of file
diff --git a/api/searchbuffers/index.php b/api/searchbuffers/index.php
new file mode 100644
index 0000000..ed64ceb
--- /dev/null
+++ b/api/searchbuffers/index.php
@@ -0,0 +1,19 @@
+<?php
+
+namespace QuasselRestSearch;
+
+require_once '../../qrs_config.php';
+require_once '../../backend/Database.php';
+require_once '../../backend/helper/RendererHelper.php';
+require_once '../../backend/helper/SessionHelper.php';
+
+$config = Config::createFromGlobals();
+$renderer = new RendererHelper($config);
+$backend = Backend::createFromConfig($config);
+
+try {
+    $backend->authenticateFromHeader($_SERVER['HTTP_AUTHORIZATION'] ?: "");
+    $renderer->renderJson($backend->findInBufferMultiple($_GET['q'] ?: "", $_GET['limit'] ?: 4));
+} catch (\Exception $e) {
+    $renderer->renderJson(["error" => $e->getMessage()]);
+}
\ No newline at end of file
diff --git a/backend/helper/RendererHelper.php b/backend/helper/RendererHelper.php
index be512d8..54ff2d3 100644
--- a/backend/helper/RendererHelper.php
+++ b/backend/helper/RendererHelper.php
@@ -21,7 +21,6 @@ class RendererHelper {
     public function renderJsonError($json) {
         header($_SERVER['SERVER_PROTOCOL'] . ' 403 Forbidden');
         header('Status: 403 Forbidden');
-        echo 'Error 403: Forbidden' . "\n";
         header('Content-Type: application/json');
         echo json_encode($json) . "\n";
     }
diff --git a/res/search.js b/res/search.js
index ff844d4..f9d99fd 100644
--- a/res/search.js
+++ b/res/search.js
@@ -144,7 +144,7 @@ var render_buffer_overview = function (buffer) {
             "<h2>" + buffer.network + " – " + buffer.name + "</h2>" +
             "<article>" + (
                 buffer.contexts.slice(0, 4).map(render_context).join("") +
-                "<inline-button class='load_more'>Load More Results</inline-button>"
+                "<inline-button class='load_more'>Show More Results</inline-button>"
             ) + "</article>"
         ) + "</buffer>"
     )
-- 
GitLab