u
This commit is contained in:
1 parent
c6671c8a8c
commit
f0cb963d23
76 files changed
+6467
-498
No files matched your search
@@ -0,0 +1,56 @@
|
||||
package handle
|
||||
|
||||
import (
|
||||
"allapp-go/internal/httpx"
|
||||
"allapp-go/internal/types"
|
||||
"allapp-go/pkg/db"
|
||||
|
||||
"github.com/gofiber/fiber/v3"
|
||||
)
|
||||
|
||||
func SaveData(c fiber.Ctx) error {
|
||||
var req []types.SaveDataReq
|
||||
|
||||
if err := httpx.BindAndValidate(c, &req); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if len(req) == 0 {
|
||||
return httpx.OK(c, nil)
|
||||
}
|
||||
|
||||
ctx := c.Context()
|
||||
dbClient := db.New()
|
||||
|
||||
err := dbClient.WithTx(ctx, func(tx *db.Client) error {
|
||||
for _, dataReq := range req {
|
||||
tableName := dataReq.TableName
|
||||
keyField := dataReq.KeyField
|
||||
|
||||
for _, insert := range dataReq.Inserts {
|
||||
if err := tx.Insert(ctx, tableName, keyField, insert); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
for _, update := range dataReq.Updates {
|
||||
if err := tx.Update(ctx, tableName, keyField, update); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
for _, del := range dataReq.Deletes {
|
||||
if err := tx.Delete(ctx, tableName, keyField, del); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
}
|
||||
return nil
|
||||
})
|
||||
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return httpx.OK(c, nil)
|
||||
}
|
||||
Reference in new issue
Block a user