1
0
mirror of https://github.com/garraflavatra/rolens.git synced 2025-01-18 13:07:58 +00:00

Drop indexes

This commit is contained in:
Romein van Buren 2023-01-17 20:49:07 +01:00
parent f51abb45cd
commit 6469cdb630
Signed by: romein
GPG Key ID: 0EFF8478ADDF6C49
4 changed files with 45 additions and 4 deletions

View File

@ -1,7 +1,7 @@
<script>
import CodeViewer from '../../../components/codeviewer.svelte';
import ObjectGrid from '../../../components/objectgrid.svelte';
import { GetIndexes } from '../../../../wailsjs/go/app/App';
import { DropIndex, GetIndexes } from '../../../../wailsjs/go/app/App';
export let collection;
@ -16,8 +16,18 @@
}
}
function openJson(itemId) {
const item = indexes?.filter(i => i.name == itemId);
async function dropActive() {
if (!activeKey) {
return;
}
const success = await DropIndex(collection.hostKey, collection.dbKey, collection.key, activeKey);
if (success) {
await getIndexes();
}
}
function openJson(indexId) {
const item = indexes?.filter(i => i.name == indexId);
json = JSON.stringify(item, undefined, 2);
}
</script>
@ -25,7 +35,9 @@
<div class="indexes">
<div class="actions">
<button class="btn" on:click={getIndexes}>Get indexes</button>
<button class="btn danger" disabled={!indexes?.length || !activeKey}>Drop selected</button>
<button class="btn danger" on:click={dropActive} disabled={!indexes?.length || !activeKey}>
Drop selected
</button>
<button class="btn">Create&hellip;</button>
</div>

View File

@ -8,6 +8,8 @@ export function DropCollection(arg1:string,arg2:string,arg3:string):Promise<bool
export function DropDatabase(arg1:string,arg2:string):Promise<boolean>;
export function DropIndex(arg1:string,arg2:string,arg3:string,arg4:string):Promise<boolean>;
export function FindItems(arg1:string,arg2:string,arg3:string,arg4:string):Promise<app.findResult>;
export function GetIndexes(arg1:string,arg2:string,arg3:string):Promise<Array<primitive.M>>;

View File

@ -10,6 +10,10 @@ export function DropDatabase(arg1, arg2) {
return window['go']['app']['App']['DropDatabase'](arg1, arg2);
}
export function DropIndex(arg1, arg2, arg3, arg4) {
return window['go']['app']['App']['DropIndex'](arg1, arg2, arg3, arg4);
}
export function FindItems(arg1, arg2, arg3, arg4) {
return window['go']['app']['App']['FindItems'](arg1, arg2, arg3, arg4);
}

View File

@ -5,6 +5,7 @@ import (
"github.com/wailsapp/wails/v2/pkg/runtime"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/mongo/options"
)
func (a *App) GetIndexes(hostKey, dbKey, collKey string) []bson.M {
@ -40,3 +41,25 @@ func (a *App) GetIndexes(hostKey, dbKey, collKey string) []bson.M {
return results
}
func (a *App) DropIndex(hostKey, dbKey, collKey, indexName string) bool {
client, ctx, close, err := a.connectToHost(hostKey)
if err != nil {
fmt.Println(err.Error())
return false
}
defer close()
_, err = client.Database(dbKey).Collection(collKey).Indexes().DropOne(ctx, indexName, &options.DropIndexesOptions{})
if err != nil {
fmt.Println(err.Error())
runtime.MessageDialog(a.ctx, runtime.MessageDialogOptions{
Type: runtime.ErrorDialog,
Title: "Encountered an error while creating index cursor",
Message: err.Error(),
})
return false
}
return true
}