1
0
mirror of https://github.com/ManyakRus/crud_generator.git synced 2025-05-18 10:38:33 +02:00

177 lines
4.7 KiB
Go
Raw Normal View History

2024-04-08 17:42:13 +03:00
package crud_tables
2023-10-25 16:22:30 +03:00
import (
"github.com/ManyakRus/crud_generator/internal/config"
2023-10-26 11:33:12 +03:00
"github.com/ManyakRus/crud_generator/internal/create_files"
2023-10-25 16:22:30 +03:00
"github.com/ManyakRus/crud_generator/internal/types"
"github.com/ManyakRus/starter/log"
"strings"
)
2023-10-26 11:33:12 +03:00
// CreateAllFiles - создаёт все файлы в папке db
func CreateAllFiles(MapAll map[string]*types.Table) error {
2023-10-25 16:22:30 +03:00
var err error
2023-11-02 15:57:13 +03:00
for _, Table1 := range MapAll {
2024-05-24 16:39:16 +03:00
//проверка что таблица нормальная
2024-09-06 15:10:00 +03:00
err1 := create_files.IsGood_Table(Table1)
2024-06-04 18:03:27 +03:00
if err1 != nil {
log.Warn(err1)
2024-05-24 16:39:16 +03:00
continue
}
2024-03-06 15:37:36 +03:00
//файлы crud
2023-11-16 12:40:37 +03:00
if config.Settings.NEED_CREATE_DB == true {
2023-11-14 17:07:41 +03:00
err = CreateFiles(Table1)
if err != nil {
log.Error("CreateFiles() table: ", Table1.Name, " error: ", err)
return err
}
2023-10-25 16:22:30 +03:00
}
2024-03-06 15:37:36 +03:00
//тестовые файлы crud
if config.Settings.NEED_CREATE_DB_TEST == true {
2024-04-17 10:19:36 +03:00
err = CreateFilesTest(Table1)
if err != nil {
2024-04-17 10:19:36 +03:00
log.Error("CreateFilesTest() table: ", Table1.Name, " error: ", err)
return err
}
2023-10-25 16:22:30 +03:00
}
2024-03-06 15:37:36 +03:00
//файлы UpdateEveryColumn
if config.Settings.NEED_CREATE_UPDATE_EVERY_COLUMN == true {
//файлы db update
err = CreateFilesUpdateEveryColumn(Table1)
if err != nil {
log.Error("CreateFiles() table: ", Table1.Name, " error: ", err)
return err
}
//тестовые файлы db update
2024-03-12 17:19:36 +03:00
err = CreateFilesUpdateEveryColumnTest(Table1)
if err != nil {
2024-04-17 10:19:36 +03:00
log.Error("CreateFilesTest() table: ", Table1.Name, " error: ", err)
return err
}
}
2024-03-06 15:37:36 +03:00
//файлы Cache
if config.Settings.NEED_CREATE_CACHE_API == true {
//файлы cache
if config.Settings.NEED_CREATE_CACHE_FILES == true {
err = CreateFilesCache(Table1)
if err != nil {
log.Error("CreateFiles() table: ", Table1.Name, " error: ", err)
return err
}
}
//тестовые файлы cache
if config.Settings.NEED_CREATE_CACHE_TEST_FILES == true {
err = CreateFilesCacheTest(Table1)
if err != nil {
2024-04-17 10:19:36 +03:00
log.Error("CreateFilesTest() table: ", Table1.Name, " error: ", err)
2024-03-06 15:37:36 +03:00
return err
}
}
2024-08-14 17:31:08 +03:00
2024-08-15 10:46:55 +03:00
//
2024-08-14 17:31:08 +03:00
err = CreateFilesFindBy(Table1)
if err != nil {
log.Error("CreateFilesFindBy() table: ", Table1.Name, " error: ", err)
return err
}
2024-08-15 10:46:55 +03:00
//
2024-08-14 17:31:08 +03:00
err = CreateFilesFindByTest(Table1)
if err != nil {
log.Error("CreateFilesFindByTest() table: ", Table1.Name, " error: ", err)
return err
}
2024-08-15 10:46:55 +03:00
//
err = CreateFilesFindMassBy(Table1)
if err != nil {
log.Error("CreateFilesFindMassBy() table: ", Table1.Name, " error: ", err)
return err
}
//
err = CreateFilesFindMassByTest(Table1)
if err != nil {
log.Error("CreateFilesFindMassByTest() table: ", Table1.Name, " error: ", err)
return err
}
2024-03-06 15:37:36 +03:00
}
2023-10-25 16:22:30 +03:00
}
return err
}
// RenameFunctions - заменяет названия функций, на названия из файла
func RenameFunctions(TextDB string, Table1 *types.Table) string {
Otvet := TextDB
TableName := strings.ToLower(Table1.Name)
Rename1, ok := types.MapRenameFunctions[TableName]
if ok == false {
return Otvet
}
for _, v := range Rename1 {
Otvet = strings.ReplaceAll(Otvet, "func "+v.Old+"(", "func "+v.New+"(")
}
return Otvet
}
2024-09-06 15:10:00 +03:00
// ReplaceCacheRemove - заменяет cache.Remove(IntFromAlias(m.ID))
func ReplaceCacheRemove(Text string, Table1 *types.Table) string {
Otvet := Text
if Table1.PrimaryKeyColumnsCount == 1 {
Otvet = ReplaceCacheRemove_1PK(Otvet, Table1)
} else {
Otvet = ReplaceCacheRemove_ManyPK(Otvet, Table1)
}
return Otvet
}
// ReplaceColumnNamePK - заменяет "ColumnNamePK" на текст имя колонки
func ReplaceColumnNamePK(Text string, Table1 *types.Table) string {
Otvet := Text
ColumnPK := create_files.Find_PrimaryKeyColumn(Table1)
Otvet = strings.ReplaceAll(Otvet, "ColumnNamePK", ColumnPK.NameGo)
return Otvet
}
// ReplaceCacheRemove1PK - заменяет cache.Remove(IntFromAlias(m.ID))
func ReplaceCacheRemove_1PK(Text string, Table1 *types.Table) string {
Otvet := Text
ColumnPK := create_files.Find_PrimaryKeyColumn(Table1)
TextOld := "cache.Remove(IntFromAlias(m.ID))"
Value := create_files.ConvertFromAlias(Table1, ColumnPK, "m")
TextNew := "cache.Remove(" + Value + ")"
Otvet = strings.ReplaceAll(Otvet, TextOld, TextNew)
return Otvet
}
// ReplaceCacheRemove_ManyPK - заменяет cache.Remove(IntFromAlias(m.ID)) на cache.Remove(m.StringIdentifier())
func ReplaceCacheRemove_ManyPK(Text string, Table1 *types.Table) string {
Otvet := Text
if Table1.PrimaryKeyColumnsCount > 1 {
TextOld := "cache.Remove(IntFromAlias(m.ID))"
TextNames, _, _ := create_files.FindText_ID_VariableName_Many(Table1, "m")
TextNew := "cache.Remove(" + Table1.Name + ".StringIdentifier(" + TextNames + "))"
Otvet = strings.ReplaceAll(Otvet, TextOld, TextNew)
}
return Otvet
}