chore: add id to resp of create storage

pull/2338/head
Noah Hsu 2022-11-13 20:17:10 +08:00
parent 6e3df9f847
commit 3b6d8987db
6 changed files with 34 additions and 13 deletions

View File

@ -39,7 +39,7 @@ func TestConnect(t *testing.T) {
func TestDown(t *testing.T) {
TestConnect(t)
err := op.CreateStorage(context.Background(), model.Storage{
_, err := op.CreateStorage(context.Background(), model.Storage{
ID: 0,
MountPath: "/",
Order: 0,

View File

@ -12,7 +12,7 @@ import (
)
func initDevData() {
err := op.CreateStorage(context.Background(), model.Storage{
_, err := op.CreateStorage(context.Background(), model.Storage{
MountPath: "/",
Order: 0,
Driver: "Local",

View File

@ -31,7 +31,7 @@ func GetStorageByVirtualPath(virtualPath string) (driver.Driver, error) {
// CreateStorage Save the storage to database so storage can get an id
// then instantiate corresponding driver and save it in memory
func CreateStorage(ctx context.Context, storage model.Storage) error {
func CreateStorage(ctx context.Context, storage model.Storage) (uint, error) {
storage.Modified = time.Now()
storage.MountPath = utils.StandardizePath(storage.MountPath)
var err error
@ -39,13 +39,13 @@ func CreateStorage(ctx context.Context, storage model.Storage) error {
driverName := storage.Driver
driverNew, err := GetDriverNew(driverName)
if err != nil {
return errors.WithMessage(err, "failed get driver new")
return 0, errors.WithMessage(err, "failed get driver new")
}
storageDriver := driverNew()
// insert storage to database
err = db.CreateStorage(&storage)
if err != nil {
return errors.WithMessage(err, "failed create storage in database")
return storage.ID, errors.WithMessage(err, "failed create storage in database")
}
// already has an id
err = storageDriver.Init(ctx, storage)
@ -53,13 +53,13 @@ func CreateStorage(ctx context.Context, storage model.Storage) error {
if err != nil {
storageDriver.GetStorage().SetStatus(fmt.Sprintf("%+v", err.Error()))
MustSaveDriverStorage(storageDriver)
return errors.Wrapf(err, "failed init storage but storage is already created")
return storage.ID, errors.Wrapf(err, "failed init storage but storage is already created")
} else {
storageDriver.GetStorage().SetStatus(WORK)
MustSaveDriverStorage(storageDriver)
}
log.Debugf("storage %+v is created", storageDriver)
return nil
return storage.ID, nil
}
// LoadStorage load exist storage in db to memory

View File

@ -30,7 +30,7 @@ func TestCreateStorage(t *testing.T) {
{storage: model.Storage{Driver: "None", MountPath: "/none", Addition: `{"root_folder":"."}`}, isErr: true},
}
for _, storage := range storages {
err := op.CreateStorage(context.Background(), storage.storage)
_, err := op.CreateStorage(context.Background(), storage.storage)
if err != nil {
if !storage.isErr {
t.Errorf("failed to create storage: %+v", err)
@ -77,7 +77,7 @@ func setupStorages(t *testing.T) {
{Driver: "Local", MountPath: "/a/d/e.balance", Order: 4, Addition: `{"root_folder":"."}`},
}
for _, storage := range storages {
err := op.CreateStorage(context.Background(), storage)
_, err := op.CreateStorage(context.Background(), storage)
if err != nil {
t.Fatalf("failed to create storage: %+v", err)
}

View File

@ -21,6 +21,23 @@ func hidePrivacy(msg string) string {
// ErrorResp is used to return error response
// @param l: if true, log error
func ErrorResp(c *gin.Context, err error, code int, l ...bool) {
ErrorWithDataResp(c, err, code, nil, l...)
//if len(l) > 0 && l[0] {
// if flags.Debug || flags.Dev {
// log.Errorf("%+v", err)
// } else {
// log.Errorf("%v", err)
// }
//}
//c.JSON(200, Resp[interface{}]{
// Code: code,
// Message: hidePrivacy(err.Error()),
// Data: nil,
//})
//c.Abort()
}
func ErrorWithDataResp(c *gin.Context, err error, code int, data interface{}, l ...bool) {
if len(l) > 0 && l[0] {
if flags.Debug || flags.Dev {
log.Errorf("%+v", err)
@ -31,7 +48,7 @@ func ErrorResp(c *gin.Context, err error, code int, l ...bool) {
c.JSON(200, Resp[interface{}]{
Code: code,
Message: hidePrivacy(err.Error()),
Data: nil,
Data: data,
})
c.Abort()
}

View File

@ -36,10 +36,14 @@ func CreateStorage(c *gin.Context) {
common.ErrorResp(c, err, 400)
return
}
if err := op.CreateStorage(c, req); err != nil {
common.ErrorResp(c, err, 500, true)
if id, err := op.CreateStorage(c, req); err != nil {
common.ErrorWithDataResp(c, err, 500, gin.H{
"id": id,
}, true)
} else {
common.SuccessResp(c)
common.SuccessResp(c, gin.H{
"id": id,
})
}
}