From f4c47ee5b72f6074827cc86b28d0ab4031be7237 Mon Sep 17 00:00:00 2001 From: Florian Pritz Date: Sun, 20 Sep 2015 11:06:44 +0200 Subject: API 2.1: Add thumbnail link to history Also adjust test cases to check for the new value. API v1 does not change. Signed-off-by: Florian Pritz --- application/controllers/api/v1/file.php | 3 +++ application/service/files.php | 3 +++ application/test/tests/test_api_v1.php | 12 ++++++++++-- application/test/tests/test_api_v2.php | 12 ++++++++++-- 4 files changed, 26 insertions(+), 4 deletions(-) diff --git a/application/controllers/api/v1/file.php b/application/controllers/api/v1/file.php index 4ffc8ed48..dae053db2 100644 --- a/application/controllers/api/v1/file.php +++ b/application/controllers/api/v1/file.php @@ -59,6 +59,9 @@ class file extends \controllers\api\api_controller { { $this->muser->require_access("apikey"); $history = \service\files::history($this->muser->get_userid()); + foreach ($history['items'] as $key => $item) { + unset($history['items'][$key]['thumbnail']); + } return $history; } diff --git a/application/service/files.php b/application/service/files.php index 7cef73d97..adc62c7dc 100644 --- a/application/service/files.php +++ b/application/service/files.php @@ -24,6 +24,9 @@ class files { ->where('user', $user) ->get()->result_array(); foreach ($query as $key => $item) { + if (\libraries\Image::type_supported($item["mimetype"])) { + $item['thumbnail'] = site_url("file/thumbnail/".$item['id']); + } $items[$item["id"]] = $item; } diff --git a/application/test/tests/test_api_v1.php b/application/test/tests/test_api_v1.php index f0a2096d6..28b1576d0 100644 --- a/application/test/tests/test_api_v1.php +++ b/application/test/tests/test_api_v1.php @@ -323,7 +323,9 @@ class test_api_v1 extends \test\Test { public function test_history_notEmptyAfterUpload() { $apikey = $this->createUserAndApikey(); - $this->uploadFile($apikey, "data/tests/small-file"); + $uploadid = $this->uploadFile($apikey, "data/tests/small-file")['data']['ids'][0]; + $uploadid_image = $this->uploadFile($apikey, "data/tests/black_white.png")['data']['ids'][0]; + $expected_size = filesize("data/tests/small-file") + filesize("data/tests/black_white.png"); $ret = $this->CallEndpoint("POST", "file/history", array( "apikey" => $apikey, @@ -331,8 +333,14 @@ class test_api_v1 extends \test\Test { $this->expectSuccess("history not empty after upload", $ret); $this->t->ok(!empty($ret["data"]["items"]), "history not empty after upload (items)"); + $this->t->is_deeply(array( + 'id', 'filename', 'mimetype', 'date', 'hash', 'filesize' + ), array_keys($ret['data']["items"][$uploadid]), "item info only lists correct keys"); + $this->t->is_deeply(array( + 'id', 'filename', 'mimetype', 'date', 'hash', 'filesize' + ), array_keys($ret['data']["items"][$uploadid_image]), "item info for image does not list thumbnail in v1"); $this->t->ok(empty($ret["data"]["multipaste_items"]), "didn't upload multipaste"); - $this->t->is($ret["data"]["total_size"], filesize("data/tests/small-file"), "total_size == uploaded file"); + $this->t->is($ret["data"]["total_size"], $expected_size, "total_size == uploaded files"); } public function test_history_notSharedBetweenUsers() diff --git a/application/test/tests/test_api_v2.php b/application/test/tests/test_api_v2.php index 1886cdf7c..96deb382c 100644 --- a/application/test/tests/test_api_v2.php +++ b/application/test/tests/test_api_v2.php @@ -323,7 +323,9 @@ class test_api_v2 extends \test\Test { public function test_history_notEmptyAfterUpload() { $apikey = $this->createUserAndApikey(); - $this->uploadFile($apikey, "data/tests/small-file"); + $uploadid = $this->uploadFile($apikey, "data/tests/small-file")['data']['ids'][0]; + $uploadid_image = $this->uploadFile($apikey, "data/tests/black_white.png")['data']['ids'][0]; + $expected_size = filesize("data/tests/small-file") + filesize("data/tests/black_white.png"); $ret = $this->CallEndpoint("POST", "file/history", array( "apikey" => $apikey, @@ -331,8 +333,14 @@ class test_api_v2 extends \test\Test { $this->expectSuccess("history not empty after upload", $ret); $this->t->ok(!empty($ret["data"]["items"]), "history not empty after upload (items)"); + $this->t->is_deeply(array( + 'id', 'filename', 'mimetype', 'date', 'hash', 'filesize' + ), array_keys($ret['data']["items"][$uploadid]), "item info only lists correct keys"); + $this->t->is_deeply(array( + 'id', 'filename', 'mimetype', 'date', 'hash', 'filesize', 'thumbnail' + ), array_keys($ret['data']["items"][$uploadid_image]), "item info for image lists thumbnail too"); $this->t->ok(empty($ret["data"]["multipaste_items"]), "didn't upload multipaste"); - $this->t->is($ret["data"]["total_size"], filesize("data/tests/small-file"), "total_size == uploaded file"); + $this->t->is($ret["data"]["total_size"], $expected_size, "total_size == uploaded files"); } public function test_history_notSharedBetweenUsers() -- cgit v1.2.3-24-g4f1b