refactor use case

This commit is contained in:
dpurbosakti
2025-08-20 16:51:24 +07:00
parent a218489496
commit 5c716eb269
46 changed files with 3080 additions and 278 deletions
+8 -37
View File
@@ -1,7 +1,6 @@
package unit
import (
"errors"
"fmt"
e "simrs-vx/internal/domain/main-entities/unit"
"strconv"
@@ -10,6 +9,7 @@ import (
d "github.com/karincake/dodol"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
"gorm.io/gorm"
)
@@ -214,24 +214,9 @@ func ReadDetail(input e.ReadDetailDto) (*d.Data, error) {
pl.SetLogInfo(&event, input, "started", "DBReadDetail")
data, err = ReadDetailData(input, tx)
if errors.Is(err, gorm.ErrRecordNotFound) {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-notFound",
Detail: fmt.Sprintf("Data with ID %v not found", input.Id),
Raw: err,
}
} else {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-read-detail-fail",
Detail: "Database read detail failed",
Raw: err,
}
if processedErr := pu.HandleReadError(err, &event, source, input.Id, data); processedErr != nil {
return processedErr
}
return pl.SetLogError(event, input)
pl.SetLogInfo(&event, nil, "complete")
for i := range readDetailPostMw {
mwName := fmt.Sprintf("readDetailPostMw[%d]", i)
@@ -264,7 +249,7 @@ func ReadDetail(input e.ReadDetailDto) (*d.Data, error) {
"structure": "single-data",
"status": "fetched",
},
Data: data.ToResponse(),
Data: pu.SafeToResponse(data),
}, nil
}
@@ -284,14 +269,8 @@ func Update(input e.UpdateDto) (*d.Data, error) {
err = dg.I.Transaction(func(tx *gorm.DB) error {
pl.SetLogInfo(&event, rdDto, "started", "DBReadDetail")
data, err = ReadDetailData(rdDto, tx)
if err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-read-detail-fail",
Detail: "Database read detail failed",
Raw: err,
}
return pl.SetLogError(event, rdDto)
if processedErr := pu.HandleReadError(err, &event, source, input.Id, data); processedErr != nil {
return processedErr
}
pl.SetLogInfo(&event, input, "started", "setUpdate")
@@ -380,18 +359,10 @@ func Delete(input e.DeleteDto) (*d.Data, error) {
err = dg.I.Transaction(func(tx *gorm.DB) error {
pl.SetLogInfo(&event, rdDto, "started", "DBReadDetail")
data, err = ReadDetailData(rdDto, tx)
if err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-read-detail-fail",
Detail: "Database read detail failed",
Raw: err,
}
return pl.SetLogError(event, rdDto)
if processedErr := pu.HandleReadError(err, &event, source, input.Id, data); processedErr != nil {
return processedErr
}
pl.SetLogInfo(&event, nil, "complete")
for i := range deletePreMw {
mwName := fmt.Sprintf("deletePreMw[%d]", i)