From 280d951d3c79a354797597110a7c31020e5bfe66 Mon Sep 17 00:00:00 2001 From: teguh nugroho Date: Sat, 5 Sep 2026 14:48:44 +0700 Subject: [PATCH] update --- .gitignore | 3 ++- internal/usecases/city.go | 38 +++++++++++++++------------- internal/usecases/cost_component.go | 38 +++++++++++++++------------- internal/usecases/district.go | 38 +++++++++++++++------------- internal/usecases/moda.go | 38 +++++++++++++++------------- internal/usecases/package_type.go | 38 +++++++++++++++------------- internal/usecases/postal_code.go | 38 +++++++++++++++------------- internal/usecases/province.go | 39 +++++++++++++++-------------- internal/usecases/subdistrict.go | 38 +++++++++++++++------------- 9 files changed, 162 insertions(+), 146 deletions(-) diff --git a/.gitignore b/.gitignore index ffa4472..e223c88 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ notes.txt _internal/ **/*.json server/* -storage/log/ \ No newline at end of file +storage/log/ +api diff --git a/internal/usecases/city.go b/internal/usecases/city.go index 3f1ddf9..18a0f0f 100644 --- a/internal/usecases/city.go +++ b/internal/usecases/city.go @@ -165,22 +165,24 @@ func (u *CityUsecase) Update(id string, name string, provinceID string, port str func (u *CityUsecase) Delete(id string) error { db := u.Helper.GetDB("master") - var city domain.City - q := db - if u.AuthUser.UsersRole_Relation == nil || u.AuthUser.UsersRole_Relation.RoleKey != "SPM" { - q = db.Where("merchant_id=?", u.AuthUser.MerchantID) - } - if err := q.Where("id = ?", id).First(&city).Error; err != nil { - return err - } - var merchantID *string - if u.AuthUser.UsersRole_Relation == nil || u.AuthUser.UsersRole_Relation.RoleKey != "SPM" { - merchantID = u.AuthUser.MerchantID - } - logUsecase := NewActivityLogUsecase(u.Helper, u.AuthUser) - logUsecase.LogDelete("city", id, city, merchantID) - if err := db.Delete(&domain.City{}, "id = ?", id).Error; err != nil { - return err - } - return nil + return db.Transaction(func(tx *gorm.DB) error { + var city domain.City + q := tx + if u.AuthUser.UsersRole_Relation == nil || u.AuthUser.UsersRole_Relation.RoleKey != "SPM" { + q = tx.Where("merchant_id=?", u.AuthUser.MerchantID) + } + if err := q.Where("id = ?", id).First(&city).Error; err != nil { + return err + } + var merchantID *string + if u.AuthUser.UsersRole_Relation == nil || u.AuthUser.UsersRole_Relation.RoleKey != "SPM" { + merchantID = u.AuthUser.MerchantID + } + logUsecase := NewActivityLogUsecase(u.Helper, u.AuthUser) + logUsecase.LogDelete("city", id, city, merchantID) + if err := tx.Delete(&domain.City{}, "id = ?", id).Error; err != nil { + return err + } + return nil + }) } diff --git a/internal/usecases/cost_component.go b/internal/usecases/cost_component.go index 7e98040..b11ebef 100644 --- a/internal/usecases/cost_component.go +++ b/internal/usecases/cost_component.go @@ -190,24 +190,26 @@ func (u *CostComponentUsecase) Update(id string, name string, code string, value func (u *CostComponentUsecase) Delete(id string) error { db := u.Helper.GetDB("master") - var component domain.CostComponent - q := db - if u.AuthUser.UsersRole_Relation == nil || u.AuthUser.UsersRole_Relation.RoleKey != "SPM" { - q = db.Where("merchant_id=?", u.AuthUser.MerchantID) - } - if err := q.Where("id = ?", id).First(&component).Error; err != nil { - return err - } - var merchantID *string - if u.AuthUser.UsersRole_Relation == nil || u.AuthUser.UsersRole_Relation.RoleKey != "SPM" { - merchantID = u.AuthUser.MerchantID - } - logUsecase := NewActivityLogUsecase(u.Helper, u.AuthUser) - logUsecase.LogDelete("cost_component", id, component, merchantID) - if err := db.Delete(&domain.CostComponent{}, "id = ?", id).Error; err != nil { - return err - } - return nil + return db.Transaction(func(tx *gorm.DB) error { + var component domain.CostComponent + q := tx + if u.AuthUser.UsersRole_Relation == nil || u.AuthUser.UsersRole_Relation.RoleKey != "SPM" { + q = tx.Where("merchant_id=?", u.AuthUser.MerchantID) + } + if err := q.Where("id = ?", id).First(&component).Error; err != nil { + return err + } + var merchantID *string + if u.AuthUser.UsersRole_Relation == nil || u.AuthUser.UsersRole_Relation.RoleKey != "SPM" { + merchantID = u.AuthUser.MerchantID + } + logUsecase := NewActivityLogUsecase(u.Helper, u.AuthUser) + logUsecase.LogDelete("cost_component", id, component, merchantID) + if err := tx.Delete(&domain.CostComponent{}, "id = ?", id).Error; err != nil { + return err + } + return nil + }) } func (u *CostComponentUsecase) SortDown(id string) error { diff --git a/internal/usecases/district.go b/internal/usecases/district.go index 4fab222..0108694 100644 --- a/internal/usecases/district.go +++ b/internal/usecases/district.go @@ -174,22 +174,24 @@ func (u *DistrictUsecase) Update(id string, name string, provinceID string, city func (u *DistrictUsecase) Delete(id string) error { db := u.Helper.GetDB("master") - var district domain.District - q := db - if u.AuthUser.UsersRole_Relation == nil || u.AuthUser.UsersRole_Relation.RoleKey != "SPM" { - q = db.Where("merchant_id=?", u.AuthUser.MerchantID) - } - if err := q.Where("id = ?", id).First(&district).Error; err != nil { - return err - } - var merchantID *string - if u.AuthUser.UsersRole_Relation == nil || u.AuthUser.UsersRole_Relation.RoleKey != "SPM" { - merchantID = u.AuthUser.MerchantID - } - logUsecase := NewActivityLogUsecase(u.Helper, u.AuthUser) - logUsecase.LogDelete("district", id, district, merchantID) - if err := db.Delete(&domain.District{}, "id = ?", id).Error; err != nil { - return err - } - return nil + return db.Transaction(func(tx *gorm.DB) error { + var district domain.District + q := tx + if u.AuthUser.UsersRole_Relation == nil || u.AuthUser.UsersRole_Relation.RoleKey != "SPM" { + q = tx.Where("merchant_id=?", u.AuthUser.MerchantID) + } + if err := q.Where("id = ?", id).First(&district).Error; err != nil { + return err + } + var merchantID *string + if u.AuthUser.UsersRole_Relation == nil || u.AuthUser.UsersRole_Relation.RoleKey != "SPM" { + merchantID = u.AuthUser.MerchantID + } + logUsecase := NewActivityLogUsecase(u.Helper, u.AuthUser) + logUsecase.LogDelete("district", id, district, merchantID) + if err := tx.Delete(&domain.District{}, "id = ?", id).Error; err != nil { + return err + } + return nil + }) } diff --git a/internal/usecases/moda.go b/internal/usecases/moda.go index fe5d69b..a223bd8 100644 --- a/internal/usecases/moda.go +++ b/internal/usecases/moda.go @@ -154,22 +154,24 @@ func (u *ModaUsecase) Update(id string, name string, updatedBy string) (domain.M func (u *ModaUsecase) Delete(id string) error { db := u.Helper.GetDB("master") - var item domain.Moda - q := db - if u.AuthUser.UsersRole_Relation == nil || u.AuthUser.UsersRole_Relation.RoleKey != "SPM" { - q = db.Where("merchant_id=?", u.AuthUser.MerchantID) - } - if err := q.Where("id = ?", id).First(&item).Error; err != nil { - return err - } - var merchantID *string - if u.AuthUser.UsersRole_Relation == nil || u.AuthUser.UsersRole_Relation.RoleKey != "SPM" { - merchantID = u.AuthUser.MerchantID - } - logUsecase := NewActivityLogUsecase(u.Helper, u.AuthUser) - logUsecase.LogDelete("moda", id, item, merchantID) - if err := db.Delete(&domain.Moda{}, "id = ?", id).Error; err != nil { - return err - } - return nil + return db.Transaction(func(tx *gorm.DB) error { + var item domain.Moda + q := tx + if u.AuthUser.UsersRole_Relation == nil || u.AuthUser.UsersRole_Relation.RoleKey != "SPM" { + q = tx.Where("merchant_id=?", u.AuthUser.MerchantID) + } + if err := q.Where("id = ?", id).First(&item).Error; err != nil { + return err + } + var merchantID *string + if u.AuthUser.UsersRole_Relation == nil || u.AuthUser.UsersRole_Relation.RoleKey != "SPM" { + merchantID = u.AuthUser.MerchantID + } + logUsecase := NewActivityLogUsecase(u.Helper, u.AuthUser) + logUsecase.LogDelete("moda", id, item, merchantID) + if err := tx.Delete(&domain.Moda{}, "id = ?", id).Error; err != nil { + return err + } + return nil + }) } diff --git a/internal/usecases/package_type.go b/internal/usecases/package_type.go index f03df40..1c38502 100644 --- a/internal/usecases/package_type.go +++ b/internal/usecases/package_type.go @@ -154,22 +154,24 @@ func (u *PackageTypeUsecase) Update(id string, name string, updatedBy string) (d func (u *PackageTypeUsecase) Delete(id string) error { db := u.Helper.GetDB("master") - var item domain.PackageType - q := db - if u.AuthUser.UsersRole_Relation == nil || u.AuthUser.UsersRole_Relation.RoleKey != "SPM" { - q = db.Where("merchant_id=?", u.AuthUser.MerchantID) - } - if err := q.Where("id = ?", id).First(&item).Error; err != nil { - return err - } - var merchantID *string - if u.AuthUser.UsersRole_Relation == nil || u.AuthUser.UsersRole_Relation.RoleKey != "SPM" { - merchantID = u.AuthUser.MerchantID - } - logUsecase := NewActivityLogUsecase(u.Helper, u.AuthUser) - logUsecase.LogDelete("package_type", id, item, merchantID) - if err := db.Delete(&domain.PackageType{}, "id = ?", id).Error; err != nil { - return err - } - return nil + return db.Transaction(func(tx *gorm.DB) error { + var item domain.PackageType + q := tx + if u.AuthUser.UsersRole_Relation == nil || u.AuthUser.UsersRole_Relation.RoleKey != "SPM" { + q = tx.Where("merchant_id=?", u.AuthUser.MerchantID) + } + if err := q.Where("id = ?", id).First(&item).Error; err != nil { + return err + } + var merchantID *string + if u.AuthUser.UsersRole_Relation == nil || u.AuthUser.UsersRole_Relation.RoleKey != "SPM" { + merchantID = u.AuthUser.MerchantID + } + logUsecase := NewActivityLogUsecase(u.Helper, u.AuthUser) + logUsecase.LogDelete("package_type", id, item, merchantID) + if err := tx.Delete(&domain.PackageType{}, "id = ?", id).Error; err != nil { + return err + } + return nil + }) } diff --git a/internal/usecases/postal_code.go b/internal/usecases/postal_code.go index e65c505..3d18bd4 100644 --- a/internal/usecases/postal_code.go +++ b/internal/usecases/postal_code.go @@ -196,22 +196,24 @@ func (u *PostalCodeUsecase) Update(id string, postalCode string, provinceID stri func (u *PostalCodeUsecase) Delete(id string) error { db := u.Helper.GetDB("master") - var pc domain.PostalCode - q := db - if u.AuthUser.UsersRole_Relation == nil || u.AuthUser.UsersRole_Relation.RoleKey != "SPM" { - q = db.Where("merchant_id=?", u.AuthUser.MerchantID) - } - if err := q.Where("id = ?", id).First(&pc).Error; err != nil { - return err - } - var merchantID *string - if u.AuthUser.UsersRole_Relation == nil || u.AuthUser.UsersRole_Relation.RoleKey != "SPM" { - merchantID = u.AuthUser.MerchantID - } - logUsecase := NewActivityLogUsecase(u.Helper, u.AuthUser) - logUsecase.LogDelete("postal_code", id, pc, merchantID) - if err := db.Delete(&domain.PostalCode{}, "id = ?", id).Error; err != nil { - return err - } - return nil + return db.Transaction(func(tx *gorm.DB) error { + var pc domain.PostalCode + q := tx + if u.AuthUser.UsersRole_Relation == nil || u.AuthUser.UsersRole_Relation.RoleKey != "SPM" { + q = tx.Where("merchant_id=?", u.AuthUser.MerchantID) + } + if err := q.Where("id = ?", id).First(&pc).Error; err != nil { + return err + } + var merchantID *string + if u.AuthUser.UsersRole_Relation == nil || u.AuthUser.UsersRole_Relation.RoleKey != "SPM" { + merchantID = u.AuthUser.MerchantID + } + logUsecase := NewActivityLogUsecase(u.Helper, u.AuthUser) + logUsecase.LogDelete("postal_code", id, pc, merchantID) + if err := tx.Delete(&domain.PostalCode{}, "id = ?", id).Error; err != nil { + return err + } + return nil + }) } diff --git a/internal/usecases/province.go b/internal/usecases/province.go index 75e33cc..ca032aa 100644 --- a/internal/usecases/province.go +++ b/internal/usecases/province.go @@ -159,26 +159,27 @@ func (u *ProvinceUsecase) Update(id string, name string, updatedBy string) (doma func (u *ProvinceUsecase) Delete(id string) error { db := u.Helper.GetDB("master") + return db.Transaction(func(tx *gorm.DB) error { + var province domain.Province + q := tx + if u.AuthUser.UsersRole_Relation == nil || u.AuthUser.UsersRole_Relation.RoleKey != "SPM" { + q = tx.Where("merchant_id=?", u.AuthUser.MerchantID) + } + if err := q.Where("id = ?", id).First(&province).Error; err != nil { + return err + } - var province domain.Province - q := db - if u.AuthUser.UsersRole_Relation == nil || u.AuthUser.UsersRole_Relation.RoleKey != "SPM" { - q = db.Where("merchant_id=?", u.AuthUser.MerchantID) - } - if err := q.Where("id = ?", id).First(&province).Error; err != nil { - return err - } + var merchantID *string + if u.AuthUser.UsersRole_Relation == nil || u.AuthUser.UsersRole_Relation.RoleKey != "SPM" { + merchantID = u.AuthUser.MerchantID + } + logUsecase := NewActivityLogUsecase(u.Helper, u.AuthUser) + logUsecase.LogDelete("province", id, province, merchantID) - var merchantID *string - if u.AuthUser.UsersRole_Relation == nil || u.AuthUser.UsersRole_Relation.RoleKey != "SPM" { - merchantID = u.AuthUser.MerchantID - } - logUsecase := NewActivityLogUsecase(u.Helper, u.AuthUser) - logUsecase.LogDelete("province", id, province, merchantID) + if err := tx.Delete(&domain.Province{}, "id = ?", id).Error; err != nil { + return err + } - if err := db.Delete(&domain.Province{}, "id = ?", id).Error; err != nil { - return err - } - - return nil + return nil + }) } diff --git a/internal/usecases/subdistrict.go b/internal/usecases/subdistrict.go index 76b484a..4bf9b30 100644 --- a/internal/usecases/subdistrict.go +++ b/internal/usecases/subdistrict.go @@ -185,22 +185,24 @@ func (u *SubdistrictUsecase) Update(id string, name string, provinceID string, c func (u *SubdistrictUsecase) Delete(id string) error { db := u.Helper.GetDB("master") - var subdistrict domain.Subdistrict - q := db - if u.AuthUser.UsersRole_Relation == nil || u.AuthUser.UsersRole_Relation.RoleKey != "SPM" { - q = db.Where("merchant_id=?", u.AuthUser.MerchantID) - } - if err := q.Where("id = ?", id).First(&subdistrict).Error; err != nil { - return err - } - var merchantID *string - if u.AuthUser.UsersRole_Relation == nil || u.AuthUser.UsersRole_Relation.RoleKey != "SPM" { - merchantID = u.AuthUser.MerchantID - } - logUsecase := NewActivityLogUsecase(u.Helper, u.AuthUser) - logUsecase.LogDelete("subdistrict", id, subdistrict, merchantID) - if err := db.Delete(&domain.Subdistrict{}, "id = ?", id).Error; err != nil { - return err - } - return nil + return db.Transaction(func(tx *gorm.DB) error { + var subdistrict domain.Subdistrict + q := tx + if u.AuthUser.UsersRole_Relation == nil || u.AuthUser.UsersRole_Relation.RoleKey != "SPM" { + q = tx.Where("merchant_id=?", u.AuthUser.MerchantID) + } + if err := q.Where("id = ?", id).First(&subdistrict).Error; err != nil { + return err + } + var merchantID *string + if u.AuthUser.UsersRole_Relation == nil || u.AuthUser.UsersRole_Relation.RoleKey != "SPM" { + merchantID = u.AuthUser.MerchantID + } + logUsecase := NewActivityLogUsecase(u.Helper, u.AuthUser) + logUsecase.LogDelete("subdistrict", id, subdistrict, merchantID) + if err := tx.Delete(&domain.Subdistrict{}, "id = ?", id).Error; err != nil { + return err + } + return nil + }) }