Merge branch 'pre-dev' of github.com:dikstub-rssa/simrs-be into moko
This commit is contained in:
No files matched your search
@@ -14,7 +14,7 @@ func ModifInput(input *e.Createdto, data *e.Single, tx *gorm.DB) error {
|
|||||||
|
|
||||||
// a sampel of utilizing transaction
|
// a sampel of utilizing transaction
|
||||||
func CheckData(input *e.Createdto, data *e.Single, tx *gorm.DB) error {
|
func CheckData(input *e.Createdto, data *e.Single, tx *gorm.DB) error {
|
||||||
tx.Where("name = ?", input.Name)
|
tx.Where("Name = ?", input.Name)
|
||||||
input.Name = "Prefix_" + input.Name
|
input.Name = "Prefix_" + input.Name
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@@ -7,6 +7,7 @@ package crud
|
|||||||
import (
|
import (
|
||||||
dg "github.com/karincake/apem/db-gorm-pg"
|
dg "github.com/karincake/apem/db-gorm-pg"
|
||||||
d "github.com/karincake/dodol"
|
d "github.com/karincake/dodol"
|
||||||
|
"gorm.io/gorm"
|
||||||
|
|
||||||
e "simrs-vx/internal/domain/main-entities/single"
|
e "simrs-vx/internal/domain/main-entities/single"
|
||||||
)
|
)
|
||||||
@@ -14,10 +15,25 @@ import (
|
|||||||
const source = "crud"
|
const source = "crud"
|
||||||
|
|
||||||
func Create(input e.Createdto) (*d.Data, error) {
|
func Create(input e.Createdto) (*d.Data, error) {
|
||||||
result, err := CreateData(input)
|
err := dg.I.Transaction(func(tx *gorm.DB) error {
|
||||||
if err != nil {
|
for i := range createPreMw {
|
||||||
return nil, err
|
if err := createPreMw[i](&input, &data, dg.I); err != nil {
|
||||||
}
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := dg.I.Create(&data).Error; err != nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
for i := range createPostMw {
|
||||||
|
if err := createPostMw[i](&input, &data, dg.I); err != nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
})
|
||||||
|
|
||||||
return &d.Data{
|
return &d.Data{
|
||||||
Meta: d.II{
|
Meta: d.II{
|
||||||
|
|||||||
@@ -7,28 +7,19 @@ import (
|
|||||||
"gorm.io/gorm"
|
"gorm.io/gorm"
|
||||||
)
|
)
|
||||||
|
|
||||||
func CreateData(input e.Createdto) (*e.Single, error) {
|
func CreateData(input e.Createdto, tx ...*gorm.DB) (*e.Single, error) {
|
||||||
data := e.Single{}
|
data := e.Single{}
|
||||||
|
|
||||||
err := dg.I.Transaction(func(tx *gorm.DB) error {
|
var db *gorm.DB
|
||||||
for i := range createPreMw {
|
if tx != nil {
|
||||||
if err := createPreMw[i](&input, &data, dg.I); err != nil {
|
db = tx
|
||||||
return nil
|
} else {
|
||||||
}
|
db = dg.I
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := dg.I.Create(&data).Error; err != nil {
|
if err := dg.I.Create(&data).Error; err != nil {
|
||||||
return nil
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
for i := range createPostMw {
|
|
||||||
if err := createPostMw[i](&input, &data, dg.I); err != nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
})
|
|
||||||
|
|
||||||
return &data, err
|
return &data, err
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user