feat: hide implement models from select

This commit is contained in:
2025-03-08 21:37:49 +07:00
parent e694fce7c7
commit fb59bf979c
6 changed files with 40 additions and 9 deletions

View File

@@ -13,9 +13,14 @@ func SelectionInput() ([]string, string) {
log.Fatalf("Please provide path to models.go")
}
path := os.Args[1]
modelsPath := os.Args[1]
structNames := utils.GetStructList(path)
structNames := utils.GetNotImplementedStructs(modelsPath)
if len(structNames) == 0 {
log.Println("No unimplemented models -> nothing to do")
os.Exit(0)
}
var result []string
@@ -30,7 +35,7 @@ func SelectionInput() ([]string, string) {
form.AddFormItem(cb)
}
form.AddButton("Confirm", func() {
form.AddButton("Generate", func() {
for i, cb := range checkboxes {
if cb.IsChecked() {
result = append(result, structNames[i])
@@ -43,5 +48,5 @@ func SelectionInput() ([]string, string) {
panic(err)
}
return result, path
return result, modelsPath
}

View File

@@ -18,6 +18,7 @@ func main() {
log.Fatalf("Failed to open file: %s", err)
}
structFields := utils.GetStructFields(file, structName)
_ = file.Close()
generation.Generate(structName, structFields)
}
}

View File

@@ -0,0 +1,11 @@
package utils
func GetNotImplementedStructs(modelsFilePath string) []string {
var models []string
for _, model := range GetStructsList(modelsFilePath) {
if !IsEntityImplemented(model) {
models = append(models, model)
}
}
return models
}

View File

@@ -10,9 +10,7 @@ import (
func GetStructFields(file *os.File, structName string) []entities.Field {
bracketsCount := 1
structFound := false
var structFound bool
var structFields []entities.Field
scanner := bufio.NewScanner(file)

View File

@@ -7,8 +7,8 @@ import (
"strings"
)
func GetStructList(filePath string) []string {
file, err := os.Open(filePath)
func GetStructsList(modelsFilePath string) []string {
file, err := os.Open(modelsFilePath)
defer file.Close()
if err != nil {
log.Fatalf("Failed to open a file: %s", err)

16
utils/is_implemented.go Normal file
View File

@@ -0,0 +1,16 @@
package utils
import (
"os"
"path/filepath"
"strings"
)
func IsEntityImplemented(entityName string) bool {
entityDirectory := filepath.Join(FindFrontendPath(), strings.ToLower(entityName))
if _, err := os.Stat(entityDirectory); os.IsNotExist(err) {
return false
} else {
return true
}
}