perbaikan
This commit is contained in:
@@ -134,7 +134,7 @@ func main() {
|
||||
// Generate files
|
||||
generateHandlerFile(data, handlerDir)
|
||||
generateModelFile(data, modelDir)
|
||||
updateRoutesFile(data)
|
||||
// updateRoutesFile(data)
|
||||
|
||||
fmt.Printf("✅ Successfully generated handler: %s\n", entityName)
|
||||
if category != "" {
|
||||
@@ -186,19 +186,19 @@ import (
|
||||
)
|
||||
|
||||
var (
|
||||
db database.Service
|
||||
once sync.Once
|
||||
validate *validator.Validate
|
||||
` + data.NameLower + `db database.Service
|
||||
` + data.NameLower + `once sync.Once
|
||||
` + data.NameLower + `validate *validator.Validate
|
||||
)
|
||||
|
||||
// Initialize the database connection and validator
|
||||
func init() {
|
||||
once.Do(func() {
|
||||
db = database.New(config.LoadConfig())
|
||||
validate = validator.New()
|
||||
` + data.NameLower + `once.Do(func() {
|
||||
` + data.NameLower + `db = database.New(config.LoadConfig())
|
||||
` + data.NameLower + `validate = validator.New()
|
||||
// Register custom validations if needed
|
||||
validate.RegisterValidation("` + data.NameLower + `_status", validate` + data.Name + `Status)
|
||||
if db == nil {
|
||||
` + data.NameLower + `validate.RegisterValidation("` + data.NameLower + `_status", validate` + data.Name + `Status)
|
||||
if ` + data.NameLower + `db == nil {
|
||||
log.Fatal("Failed to initialize database connection")
|
||||
}
|
||||
})
|
||||
@@ -217,7 +217,7 @@ type ` + data.Name + `Handler struct {
|
||||
// New` + data.Name + `Handler creates a new ` + data.Name + `Handler
|
||||
func New` + data.Name + `Handler() *` + data.Name + `Handler {
|
||||
return &` + data.Name + `Handler{
|
||||
db: db,
|
||||
db: ` + data.NameLower + `db,
|
||||
}
|
||||
}`
|
||||
|
||||
@@ -578,7 +578,7 @@ func (h *` + data.Name + `Handler) Create` + data.Name + `(c *gin.Context) {
|
||||
}
|
||||
|
||||
// Validate request
|
||||
if err := validate.Struct(&req); err != nil {
|
||||
if err := ` + data.NameLower + `validate.Struct(&req); err != nil {
|
||||
h.respondError(c, "Validation failed", err, http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
@@ -648,7 +648,7 @@ func (h *` + data.Name + `Handler) Update` + data.Name + `(c *gin.Context) {
|
||||
req.ID = id
|
||||
|
||||
// Validate request
|
||||
if err := validate.Struct(&req); err != nil {
|
||||
if err := ` + data.NameLower + `validate.Struct(&req); err != nil {
|
||||
h.respondError(c, "Validation failed", err, http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
@@ -967,18 +967,28 @@ func (h *` + data.Name + `Handler) fetch` + data.Name + `sDynamic(ctx context.Co
|
||||
|
||||
return items, total, nil
|
||||
}
|
||||
|
||||
// Optimized scanning function yang menggunakan sql.Null* types langsung
|
||||
func (h *` + data.Name + `Handler) scan` + data.Name + `(rows *sql.Rows) (models` + data.NameLower + `.` + data.Name + `, error) {
|
||||
var item models` + data.NameLower + `.` + data.Name + `
|
||||
return item, rows.Scan(
|
||||
&item.ID, &item.Status, &item.Sort, &item.UserCreated,
|
||||
&item.DateCreated, &item.UserUpdated, &item.DateUpdated, &item.Name,
|
||||
)
|
||||
}`
|
||||
`
|
||||
}
|
||||
|
||||
helperMethods += `
|
||||
// Optimized scanning function
|
||||
func (h *` + data.Name + `Handler) scan` + data.Name + `(rows *sql.Rows) (models` + data.NameLower + `.` + data.Name + `, error) {
|
||||
var item models` + data.NameLower + `.` + data.Name + `
|
||||
|
||||
// Scan into individual fields to handle nullable types properly
|
||||
err := rows.Scan(
|
||||
&item.ID,
|
||||
&item.Status,
|
||||
&item.Sort.Int32, &item.Sort.Valid, // models.NullableInt32
|
||||
&item.UserCreated.String, &item.UserCreated.Valid, // sql.NullString
|
||||
&item.DateCreated.Time, &item.DateCreated.Valid, // sql.NullTime
|
||||
&item.UserUpdated.String, &item.UserUpdated.Valid, // sql.NullString
|
||||
&item.DateUpdated.Time, &item.DateUpdated.Valid, // sql.NullTime
|
||||
&item.Name.String, &item.Name.Valid, // sql.NullString
|
||||
)
|
||||
|
||||
return item, err
|
||||
}
|
||||
|
||||
func (h *` + data.Name + `Handler) getTotalCount(ctx context.Context, dbConn *sql.DB, filter models` + data.NameLower + `.` + data.Name + `Filter, total *int) error {
|
||||
whereClause, args := h.buildWhereClause(filter)
|
||||
|
||||
Reference in New Issue
Block a user