search api update

This commit is contained in:
Čarodej
2022-05-03 16:11:00 +02:00
parent 8b3f76d1d0
commit 89e4ae6737
6 changed files with 22 additions and 20 deletions

View File

@@ -1,6 +1,6 @@
{ {
"/js/main.js": "/js/main.js", "/js/main.js": "/js/main.js",
"/chunks/request.js": "/chunks/request.js?id=c9b8c3f50861144a", "/chunks/request.js": "/chunks/request.js?id=e2e83e87b1f6d097",
"/chunks/request-upload.js": "/chunks/request-upload.js?id=3bc3423d2305cd30", "/chunks/request-upload.js": "/chunks/request-upload.js?id=3bc3423d2305cd30",
"/chunks/setup-wizard.js": "/chunks/setup-wizard.js?id=19a0784e59d768ec", "/chunks/setup-wizard.js": "/chunks/setup-wizard.js?id=19a0784e59d768ec",
"/chunks/status-check.js": "/chunks/status-check.js?id=9239a586761b912d", "/chunks/status-check.js": "/chunks/status-check.js?id=9239a586761b912d",
@@ -9,13 +9,13 @@
"/chunks/environment.js": "/chunks/environment.js?id=e4fdb87ff173d48a", "/chunks/environment.js": "/chunks/environment.js?id=e4fdb87ff173d48a",
"/chunks/app-setup.js": "/chunks/app-setup.js?id=cbe7bfed06400736", "/chunks/app-setup.js": "/chunks/app-setup.js?id=cbe7bfed06400736",
"/chunks/admin-account.js": "/chunks/admin-account.js?id=78d257775f5fc485", "/chunks/admin-account.js": "/chunks/admin-account.js?id=78d257775f5fc485",
"/chunks/shared.js": "/chunks/shared.js?id=4fcd1523d9ae7ba1", "/chunks/shared.js": "/chunks/shared.js?id=0c2f68a87ccf9be3",
"/chunks/shared/browser.js": "/chunks/shared/browser.js?id=3fd9baddb7333c24", "/chunks/shared/browser.js": "/chunks/shared/browser.js?id=3fd9baddb7333c24",
"/chunks/shared/single-file.js": "/chunks/shared/single-file.js?id=a6063bed9be75a09", "/chunks/shared/single-file.js": "/chunks/shared/single-file.js?id=a6063bed9be75a09",
"/chunks/shared/authenticate.js": "/chunks/shared/authenticate.js?id=b5519d193bce2339", "/chunks/shared/authenticate.js": "/chunks/shared/authenticate.js?id=b5519d193bce2339",
"/chunks/not-found.js": "/chunks/not-found.js?id=d31bd699138cf828", "/chunks/not-found.js": "/chunks/not-found.js?id=d31bd699138cf828",
"/chunks/temporary-unavailable.js": "/chunks/temporary-unavailable.js?id=26798085f527d955", "/chunks/temporary-unavailable.js": "/chunks/temporary-unavailable.js?id=26798085f527d955",
"/chunks/admin.js": "/chunks/admin.js?id=0124d577053f54d3", "/chunks/admin.js": "/chunks/admin.js?id=ac53badd82034a88",
"/chunks/dashboard.js": "/chunks/dashboard.js?id=5ab55a12214433c8", "/chunks/dashboard.js": "/chunks/dashboard.js?id=5ab55a12214433c8",
"/chunks/invoices.js": "/chunks/invoices.js?id=799928609f57ca10", "/chunks/invoices.js": "/chunks/invoices.js?id=799928609f57ca10",
"/chunks/subscriptions.js": "/chunks/subscriptions.js?id=a0c4f59d0ec4aee0", "/chunks/subscriptions.js": "/chunks/subscriptions.js?id=a0c4f59d0ec4aee0",
@@ -57,12 +57,12 @@
"/chunks/sign-up.js": "/chunks/sign-up.js?id=3d7559511768cd0e", "/chunks/sign-up.js": "/chunks/sign-up.js?id=3d7559511768cd0e",
"/chunks/forgotten-password.js": "/chunks/forgotten-password.js?id=27cda9364b6593d8", "/chunks/forgotten-password.js": "/chunks/forgotten-password.js?id=27cda9364b6593d8",
"/chunks/create-new-password.js": "/chunks/create-new-password.js?id=2f0401ee2fc148c4", "/chunks/create-new-password.js": "/chunks/create-new-password.js?id=2f0401ee2fc148c4",
"/chunks/settings.js": "/chunks/settings.js?id=008d159c8084c66f", "/chunks/settings.js": "/chunks/settings.js?id=2f1ec837e7673e6d",
"/chunks/profile.js": "/chunks/profile.js?id=3e24bb5e1f52d4bb", "/chunks/profile.js": "/chunks/profile.js?id=3e24bb5e1f52d4bb",
"/chunks/settings-password.js": "/chunks/settings-password.js?id=d00bf503d8126dc4", "/chunks/settings-password.js": "/chunks/settings-password.js?id=d00bf503d8126dc4",
"/chunks/settings-storage.js": "/chunks/settings-storage.js?id=092e324aad54656b", "/chunks/settings-storage.js": "/chunks/settings-storage.js?id=092e324aad54656b",
"/chunks/billing.js": "/chunks/billing.js?id=115c25478cee576d", "/chunks/billing.js": "/chunks/billing.js?id=115c25478cee576d",
"/chunks/platform.js": "/chunks/platform.js?id=e0dcb4aa27710e07", "/chunks/platform.js": "/chunks/platform.js?id=d4e8d92aed88b8ee",
"/chunks/files.js": "/chunks/files.js?id=a74bc8acc7ea876a", "/chunks/files.js": "/chunks/files.js?id=a74bc8acc7ea876a",
"/chunks/recent-uploads.js": "/chunks/recent-uploads.js?id=c6ed26eaace65f01", "/chunks/recent-uploads.js": "/chunks/recent-uploads.js?id=c6ed26eaace65f01",
"/chunks/my-shared-items.js": "/chunks/my-shared-items.js?id=6adbb309c700eaf7", "/chunks/my-shared-items.js": "/chunks/my-shared-items.js?id=6adbb309c700eaf7",

View File

@@ -890,8 +890,8 @@ export default {
// Get route // Get route
let route = this.$store.getters.sharedDetail let route = this.$store.getters.sharedDetail
? `/api/browse/search/${this.$router.currentRoute.params.token}` ? `/api/search/${this.$router.currentRoute.params.token}`
: '/api/browse/search' : '/api/search'
axios axios
.get(`${route}?filter=${this.activeFilter}`, { .get(`${route}?filter=${this.activeFilter}`, {

View File

@@ -57,7 +57,6 @@ Route::group(['middleware' => ['auth:sanctum']], function () {
Route::group(['prefix' => 'browse'], function () { Route::group(['prefix' => 'browse'], function () {
Route::get('/folders/{id}', BrowseFolderController::class); Route::get('/folders/{id}', BrowseFolderController::class);
Route::get('/navigation', NavigationTreeController::class); Route::get('/navigation', NavigationTreeController::class);
Route::get('/search', SpotlightSearchController::class);
Route::get('/latest', BrowseLatestFilesController::class); Route::get('/latest', BrowseLatestFilesController::class);
Route::get('/trash/{id}', BrowseTrashContentController::class); Route::get('/trash/{id}', BrowseTrashContentController::class);
Route::get('/share', BrowseSharedItemsController::class); Route::get('/share', BrowseSharedItemsController::class);
@@ -77,6 +76,9 @@ Route::group(['middleware' => ['auth:sanctum']], function () {
// Favourites // Favourites
Route::apiResource('/folders/favourites', FavouriteController::class); Route::apiResource('/folders/favourites', FavouriteController::class);
// Search
Route::get('/search', SpotlightSearchController::class);
}); });
// User master,editor routes // User master,editor routes

View File

@@ -17,7 +17,7 @@ class SpotlightSearchController
{ {
public function __invoke( public function __invoke(
SearchRequest $request SearchRequest $request
): UsersMinimalCollection|array { ) {
// Prepare queries // Prepare queries
$query = remove_accents( $query = remove_accents(
$request->input('query') $request->input('query')
@@ -32,7 +32,7 @@ class SpotlightSearchController
return $this->searchFiles($query); return $this->searchFiles($query);
} }
private function searchUsers($query): UsersMinimalCollection private function searchUsers($query)
{ {
// Prevent to show non admin user searching // Prevent to show non admin user searching
if (Auth::user()->role !== 'admin') { if (Auth::user()->role !== 'admin') {
@@ -49,7 +49,7 @@ class SpotlightSearchController
); );
} }
private function searchFiles(string $query): array private function searchFiles(string $query)
{ {
$user_id = Auth::id(); $user_id = Auth::id();

View File

@@ -348,7 +348,7 @@ class VisitorBrowseTest extends TestCase
])]; ])];
$this->withUnencryptedCookies($cookie) $this->withUnencryptedCookies($cookie)
->get("/api/browse/search/$share->token?query=doc") ->get("/api/search/$share->token?query=doc")
->assertStatus(200) ->assertStatus(200)
->assertJsonFragment([ ->assertJsonFragment([
'id' => $file->id, 'id' => $file->id,
@@ -357,7 +357,7 @@ class VisitorBrowseTest extends TestCase
// Check public shared item // Check public shared item
if (! $is_protected) { if (! $is_protected) {
$this->getJson("/api/browse/search/$share->token?query=doc") $this->getJson("/api/search/$share->token?query=doc")
->assertStatus(200) ->assertStatus(200)
->assertJsonFragment([ ->assertJsonFragment([
'id' => $file->id, 'id' => $file->id,
@@ -401,14 +401,14 @@ class VisitorBrowseTest extends TestCase
])]; ])];
$this->withUnencryptedCookies($cookie) $this->withUnencryptedCookies($cookie)
->get("/api/browse/search/$share->token?query=doc") ->get("/api/search/$share->token?query=doc")
->assertStatus(200) ->assertStatus(200)
->assertJsonFragment([]); ->assertJsonFragment([]);
} }
// Check public shared item // Check public shared item
if (! $is_protected) { if (! $is_protected) {
$this->getJson("/api/browse/search/$share->token?query=doc") $this->getJson("/api/search/$share->token?query=doc")
->assertStatus(200) ->assertStatus(200)
->assertJsonFragment([]); ->assertJsonFragment([]);
} }

View File

@@ -40,7 +40,7 @@ class SearchTest extends TestCase
->each( ->each(
fn ($file) => $this fn ($file) => $this
->actingAs($user) ->actingAs($user)
->getJson('/api/browse/search?query=' . mb_strtolower(mb_substr($file->name, 0, 3))) ->getJson('/api/search?query=' . mb_strtolower(mb_substr($file->name, 0, 3)))
->assertStatus(200) ->assertStatus(200)
->assertJsonFragment([ ->assertJsonFragment([
'id' => $file->id, 'id' => $file->id,
@@ -66,7 +66,7 @@ class SearchTest extends TestCase
$this $this
->actingAs($user) ->actingAs($user)
->getJson('/api/browse/search?query=doc') ->getJson('/api/search?query=doc')
->assertStatus(200) ->assertStatus(200)
->assertJsonFragment([ ->assertJsonFragment([
'id' => $folder->id, 'id' => $folder->id,
@@ -115,7 +115,7 @@ class SearchTest extends TestCase
$this $this
->actingAs($member) ->actingAs($member)
->getJson('/api/browse/search?query=ali') ->getJson('/api/search?query=ali')
->assertStatus(200) ->assertStatus(200)
->assertJsonFragment([ ->assertJsonFragment([
'id' => $folder->id, 'id' => $folder->id,
@@ -123,7 +123,7 @@ class SearchTest extends TestCase
$this $this
->actingAs($member) ->actingAs($member)
->getJson('/api/browse/search?query=Fol') ->getJson('/api/search?query=Fol')
->assertStatus(200) ->assertStatus(200)
->assertJsonFragment([ ->assertJsonFragment([
'id' => $folder->id, 'id' => $folder->id,
@@ -131,7 +131,7 @@ class SearchTest extends TestCase
$this $this
->actingAs($member) ->actingAs($member)
->getJson('/api/browse/search?query=doc') ->getJson('/api/search?query=doc')
->assertStatus(200) ->assertStatus(200)
->assertJsonFragment([ ->assertJsonFragment([
'id' => $document->id, 'id' => $document->id,