Merge branch 'pre-dev' of github.com:dikstub-rssa/simrs-be into moko

This commit is contained in:
dpurbosakti
2025-08-11 11:49:20 +07:00
3 changed files with 31 additions and 24 deletions

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
} }