fix(rdb): add id column for file info, sharing info tables

This commit is contained in:
hexxa 2022-10-08 11:28:04 +08:00 committed by Hexxa
parent 033c2bc316
commit 2b50c84273
8 changed files with 100 additions and 46 deletions

View file

@ -113,11 +113,12 @@ var (
) )
type FileInfo struct { type FileInfo struct {
IsDir bool `json:"isDir" yaml:"isDir"` // deprecated Id uint64 `json:"id" yaml:"id"`
Shared bool `json:"shared" yaml:"shared"` // deprecated IsDir bool `json:"isDir" yaml:"isDir"`
ShareID string `json:"shareID" yaml:"shareID"` // deprecated Shared bool `json:"shared" yaml:"shared"`
ShareID string `json:"shareID" yaml:"shareID"`
Sha1 string `json:"sha1" yaml:"sha1"` Sha1 string `json:"sha1" yaml:"sha1"`
Size int64 `json:"size" yaml:"size"` // deprecated Size int64 `json:"size" yaml:"size"`
} }
type UserCfg struct { type UserCfg struct {

View file

@ -70,7 +70,7 @@ type IFilesFunctions interface {
} }
type IFileDB interface { type IFileDB interface {
AddFileInfo(ctx context.Context, userId uint64, itemPath string, info *FileInfo) error AddFileInfo(ctx context.Context, infoId, userId uint64, itemPath string, info *FileInfo) error
DelFileInfo(ctx context.Context, userId uint64, itemPath string) error DelFileInfo(ctx context.Context, userId uint64, itemPath string) error
GetFileInfo(ctx context.Context, itemPath string) (*FileInfo, error) GetFileInfo(ctx context.Context, itemPath string) (*FileInfo, error)
SetSha1(ctx context.Context, itemPath, sign string) error SetSha1(ctx context.Context, itemPath, sign string) error
@ -78,9 +78,9 @@ type IFileDB interface {
ListFileInfos(ctx context.Context, itemPaths []string) (map[string]*FileInfo, error) ListFileInfos(ctx context.Context, itemPaths []string) (map[string]*FileInfo, error)
} }
type IUploadDB interface { type IUploadDB interface {
AddUploadInfos(ctx context.Context, userId uint64, tmpPath, filePath string, info *FileInfo) error AddUploadInfos(ctx context.Context, uploadId, userId uint64, tmpPath, filePath string, info *FileInfo) error
DelUploadingInfos(ctx context.Context, userId uint64, realPath string) error DelUploadingInfos(ctx context.Context, userId uint64, realPath string) error
MoveUploadingInfos(ctx context.Context, userId uint64, uploadPath, itemPath string) error MoveUploadingInfos(ctx context.Context, uploadId, userId uint64, uploadPath, itemPath string) error
SetUploadInfo(ctx context.Context, user uint64, filePath string, newUploaded int64) error SetUploadInfo(ctx context.Context, user uint64, filePath string, newUploaded int64) error
GetUploadInfo(ctx context.Context, userId uint64, filePath string) (string, int64, int64, error) GetUploadInfo(ctx context.Context, userId uint64, filePath string) (string, int64, int64, error)
ListUploadInfos(ctx context.Context, user uint64) ([]*UploadInfo, error) ListUploadInfos(ctx context.Context, user uint64) ([]*UploadInfo, error)
@ -89,7 +89,7 @@ type IUploadDB interface {
type ISharingDB interface { type ISharingDB interface {
IsSharing(ctx context.Context, dirPath string) (bool, error) IsSharing(ctx context.Context, dirPath string) (bool, error)
GetSharingDir(ctx context.Context, hashID string) (string, error) GetSharingDir(ctx context.Context, hashID string) (string, error)
AddSharing(ctx context.Context, userId uint64, dirPath string) error AddSharing(ctx context.Context, infoId, userId uint64, dirPath string) error
DelSharing(ctx context.Context, userId uint64, dirPath string) error DelSharing(ctx context.Context, userId uint64, dirPath string) error
ListSharingsByLocation(ctx context.Context, location string) (map[string]string, error) ListSharingsByLocation(ctx context.Context, location string) (map[string]string, error)
} }

Binary file not shown.

View file

@ -15,16 +15,18 @@ import (
func (st *SQLiteStore) getFileInfo(ctx context.Context, itemPath string) (*db.FileInfo, error) { func (st *SQLiteStore) getFileInfo(ctx context.Context, itemPath string) (*db.FileInfo, error) {
var infoStr string var infoStr string
fInfo := &db.FileInfo{} fInfo := &db.FileInfo{}
var id uint64
var isDir bool var isDir bool
var size int64 var size int64
var shareId string var shareId string
err := st.db.QueryRowContext( err := st.db.QueryRowContext(
ctx, ctx,
`select is_dir, size, share_id, info `select id, is_dir, size, share_id, info
from t_file_info from t_file_info
where path=?`, where path=?`,
itemPath, itemPath,
).Scan( ).Scan(
&id,
&isDir, &isDir,
&size, &size,
&shareId, &shareId,
@ -41,6 +43,7 @@ func (st *SQLiteStore) getFileInfo(ctx context.Context, itemPath string) (*db.Fi
if err != nil { if err != nil {
return nil, err return nil, err
} }
fInfo.Id = id
fInfo.IsDir = isDir fInfo.IsDir = isDir
fInfo.Size = size fInfo.Size = size
fInfo.ShareID = shareId fInfo.ShareID = shareId
@ -69,7 +72,7 @@ func (st *SQLiteStore) ListFileInfos(ctx context.Context, itemPaths []string) (m
rows, err := st.db.QueryContext( rows, err := st.db.QueryContext(
ctx, ctx,
fmt.Sprintf( fmt.Sprintf(
`select path, is_dir, size, share_id, info `select id, path, is_dir, size, share_id, info
from t_file_info from t_file_info
where path in (%s) where path in (%s)
`, `,
@ -85,11 +88,12 @@ func (st *SQLiteStore) ListFileInfos(ctx context.Context, itemPaths []string) (m
var fInfoStr, itemPath, shareId string var fInfoStr, itemPath, shareId string
var isDir bool var isDir bool
var size int64 var size int64
var id uint64
fInfos := map[string]*db.FileInfo{} fInfos := map[string]*db.FileInfo{}
for rows.Next() { for rows.Next() {
fInfo := &db.FileInfo{} fInfo := &db.FileInfo{}
err = rows.Scan(&itemPath, &isDir, &size, &shareId, &fInfoStr) err = rows.Scan(&id, &itemPath, &isDir, &size, &shareId, &fInfoStr)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -98,6 +102,7 @@ func (st *SQLiteStore) ListFileInfos(ctx context.Context, itemPaths []string) (m
if err != nil { if err != nil {
return nil, err return nil, err
} }
fInfo.Id = id
fInfo.IsDir = isDir fInfo.IsDir = isDir
fInfo.Size = size fInfo.Size = size
fInfo.ShareID = shareId fInfo.ShareID = shareId
@ -111,7 +116,7 @@ func (st *SQLiteStore) ListFileInfos(ctx context.Context, itemPaths []string) (m
return fInfos, nil return fInfos, nil
} }
func (st *SQLiteStore) addFileInfo(ctx context.Context, userId uint64, itemPath string, info *db.FileInfo) error { func (st *SQLiteStore) addFileInfo(ctx context.Context, infoId, userId uint64, itemPath string, info *db.FileInfo) error {
infoStr, err := json.Marshal(info) infoStr, err := json.Marshal(info)
if err != nil { if err != nil {
return err return err
@ -126,24 +131,24 @@ func (st *SQLiteStore) addFileInfo(ctx context.Context, userId uint64, itemPath
_, err = st.db.ExecContext( _, err = st.db.ExecContext(
ctx, ctx,
`insert into t_file_info ( `insert into t_file_info (
path, user, location, parent, name, id, path, user, location, parent, name,
is_dir, size, share_id, info is_dir, size, share_id, info
) )
values ( values (
?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
?, ?, ?, ? ?, ?, ?, ?
)`, )`,
itemPath, userId, location, dirPath, itemName, infoId, itemPath, userId, location, dirPath, itemName,
info.IsDir, info.Size, info.ShareID, infoStr, info.IsDir, info.Size, info.ShareID, infoStr,
) )
return err return err
} }
func (st *SQLiteStore) AddFileInfo(ctx context.Context, userId uint64, itemPath string, info *db.FileInfo) error { func (st *SQLiteStore) AddFileInfo(ctx context.Context, infoId, userId uint64, itemPath string, info *db.FileInfo) error {
st.Lock() st.Lock()
defer st.Unlock() defer st.Unlock()
err := st.addFileInfo(ctx, userId, itemPath, info) err := st.addFileInfo(ctx, infoId, userId, itemPath, info)
if err != nil { if err != nil {
return err return err
} }
@ -260,7 +265,7 @@ func (st *SQLiteStore) MoveFileInfo(ctx context.Context, userId uint64, oldPath,
if err != nil { if err != nil {
return err return err
} }
return st.addFileInfo(ctx, userId, newPath, info) return st.addFileInfo(ctx, info.Id, userId, newPath, info)
} }
func getLocation(itemPath string) (string, error) { func getLocation(itemPath string) (string, error) {

View file

@ -78,7 +78,7 @@ func (st *SQLiteStore) GetSharingDir(ctx context.Context, hashID string) (string
return sharedPath, nil return sharedPath, nil
} }
func (st *SQLiteStore) AddSharing(ctx context.Context, userId uint64, dirPath string) error { func (st *SQLiteStore) AddSharing(ctx context.Context, infoId, userId uint64, dirPath string) error {
st.Lock() st.Lock()
defer st.Unlock() defer st.Unlock()
@ -109,14 +109,17 @@ func (st *SQLiteStore) AddSharing(ctx context.Context, userId uint64, dirPath st
_, err = st.db.ExecContext( _, err = st.db.ExecContext(
ctx, ctx,
`insert into t_file_info ( `insert into t_file_info (
path, user, location, parent, name, id, path, user,
location, parent, name,
is_dir, size, share_id, info is_dir, size, share_id, info
) )
values ( values (
?, ?, ?, ?, ?, ?, ?, ?,
?, ?, ?,
?, ?, ?, ? ?, ?, ?, ?
)`, )`,
dirPath, userId, location, parentPath, name, infoId, dirPath, userId,
location, parentPath, name,
true, 0, shareID, infoStr, true, 0, shareID, infoStr,
) )
return err return err

View file

@ -8,21 +8,21 @@ import (
"github.com/ihexxa/quickshare/src/db" "github.com/ihexxa/quickshare/src/db"
) )
func (st *SQLiteStore) addUploadInfoOnly(ctx context.Context, userId uint64, tmpPath, filePath string, fileSize int64) error { func (st *SQLiteStore) addUploadInfoOnly(ctx context.Context, uploadId, userId uint64, tmpPath, filePath string, fileSize int64) error {
_, err := st.db.ExecContext( _, err := st.db.ExecContext(
ctx, ctx,
`insert into t_file_uploading ( `insert into t_file_uploading (
real_path, tmp_path, user, size, uploaded id, real_path, tmp_path, user, size, uploaded
) )
values ( values (
?, ?, ?, ?, ? ?, ?, ?, ?, ?, ?
)`, )`,
filePath, tmpPath, userId, fileSize, 0, uploadId, filePath, tmpPath, userId, fileSize, 0,
) )
return err return err
} }
func (st *SQLiteStore) AddUploadInfos(ctx context.Context, userId uint64, tmpPath, filePath string, info *db.FileInfo) error { func (st *SQLiteStore) AddUploadInfos(ctx context.Context, uploadId, userId uint64, tmpPath, filePath string, info *db.FileInfo) error {
st.Lock() st.Lock()
defer st.Unlock() defer st.Unlock()
@ -46,7 +46,7 @@ func (st *SQLiteStore) AddUploadInfos(ctx context.Context, userId uint64, tmpPat
return err return err
} }
return st.addUploadInfoOnly(ctx, userId, tmpPath, filePath, info.Size) return st.addUploadInfoOnly(ctx, uploadId, userId, tmpPath, filePath, info.Size)
} }
func (st *SQLiteStore) DelUploadingInfos(ctx context.Context, userId uint64, realPath string) error { func (st *SQLiteStore) DelUploadingInfos(ctx context.Context, userId uint64, realPath string) error {
@ -86,7 +86,7 @@ func (st *SQLiteStore) delUploadInfoOnly(ctx context.Context, userId uint64, fil
return err return err
} }
func (st *SQLiteStore) MoveUploadingInfos(ctx context.Context, userId uint64, uploadPath, itemPath string) error { func (st *SQLiteStore) MoveUploadingInfos(ctx context.Context, infoId, userId uint64, uploadPath, itemPath string) error {
st.Lock() st.Lock()
defer st.Unlock() defer st.Unlock()
@ -98,7 +98,7 @@ func (st *SQLiteStore) MoveUploadingInfos(ctx context.Context, userId uint64, up
if err != nil { if err != nil {
return err return err
} }
return st.addFileInfo(ctx, userId, itemPath, &db.FileInfo{ return st.addFileInfo(ctx, infoId, userId, itemPath, &db.FileInfo{
Size: size, Size: size,
}) })
} }

View file

@ -20,7 +20,7 @@ type SQLite struct {
} }
func NewSQLite(dbPath string) (*SQLite, error) { func NewSQLite(dbPath string) (*SQLite, error) {
db, err := sql.Open("sqlite3", fmt.Sprintf("%s?_synchronous=FULL", dbPath)) db, err := sql.Open("sqlite3", fmt.Sprintf("%s?_sync=FULL&_locking=EXCLUSIVE", dbPath))
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -148,6 +148,7 @@ func (st *SQLiteStore) InitFileTables(ctx context.Context) error {
_, err := st.db.ExecContext( _, err := st.db.ExecContext(
ctx, ctx,
`create table if not exists t_file_info ( `create table if not exists t_file_info (
id bigint not null,
path varchar not null, path varchar not null,
user bigint not null, user bigint not null,
location varchar not null, location varchar not null,
@ -157,13 +158,21 @@ func (st *SQLiteStore) InitFileTables(ctx context.Context) error {
size bigint not null, size bigint not null,
share_id varchar not null, share_id varchar not null,
info varchar not null, info varchar not null,
primary key(path) primary key(id)
)`, )`,
) )
if err != nil { if err != nil {
return err return err
} }
_, err = st.db.ExecContext(
ctx,
`create index if not exists t_file_path on t_file_info (path, location)`,
)
if err != nil {
return err
}
_, err = st.db.ExecContext( _, err = st.db.ExecContext(
ctx, ctx,
`create index if not exists t_file_share on t_file_info (share_id, location)`, `create index if not exists t_file_share on t_file_info (share_id, location)`,
@ -175,12 +184,13 @@ func (st *SQLiteStore) InitFileTables(ctx context.Context) error {
_, err = st.db.ExecContext( _, err = st.db.ExecContext(
ctx, ctx,
`create table if not exists t_file_uploading ( `create table if not exists t_file_uploading (
id bigint not null,
real_path varchar not null, real_path varchar not null,
tmp_path varchar not null unique, tmp_path varchar not null unique,
user bigint not null, user bigint not null,
size bigint not null, size bigint not null,
uploaded bigint not null, uploaded bigint not null,
primary key(real_path) primary key(id)
)`, )`,
) )
if err != nil { if err != nil {

View file

@ -53,7 +53,8 @@ func testSharingMethods(t *testing.T, store db.IDBQuickshare) {
adminId := uint64(0) adminId := uint64(0)
// add some of paths... // add some of paths...
err = store.AddFileInfo(ctx, adminId, "admin/path1", &db.FileInfo{ infoId := uint64(0)
err = store.AddFileInfo(ctx, adminId, infoId, "admin/path1", &db.FileInfo{
// Shared: false, // deprecated // Shared: false, // deprecated
IsDir: false, IsDir: false,
Size: int64(0), Size: int64(0),
@ -65,8 +66,9 @@ func testSharingMethods(t *testing.T, store db.IDBQuickshare) {
} }
// add sharings // add sharings
for _, dirPath := range dirPaths { for i, dirPath := range dirPaths {
err = store.AddSharing(ctx, adminId, dirPath) infoId := uint64(i)
err = store.AddSharing(ctx, infoId, adminId, dirPath)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
@ -80,7 +82,7 @@ func testSharingMethods(t *testing.T, store db.IDBQuickshare) {
t.Fatalf("share size not match %d %d", len(dirToID), len(dirPaths)) t.Fatalf("share size not match %d %d", len(dirToID), len(dirPaths))
} }
for _, sharingDir := range dirPaths { for i, sharingDir := range dirPaths {
if _, ok := dirToID[sharingDir]; !ok { if _, ok := dirToID[sharingDir]; !ok {
t.Fatalf("sharing(%s) not found", sharingDir) t.Fatalf("sharing(%s) not found", sharingDir)
} }
@ -96,6 +98,8 @@ func testSharingMethods(t *testing.T, store db.IDBQuickshare) {
t.Fatal(err) t.Fatal(err)
} else if len(info.ShareID) != 7 { } else if len(info.ShareID) != 7 {
t.Fatalf("incorrect ShareID %s", info.ShareID) t.Fatalf("incorrect ShareID %s", info.ShareID)
} else if info.Id != uint64(i) {
t.Fatalf("incorrect file info ID %d", info.Id)
} }
gotSharingDir, err := store.GetSharingDir(ctx, info.ShareID) gotSharingDir, err := store.GetSharingDir(ctx, info.ShareID)
@ -178,6 +182,10 @@ func testUploadingMethods(t *testing.T, store db.IDBQuickshare) {
}, },
} }
var err error var err error
pathnames := []string{}
for pathname := range pathInfos {
pathnames = append(pathnames, pathname)
}
adminId := uint64(0) adminId := uint64(0)
ctx := context.TODO() ctx := context.TODO()
@ -187,10 +195,12 @@ func testUploadingMethods(t *testing.T, store db.IDBQuickshare) {
usedSpaceAfterDeleting := int64(0) usedSpaceAfterDeleting := int64(0)
itemPaths := []string{} itemPaths := []string{}
pathToTmpPath := map[string]string{} pathToTmpPath := map[string]string{}
for itemPath, info := range pathInfos { for i, itemPath := range pathnames {
infoId := uint64(i)
info := pathInfos[itemPath]
tmpPath := strings.ReplaceAll(itemPath, "origin", "uploads") tmpPath := strings.ReplaceAll(itemPath, "origin", "uploads")
pathToTmpPath[itemPath] = tmpPath pathToTmpPath[itemPath] = tmpPath
err = store.AddUploadInfos(ctx, adminId, tmpPath, itemPath, info) err = store.AddUploadInfos(ctx, infoId, adminId, tmpPath, itemPath, info)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
@ -299,6 +309,7 @@ func testFileInfoMethods(t *testing.T, store db.IDBQuickshare) {
pathInfos := map[string]*db.FileInfo{ pathInfos := map[string]*db.FileInfo{
"admin/origin/item1": &db.FileInfo{ "admin/origin/item1": &db.FileInfo{
// Shared: false, // deprecated // Shared: false, // deprecated
Id: 100,
IsDir: false, IsDir: false,
Size: int64(7), Size: int64(7),
ShareID: "", ShareID: "",
@ -306,6 +317,7 @@ func testFileInfoMethods(t *testing.T, store db.IDBQuickshare) {
}, },
"admin/origin/item2": &db.FileInfo{ "admin/origin/item2": &db.FileInfo{
// Shared: false, // deprecated // Shared: false, // deprecated
Id: 101,
IsDir: false, IsDir: false,
Size: int64(3), Size: int64(3),
ShareID: "", ShareID: "",
@ -313,6 +325,7 @@ func testFileInfoMethods(t *testing.T, store db.IDBQuickshare) {
}, },
"admin/origin/dir": &db.FileInfo{ "admin/origin/dir": &db.FileInfo{
// Shared: true, // deprecated // Shared: true, // deprecated
Id: 102,
IsDir: true, IsDir: true,
Size: int64(0), Size: int64(0),
ShareID: "mockedShareID", ShareID: "mockedShareID",
@ -323,11 +336,12 @@ func testFileInfoMethods(t *testing.T, store db.IDBQuickshare) {
adminId := uint64(0) adminId := uint64(0)
ctx := context.TODO() ctx := context.TODO()
// add infos // add infos
usedSpace := int64(0) usedSpace := int64(0)
itemPaths := []string{} itemPaths := []string{}
for itemPath, info := range pathInfos { for itemPath, info := range pathInfos {
err = store.AddFileInfo(ctx, adminId, itemPath, info) err = store.AddFileInfo(ctx, info.Id, adminId, itemPath, info)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
@ -344,7 +358,8 @@ func testFileInfoMethods(t *testing.T, store db.IDBQuickshare) {
if info.ShareID != expected.ShareID || if info.ShareID != expected.ShareID ||
info.IsDir != expected.IsDir || info.IsDir != expected.IsDir ||
info.Sha1 != expected.Sha1 || info.Sha1 != expected.Sha1 ||
info.Size != expected.Size { info.Size != expected.Size ||
info.Id != expected.Id {
t.Fatalf("info not equaled (%v) (%v)", expected, info) t.Fatalf("info not equaled (%v) (%v)", expected, info)
} }
} }
@ -356,15 +371,18 @@ func testFileInfoMethods(t *testing.T, store db.IDBQuickshare) {
} else if len(pathToInfo) != len(pathInfos) { } else if len(pathToInfo) != len(pathInfos) {
t.Fatalf("list result size not match (%v) (%d)", pathToInfo, len(pathInfos)) t.Fatalf("list result size not match (%v) (%d)", pathToInfo, len(pathInfos))
} }
for pathname, info := range pathInfos { for pathname, info := range pathInfos {
gotInfo, ok := pathToInfo[pathname] gotInfo, ok := pathToInfo[pathname]
if !ok { if !ok {
t.Fatalf("path not found (%s)", pathname) t.Fatalf("path not found (%s)", pathname)
} }
if info.ShareID != gotInfo.ShareID || if info.ShareID != gotInfo.ShareID ||
info.IsDir != gotInfo.IsDir || info.IsDir != gotInfo.IsDir ||
info.Sha1 != gotInfo.Sha1 || info.Sha1 != gotInfo.Sha1 ||
info.Size != gotInfo.Size { info.Size != gotInfo.Size ||
info.Id != gotInfo.Id {
t.Fatalf("info not equaled (%v) (%v)", gotInfo, info) t.Fatalf("info not equaled (%v) (%v)", gotInfo, info)
} }
} }
@ -386,23 +404,40 @@ func testFileInfoMethods(t *testing.T, store db.IDBQuickshare) {
} }
// move paths // move paths
newPaths := []string{} newPaths := map[string]string{}
newPathsList := []string{}
for itemPath, info := range pathInfos { for itemPath, info := range pathInfos {
newItemPath := strings.ReplaceAll(itemPath, "origin", "new") newItemPath := strings.ReplaceAll(itemPath, "origin", "new")
err = store.MoveFileInfo(ctx, adminId, itemPath, newItemPath, info.IsDir) err = store.MoveFileInfo(ctx, adminId, itemPath, newItemPath, info.IsDir)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
newPaths = append(newPaths, newItemPath) newPaths[newItemPath] = itemPath
newPathsList = append(newPathsList, newItemPath)
} }
// list infos // list infos
pathToInfo, err = store.ListFileInfos(ctx, newPaths) pathToInfo, err = store.ListFileInfos(ctx, newPathsList)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} else if len(pathToInfo) != len(pathInfos) { } else if len(pathToInfo) != len(pathInfos) {
t.Fatalf("list result size not match (%v) (%d)", pathToInfo, len(pathInfos)) t.Fatalf("list result size not match (%v) (%d)", pathToInfo, len(pathInfos))
} }
for newPathname, oldPathname := range newPaths {
info := pathInfos[oldPathname]
gotInfo, ok := pathToInfo[newPathname]
if !ok {
t.Fatalf("path not found (%s)", newPathname)
}
if info.ShareID != gotInfo.ShareID ||
info.IsDir != gotInfo.IsDir ||
testSha1 != gotInfo.Sha1 || // sha is already updated
info.Size != gotInfo.Size ||
info.Id != gotInfo.Id {
t.Fatalf("info not equaled (%v) (%v)", gotInfo, info)
}
}
// check used space // check used space
adminInfo, err := store.GetUser(ctx, adminId) adminInfo, err := store.GetUser(ctx, adminId)
@ -413,7 +448,7 @@ func testFileInfoMethods(t *testing.T, store db.IDBQuickshare) {
} }
// del info // del info
for _, itemPath := range newPaths { for itemPath := range newPaths {
err = store.DelFileInfo(ctx, adminId, itemPath) err = store.DelFileInfo(ctx, adminId, itemPath)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)