33 lines
628 B
Go
33 lines
628 B
Go
package s3browser
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"path/filepath"
|
|
|
|
"github.com/graph-gophers/dataloader"
|
|
)
|
|
|
|
func invalidateCache(ctx context.Context, id string) error {
|
|
loader, ok := ctx.Value("loader").(map[string]*dataloader.Loader)
|
|
if !ok {
|
|
return fmt.Errorf("Failed to get loader from context")
|
|
}
|
|
|
|
loader["getFile"].Clear(ctx, dataloader.StringKey(id))
|
|
loader["listObjects"].Clear(ctx, dataloader.StringKey(id))
|
|
loader["getFiles"].Clear(ctx, dataloader.StringKey(getPathFromId(id)))
|
|
|
|
return nil
|
|
}
|
|
|
|
func getPathFromId(id string) string {
|
|
dir := filepath.Dir(id)
|
|
|
|
if dir == "." {
|
|
return "/"
|
|
}
|
|
|
|
return dir + "/"
|
|
}
|