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-02-13 17:43:47 +03:00
|
|
|
|
2024-03-06 15:37:36 +03:00
|
|
|
//тестовые файлы crud
|
2023-11-13 16:42:54 +03:00
|
|
|
if config.Settings.NEED_CREATE_DB_TEST == true {
|
2024-09-17 14:41:37 +03:00
|
|
|
err = CreateFiles_Test(Table1)
|
2023-11-13 16:42:54 +03:00
|
|
|
if err != nil {
|
2024-09-17 14:41:37 +03:00
|
|
|
log.Error("CreateFiles_Test() table: ", Table1.Name, " error: ", err)
|
2023-11-13 16:42:54 +03:00
|
|
|
return err
|
|
|
|
}
|
2023-10-25 16:22:30 +03:00
|
|
|
}
|
2024-02-13 17:43:47 +03:00
|
|
|
|
2024-03-06 15:37:36 +03:00
|
|
|
//файлы UpdateEveryColumn
|
2024-02-13 17:43:47 +03:00
|
|
|
if config.Settings.NEED_CREATE_UPDATE_EVERY_COLUMN == true {
|
|
|
|
//файлы db update
|
2024-09-17 14:41:37 +03:00
|
|
|
err = CreateFiles_UpdateEveryColumn(Table1)
|
2024-02-13 17:43:47 +03:00
|
|
|
if err != nil {
|
|
|
|
log.Error("CreateFiles() table: ", Table1.Name, " error: ", err)
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
|
|
|
//тестовые файлы db update
|
2024-09-17 14:41:37 +03:00
|
|
|
err = CreateFiles_UpdateEveryColumn_Test(Table1)
|
2024-02-13 17:43:47 +03:00
|
|
|
if err != nil {
|
2024-09-17 14:41:37 +03:00
|
|
|
log.Error("CreateFiles_Test() table: ", Table1.Name, " error: ", err)
|
2024-02-13 17:43:47 +03:00
|
|
|
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 {
|
2024-09-17 14:41:37 +03:00
|
|
|
err = CreateFiles_Cache(Table1)
|
2024-03-06 15:37:36 +03:00
|
|
|
if err != nil {
|
|
|
|
log.Error("CreateFiles() table: ", Table1.Name, " error: ", err)
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
//тестовые файлы cache
|
|
|
|
if config.Settings.NEED_CREATE_CACHE_TEST_FILES == true {
|
2024-09-17 14:41:37 +03:00
|
|
|
err = CreateFiles_Cache_Test(Table1)
|
2024-03-06 15:37:36 +03:00
|
|
|
if err != nil {
|
2024-09-17 14:41:37 +03:00
|
|
|
log.Error("CreateFiles_Test() table: ", Table1.Name, " error: ", err)
|
2024-03-06 15:37:36 +03:00
|
|
|
return err
|
|
|
|
}
|
|
|
|
}
|
2024-10-15 15:24:54 +03:00
|
|
|
}
|
|
|
|
//FindBy
|
|
|
|
err = CreateFiles_FindBy(Table1)
|
|
|
|
if err != nil {
|
|
|
|
log.Error("CreateFiles_FindBy() table: ", Table1.Name, " error: ", err)
|
|
|
|
return err
|
|
|
|
}
|
2024-08-14 17:31:08 +03:00
|
|
|
|
2024-10-15 15:24:54 +03:00
|
|
|
//
|
|
|
|
err = CreateFiles_FindBy_Test(Table1)
|
|
|
|
if err != nil {
|
|
|
|
log.Error("CreateFiles_FindBy_Test() table: ", Table1.Name, " error: ", err)
|
|
|
|
return err
|
|
|
|
}
|
2024-08-14 17:31:08 +03:00
|
|
|
|
2024-10-15 15:24:54 +03:00
|
|
|
//FindMassBy
|
|
|
|
err = CreateFiles_FindMassBy(Table1)
|
|
|
|
if err != nil {
|
|
|
|
log.Error("CreateFiles_FindMassBy() table: ", Table1.Name, " error: ", err)
|
|
|
|
return err
|
|
|
|
}
|
2024-09-17 14:41:37 +03:00
|
|
|
|
2024-10-15 15:24:54 +03:00
|
|
|
//
|
|
|
|
err = CreateFiles_FindMassBy_Test(Table1)
|
|
|
|
if err != nil {
|
|
|
|
log.Error("CreateFiles_FindMassBy_Test() table: ", Table1.Name, " error: ", err)
|
|
|
|
return err
|
|
|
|
}
|
2024-08-15 10:46:55 +03:00
|
|
|
|
2024-10-15 15:24:54 +03:00
|
|
|
//ReadAll
|
|
|
|
err = CreateFiles_ReadAll(Table1)
|
|
|
|
if err != nil {
|
|
|
|
log.Error("CreateFiles_FindMassBy() table: ", Table1.Name, " error: ", err)
|
|
|
|
return err
|
|
|
|
}
|
2024-09-17 14:41:37 +03:00
|
|
|
|
2024-10-15 15:24:54 +03:00
|
|
|
//
|
|
|
|
err = CreateFiles_ReadAll_Test(Table1)
|
|
|
|
if err != nil {
|
|
|
|
log.Error("CreateFiles_FindMassBy_Test() table: ", Table1.Name, " error: ", err)
|
|
|
|
return err
|
|
|
|
}
|
2024-08-15 10:46:55 +03:00
|
|
|
|
2024-10-15 15:24:54 +03:00
|
|
|
//FindModelBy
|
|
|
|
err = CreateFiles_FindModelBy(MapAll, Table1)
|
|
|
|
if err != nil {
|
|
|
|
log.Error("CreateFiles_FindMassBy() table: ", Table1.Name, " error: ", err)
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
|
|
|
//
|
|
|
|
err = CreateFiles_FindModelBy_Test(MapAll, Table1)
|
|
|
|
if err != nil {
|
|
|
|
log.Error("CreateFiles_FindMassBy_Test() 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
|
|
|
|
}
|
|
|
|
|
2024-04-02 11:54:01 +03:00
|
|
|
// RenameFunctions - заменяет названия функций, на названия из файла
|
2024-01-09 13:48:10 +03:00
|
|
|
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 {
|
2024-04-03 10:45:20 +03:00
|
|
|
Otvet = strings.ReplaceAll(Otvet, "func "+v.Old+"(", "func "+v.New+"(")
|
2024-01-09 13:48:10 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
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
|
|
|
|
}
|