mirror of
https://github.com/ManyakRus/crud_generator.git
synced 2025-01-03 01:22:21 +02:00
сделал NEED_CREATE_CACHE_API
This commit is contained in:
parent
1f672edd65
commit
55ca8fa57d
@ -214,3 +214,11 @@ TEMPLATES_GRPC_SERVER_TABLE_UPDATE_FILENAME="server_grpc_table_update.go_"
|
|||||||
#TEMPLATES_GRPC_SERVER_TABLE_UPDATE_TEST_FILENAME - short filename of "server_grpc_table_update_test.go_" file
|
#TEMPLATES_GRPC_SERVER_TABLE_UPDATE_TEST_FILENAME - short filename of "server_grpc_table_update_test.go_" file
|
||||||
TEMPLATES_GRPC_SERVER_TABLE_UPDATE_TEST_FILENAME="server_grpc_table_update_test.go_"
|
TEMPLATES_GRPC_SERVER_TABLE_UPDATE_TEST_FILENAME="server_grpc_table_update_test.go_"
|
||||||
|
|
||||||
|
#NEED_CREATE_CACHE_FUNCTIONS - need create ReadFromCache() .proto API
|
||||||
|
NEED_CREATE_CACHE_API=true
|
||||||
|
|
||||||
|
#NEED_CREATE_CACHE_FILES - need create "*_cache.go" files
|
||||||
|
NEED_CREATE_CACHE_FILES=true
|
||||||
|
|
||||||
|
#NEED_CREATE_CACHE_TEST_FILES - need create "*_cache_test.go" files
|
||||||
|
NEED_CREATE_CACHE_TEST_FILES=true
|
||||||
|
49
bin/templates/pkg/db/crud/crud_table_cache.go_
Normal file
49
bin/templates/pkg/db/crud/crud_table_cache.go_
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
package crud_lawsuit_status_types
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"github.com/ManyakRus/starter/contextmain"
|
||||||
|
"github.com/hashicorp/golang-lru/v2/expirable"
|
||||||
|
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/db/constants"
|
||||||
|
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/object_model/entities/lawsuit_status_types"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
// cache - кэш с данными
|
||||||
|
var cache *expirable.LRU[int64, lawsuit_status_types.LawsuitStatusType]
|
||||||
|
|
||||||
|
// CACHE_SIZE - количество элементо в кэше
|
||||||
|
const CACHE_SIZE = 100
|
||||||
|
|
||||||
|
// CACHE_EXPIRE_MINUTES - время жизни элемента в кэше
|
||||||
|
const CACHE_EXPIRE_MINUTES = 86400
|
||||||
|
|
||||||
|
// init - инициализация кэша
|
||||||
|
func init() {
|
||||||
|
cache = expirable.NewLRU[int64, lawsuit_status_types.LawsuitStatusType](CACHE_SIZE, nil, time.Minute*CACHE_EXPIRE_MINUTES)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ReadFromCache - находит запись в кеше или в БД по ID
|
||||||
|
func (crud Crud_DB) ReadFromCache(ID int64) (lawsuit_status_types.LawsuitStatusType, error) {
|
||||||
|
var Otvet lawsuit_status_types.LawsuitStatusType
|
||||||
|
var err error
|
||||||
|
|
||||||
|
// поищем сначала в кэше
|
||||||
|
Otvet, ok := cache.Get(ID)
|
||||||
|
if ok {
|
||||||
|
return Otvet, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// поищем в БД
|
||||||
|
ctxMain := contextmain.GetContext()
|
||||||
|
ctx, ctxCancelFunc := context.WithTimeout(ctxMain, time.Second*time.Duration(constants.TIMEOUT_DB_SECONDS))
|
||||||
|
defer ctxCancelFunc()
|
||||||
|
|
||||||
|
Otvet.ID = ID
|
||||||
|
err = crud.Read_ctx(ctx, &Otvet)
|
||||||
|
if err == nil {
|
||||||
|
cache.Add(ID, Otvet)
|
||||||
|
}
|
||||||
|
|
||||||
|
return Otvet, err
|
||||||
|
}
|
34
bin/templates/pkg/db/crud/crud_table_cache_test.go_
Normal file
34
bin/templates/pkg/db/crud/crud_table_cache_test.go_
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
package crud_lawsuit_status_types
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/ManyakRus/starter/config_main"
|
||||||
|
"github.com/ManyakRus/starter/postgres_gorm"
|
||||||
|
"reflect"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestReadFromCache(t *testing.T) {
|
||||||
|
var err error
|
||||||
|
|
||||||
|
config_main.LoadEnv()
|
||||||
|
postgres_gorm.Connect()
|
||||||
|
defer postgres_gorm.CloseConnection()
|
||||||
|
|
||||||
|
//читаем из БД
|
||||||
|
m1, err := Crud_DB{}.ReadFromCache(Postgres_ID_Test)
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("TestReadFromCache() error:t %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
//читаем из БД
|
||||||
|
m2, err := Crud_DB{}.ReadFromCache(Postgres_ID_Test)
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("TestReadFromCache() error:t %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
//сравниваем
|
||||||
|
if reflect.DeepEqual(m1, m2) != true {
|
||||||
|
t.Errorf("TestReadFromCache() error: m1 != m2")
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -41,7 +41,11 @@ func (crud Crud_DB) Read_ctx(ctx context.Context, m *lawsuit_status_types.Lawsui
|
|||||||
err = tx.Error
|
err = tx.Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
err = fmt.Errorf(m.TableNameDB()+" Read() id: %v, error: %v", m.ID, err)
|
err = fmt.Errorf(m.TableNameDB()+" Read() id: %v, error: %v", m.ID, err)
|
||||||
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//удалим из кэша
|
||||||
|
//cache.Remove(m.ID)
|
||||||
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -186,6 +186,9 @@ func (crud Crud_DB) create_update_ctx(ctx context.Context, m *lawsuit_status_typ
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//удалим из кэша
|
||||||
|
//cache.Remove(m.ID)
|
||||||
|
|
||||||
//запишем NULL в пустые колонки
|
//запишем NULL в пустые колонки
|
||||||
MapOmit := crud_functions.MapOmit_from_MassOmit(MassOmit)
|
MapOmit := crud_functions.MapOmit_from_MassOmit(MassOmit)
|
||||||
tx = db.Model(&m).Updates(MapOmit)
|
tx = db.Model(&m).Updates(MapOmit)
|
||||||
|
@ -186,6 +186,9 @@ func (crud Crud_DB) create_update_ctx(ctx context.Context, m *lawsuit_status_typ
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//удалим из кэша
|
||||||
|
//cache.Remove(m.ID)
|
||||||
|
|
||||||
//запишем NULL в пустые колонки
|
//запишем NULL в пустые колонки
|
||||||
MapOmit := crud_functions.MapOmit_from_MassOmit(MassOmit)
|
MapOmit := crud_functions.MapOmit_from_MassOmit(MassOmit)
|
||||||
tx = db.Model(&m).Updates(MapOmit)
|
tx = db.Model(&m).Updates(MapOmit)
|
||||||
|
@ -64,6 +64,9 @@ type SettingsINI struct {
|
|||||||
NEED_CREATE_NRPC_SERVER_TEST bool
|
NEED_CREATE_NRPC_SERVER_TEST bool
|
||||||
NEED_CREATE_NRPC_CLIENT_TEST bool
|
NEED_CREATE_NRPC_CLIENT_TEST bool
|
||||||
NEED_CREATE_MANUAL_FILES bool
|
NEED_CREATE_MANUAL_FILES bool
|
||||||
|
NEED_CREATE_CACHE_API bool
|
||||||
|
NEED_CREATE_CACHE_FILES bool
|
||||||
|
NEED_CREATE_CACHE_TEST_FILES bool
|
||||||
SERVICE_NAME string
|
SERVICE_NAME string
|
||||||
SERVICE_REPOSITORY_URL string
|
SERVICE_REPOSITORY_URL string
|
||||||
TEXT_TEMPLATE_MODEL string
|
TEXT_TEMPLATE_MODEL string
|
||||||
@ -449,6 +452,22 @@ func FillSettings() {
|
|||||||
Name = "TEMPLATES_GRPC_SERVER_TABLE_UPDATE_TEST_FILENAME"
|
Name = "TEMPLATES_GRPC_SERVER_TABLE_UPDATE_TEST_FILENAME"
|
||||||
s = Getenv(Name, true)
|
s = Getenv(Name, true)
|
||||||
Settings.TEMPLATES_GRPC_SERVER_TABLE_UPDATE_TEST_FILENAME = s
|
Settings.TEMPLATES_GRPC_SERVER_TABLE_UPDATE_TEST_FILENAME = s
|
||||||
|
|
||||||
|
//
|
||||||
|
Name = "NEED_CREATE_CACHE_API"
|
||||||
|
s = Getenv(Name, true)
|
||||||
|
Settings.NEED_CREATE_CACHE_API = BoolFromString(s)
|
||||||
|
|
||||||
|
//
|
||||||
|
Name = "NEED_CREATE_CACHE_FILES"
|
||||||
|
s = Getenv(Name, true)
|
||||||
|
Settings.NEED_CREATE_CACHE_FILES = BoolFromString(s)
|
||||||
|
|
||||||
|
//
|
||||||
|
Name = "NEED_CREATE_CACHE_TEST_FILES"
|
||||||
|
s = Getenv(Name, true)
|
||||||
|
Settings.NEED_CREATE_CACHE_TEST_FILES = BoolFromString(s)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// CurrentDirectory - возвращает текущую директорию ОС
|
// CurrentDirectory - возвращает текущую директорию ОС
|
||||||
|
@ -53,3 +53,7 @@ const SERVER_GRPC_TABLE_UPDATE_FUNC_TEST_FILENAME = "server_grpc_table_update_fu
|
|||||||
|
|
||||||
const GRPC_CLIENT_TABLE_UPDATE_FUNC_FILENAME = "grpc_client_table_update_func.go_"
|
const GRPC_CLIENT_TABLE_UPDATE_FUNC_FILENAME = "grpc_client_table_update_func.go_"
|
||||||
const GRPC_CLIENT_TABLE_UPDATE_FUNC_TEST_FILENAME = "grpc_client_table_update_func_test.go_"
|
const GRPC_CLIENT_TABLE_UPDATE_FUNC_TEST_FILENAME = "grpc_client_table_update_func_test.go_"
|
||||||
|
|
||||||
|
const CRUD_TABLES_CACHE_FILENAME = "crud_table_cache.go_"
|
||||||
|
const CRUD_TABLES_CACHE_TEST_FILENAME = "crud_table_cache_test.go_"
|
||||||
|
const TEXT_CACHE_REMOVE = "cache.Remove(m.ID)"
|
||||||
|
@ -1304,3 +1304,14 @@ func FindTextEqualEmpty(Column1 *types.Column, VariableName string) string {
|
|||||||
//
|
//
|
||||||
// return Otvet
|
// return Otvet
|
||||||
//}
|
//}
|
||||||
|
|
||||||
|
// FilenameWithoutLastUnderline - удаляет последний символ, если он = "_"
|
||||||
|
func FilenameWithoutLastUnderline(Filename string) string {
|
||||||
|
Otvet := Filename
|
||||||
|
|
||||||
|
if strings.HasSuffix(Filename, "_") == true {
|
||||||
|
Otvet = Filename[:len(Filename)-1]
|
||||||
|
}
|
||||||
|
|
||||||
|
return Otvet
|
||||||
|
}
|
||||||
|
@ -26,7 +26,7 @@ func CreateAllFiles(MapAll map[string]*types.Table) error {
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
//файлы db
|
//файлы crud
|
||||||
if config.Settings.NEED_CREATE_DB == true {
|
if config.Settings.NEED_CREATE_DB == true {
|
||||||
err = CreateFiles(Table1)
|
err = CreateFiles(Table1)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -35,7 +35,7 @@ func CreateAllFiles(MapAll map[string]*types.Table) error {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//тестовые файлы db
|
//тестовые файлы crud
|
||||||
if config.Settings.NEED_CREATE_DB_TEST == true {
|
if config.Settings.NEED_CREATE_DB_TEST == true {
|
||||||
err = CreateTestFiles(Table1)
|
err = CreateTestFiles(Table1)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -44,6 +44,7 @@ func CreateAllFiles(MapAll map[string]*types.Table) error {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//файлы UpdateEveryColumn
|
||||||
if config.Settings.NEED_CREATE_UPDATE_EVERY_COLUMN == true {
|
if config.Settings.NEED_CREATE_UPDATE_EVERY_COLUMN == true {
|
||||||
//файлы db update
|
//файлы db update
|
||||||
err = CreateFilesUpdateEveryColumn(Table1)
|
err = CreateFilesUpdateEveryColumn(Table1)
|
||||||
@ -59,6 +60,27 @@ func CreateAllFiles(MapAll map[string]*types.Table) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//файлы 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 {
|
||||||
|
log.Error("CreateTestFiles() table: ", Table1.Name, " error: ", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return err
|
return err
|
||||||
@ -128,6 +150,11 @@ func CreateFiles(Table1 *types.Table) error {
|
|||||||
TextDB = strings.ReplaceAll(TextDB, config.Settings.TEXT_TEMPLATE_TABLENAME, Table1.Name)
|
TextDB = strings.ReplaceAll(TextDB, config.Settings.TEXT_TEMPLATE_TABLENAME, Table1.Name)
|
||||||
TextDB = config.Settings.TEXT_MODULE_GENERATED + TextDB
|
TextDB = config.Settings.TEXT_MODULE_GENERATED + TextDB
|
||||||
|
|
||||||
|
//кэш
|
||||||
|
if config.Settings.NEED_CREATE_CACHE_API == true {
|
||||||
|
TextDB = strings.ReplaceAll(TextDB, `//`+constants.TEXT_CACHE_REMOVE, constants.TEXT_CACHE_REMOVE)
|
||||||
|
}
|
||||||
|
|
||||||
//TextDB = create_files.DeleteFuncFind_byExtID(TextDB, Table1)
|
//TextDB = create_files.DeleteFuncFind_byExtID(TextDB, Table1)
|
||||||
//TextDB = create_files.DeleteFuncFind_byExtIDCtx(TextDB, Table1)
|
//TextDB = create_files.DeleteFuncFind_byExtIDCtx(TextDB, Table1)
|
||||||
TextDB = AddTextOmit(TextDB, Table1)
|
TextDB = AddTextOmit(TextDB, Table1)
|
||||||
@ -461,7 +488,7 @@ func RenameFunctions(TextDB string, Table1 *types.Table) string {
|
|||||||
return Otvet
|
return Otvet
|
||||||
}
|
}
|
||||||
|
|
||||||
// CreateFilesUpdateEveryColumn - создаёт 1 файл в папке grpc_client
|
// CreateFilesUpdateEveryColumn - создаёт 1 файл в папке crud
|
||||||
func CreateFilesUpdateEveryColumn(Table1 *types.Table) error {
|
func CreateFilesUpdateEveryColumn(Table1 *types.Table) error {
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
@ -500,20 +527,6 @@ func CreateFilesUpdateEveryColumn(Table1 *types.Table) error {
|
|||||||
//заменим имя пакета на новое
|
//заменим имя пакета на новое
|
||||||
TextCrud = create_files.ReplacePackageName(TextCrud, DirReadyTable)
|
TextCrud = create_files.ReplacePackageName(TextCrud, DirReadyTable)
|
||||||
|
|
||||||
// TextCrud := "package " + config.Settings.PREFIX_CRUD + TableName + "\n\n"
|
|
||||||
// TextCrud = TextCrud + `import (
|
|
||||||
// "errors"
|
|
||||||
// "context"
|
|
||||||
// "fmt"
|
|
||||||
// "time"
|
|
||||||
// "gorm.io/gorm"
|
|
||||||
// "github.com/ManyakRus/starter/contextmain"
|
|
||||||
// "github.com/ManyakRus/starter/micro"
|
|
||||||
// "github.com/ManyakRus/starter/postgres_gorm"
|
|
||||||
//)
|
|
||||||
//
|
|
||||||
//`
|
|
||||||
|
|
||||||
//заменим импорты
|
//заменим импорты
|
||||||
if config.Settings.USE_DEFAULT_TEMPLATE == true {
|
if config.Settings.USE_DEFAULT_TEMPLATE == true {
|
||||||
TextCrud = create_files.DeleteTemplateRepositoryImports(TextCrud)
|
TextCrud = create_files.DeleteTemplateRepositoryImports(TextCrud)
|
||||||
@ -529,18 +542,20 @@ func CreateFilesUpdateEveryColumn(Table1 *types.Table) error {
|
|||||||
|
|
||||||
//создание текста
|
//создание текста
|
||||||
TextUpdateEveryColumn := FindTextUpdateEveryColumn(TextCrudUpdateFunc, Table1)
|
TextUpdateEveryColumn := FindTextUpdateEveryColumn(TextCrudUpdateFunc, Table1)
|
||||||
|
|
||||||
// пустой файл не нужен
|
// пустой файл не нужен
|
||||||
if TextUpdateEveryColumn == "" {
|
if TextUpdateEveryColumn == "" {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
//ModelName := Table1.NameGo
|
|
||||||
//TextCrud = strings.ReplaceAll(TextCrud, config.Settings.TEXT_TEMPLATE_MODEL, ModelName)
|
|
||||||
//TextCrud = strings.ReplaceAll(TextCrud, config.Settings.TEXT_TEMPLATE_TABLENAME, Table1.Name)
|
|
||||||
TextCrud = TextCrud + TextUpdateEveryColumn
|
TextCrud = TextCrud + TextUpdateEveryColumn
|
||||||
|
|
||||||
TextCrud = config.Settings.TEXT_MODULE_GENERATED + TextCrud
|
TextCrud = config.Settings.TEXT_MODULE_GENERATED + TextCrud
|
||||||
|
|
||||||
|
//кэш
|
||||||
|
if config.Settings.NEED_CREATE_CACHE_API == true {
|
||||||
|
TextCrud = strings.ReplaceAll(TextCrud, `//`+constants.TEXT_CACHE_REMOVE, constants.TEXT_CACHE_REMOVE)
|
||||||
|
}
|
||||||
|
|
||||||
//удаление пустого импорта
|
//удаление пустого импорта
|
||||||
TextCrud = create_files.DeleteEmptyImport(TextCrud)
|
TextCrud = create_files.DeleteEmptyImport(TextCrud)
|
||||||
|
|
||||||
@ -758,3 +773,125 @@ func FindTextUpdateEveryColumnTest1(TextCrudUpdateFunc string, Table1 *types.Tab
|
|||||||
|
|
||||||
return Otvet
|
return Otvet
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// CreateFilesCache - создаёт 1 файл "*_cache.go" в папке crud
|
||||||
|
func CreateFilesCache(Table1 *types.Table) error {
|
||||||
|
var err error
|
||||||
|
|
||||||
|
TableName := strings.ToLower(Table1.Name)
|
||||||
|
|
||||||
|
//чтение файлов
|
||||||
|
DirBin := micro.ProgramDir_bin()
|
||||||
|
DirTemplates := DirBin + config.Settings.TEMPLATE_FOLDERNAME + micro.SeparatorFile()
|
||||||
|
DirReady := DirBin + config.Settings.READY_FOLDERNAME + micro.SeparatorFile()
|
||||||
|
DirTemplatesCrud := DirTemplates + config.Settings.TEMPLATE_FOLDERNAME_CRUD + micro.SeparatorFile()
|
||||||
|
DirReadyCrud := DirReady + config.Settings.TEMPLATE_FOLDERNAME_CRUD + micro.SeparatorFile() + config.Settings.PREFIX_CRUD + TableName + micro.SeparatorFile()
|
||||||
|
|
||||||
|
FilenameTemplateCache := DirTemplatesCrud + constants.CRUD_TABLES_CACHE_FILENAME
|
||||||
|
DirReadyTable := DirReadyCrud
|
||||||
|
FilenameReadyCache := DirReadyTable + create_files.FilenameWithoutLastUnderline(constants.CRUD_TABLES_CACHE_FILENAME)
|
||||||
|
|
||||||
|
//создадим папку готовых файлов
|
||||||
|
folders.CreateFolder(DirReadyTable)
|
||||||
|
|
||||||
|
//читаем шаблон файла
|
||||||
|
bytes, err := os.ReadFile(FilenameTemplateCache)
|
||||||
|
if err != nil {
|
||||||
|
log.Panic("ReadFile() ", FilenameTemplateCache, " error: ", err)
|
||||||
|
}
|
||||||
|
TextCache := string(bytes)
|
||||||
|
|
||||||
|
//заменим имя пакета на новое
|
||||||
|
TextCache = create_files.ReplacePackageName(TextCache, DirReadyTable)
|
||||||
|
|
||||||
|
//заменим импорты
|
||||||
|
if config.Settings.USE_DEFAULT_TEMPLATE == true {
|
||||||
|
TextCache = create_files.DeleteTemplateRepositoryImports(TextCache)
|
||||||
|
|
||||||
|
DBConstantsURL := create_files.FindDBConstantsURL()
|
||||||
|
TextCache = create_files.AddImport(TextCache, DBConstantsURL)
|
||||||
|
|
||||||
|
ModelTableURL := create_files.FindModelTableURL(TableName)
|
||||||
|
TextCache = create_files.AddImport(TextCache, ModelTableURL)
|
||||||
|
|
||||||
|
//TextCache = create_files.ConvertIdToAlias(TextCache, Table1)
|
||||||
|
}
|
||||||
|
|
||||||
|
//замена слов
|
||||||
|
ModelName := Table1.NameGo
|
||||||
|
TextCache = strings.ReplaceAll(TextCache, config.Settings.TEXT_TEMPLATE_MODEL, ModelName)
|
||||||
|
TextCache = strings.ReplaceAll(TextCache, config.Settings.TEXT_TEMPLATE_TABLENAME, Table1.Name)
|
||||||
|
TextCache = config.Settings.TEXT_MODULE_GENERATED + TextCache
|
||||||
|
|
||||||
|
//удаление пустого импорта
|
||||||
|
TextCache = create_files.DeleteEmptyImport(TextCache)
|
||||||
|
|
||||||
|
//удаление пустых строк
|
||||||
|
TextCache = create_files.DeleteEmptyLines(TextCache)
|
||||||
|
|
||||||
|
//запись файла
|
||||||
|
err = os.WriteFile(FilenameReadyCache, []byte(TextCache), constants.FILE_PERMISSIONS)
|
||||||
|
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// CreateFilesCacheTest - создаёт 1 файл "*_cache_test.go" в папке crud
|
||||||
|
func CreateFilesCacheTest(Table1 *types.Table) error {
|
||||||
|
var err error
|
||||||
|
|
||||||
|
TableName := strings.ToLower(Table1.Name)
|
||||||
|
|
||||||
|
//чтение файлов
|
||||||
|
DirBin := micro.ProgramDir_bin()
|
||||||
|
DirTemplates := DirBin + config.Settings.TEMPLATE_FOLDERNAME + micro.SeparatorFile()
|
||||||
|
DirReady := DirBin + config.Settings.READY_FOLDERNAME + micro.SeparatorFile()
|
||||||
|
DirTemplatesCrud := DirTemplates + config.Settings.TEMPLATE_FOLDERNAME_CRUD + micro.SeparatorFile()
|
||||||
|
DirReadyCrud := DirReady + config.Settings.TEMPLATE_FOLDERNAME_CRUD + micro.SeparatorFile() + config.Settings.PREFIX_CRUD + TableName + micro.SeparatorFile()
|
||||||
|
|
||||||
|
FilenameTemplateCache := DirTemplatesCrud + constants.CRUD_TABLES_CACHE_TEST_FILENAME
|
||||||
|
DirReadyTable := DirReadyCrud
|
||||||
|
FilenameReadyCache := DirReadyTable + create_files.FilenameWithoutLastUnderline(constants.CRUD_TABLES_CACHE_TEST_FILENAME)
|
||||||
|
|
||||||
|
//создадим папку готовых файлов
|
||||||
|
folders.CreateFolder(DirReadyTable)
|
||||||
|
|
||||||
|
//читаем шаблон файла
|
||||||
|
bytes, err := os.ReadFile(FilenameTemplateCache)
|
||||||
|
if err != nil {
|
||||||
|
log.Panic("ReadFile() ", FilenameTemplateCache, " error: ", err)
|
||||||
|
}
|
||||||
|
TextCache := string(bytes)
|
||||||
|
|
||||||
|
//заменим имя пакета на новое
|
||||||
|
TextCache = create_files.ReplacePackageName(TextCache, DirReadyTable)
|
||||||
|
|
||||||
|
//заменим импорты
|
||||||
|
if config.Settings.USE_DEFAULT_TEMPLATE == true {
|
||||||
|
TextCache = create_files.DeleteTemplateRepositoryImports(TextCache)
|
||||||
|
|
||||||
|
DBConstantsURL := create_files.FindDBConstantsURL()
|
||||||
|
TextCache = create_files.AddImport(TextCache, DBConstantsURL)
|
||||||
|
|
||||||
|
ModelTableURL := create_files.FindModelTableURL(TableName)
|
||||||
|
TextCache = create_files.AddImport(TextCache, ModelTableURL)
|
||||||
|
|
||||||
|
//TextCache = create_files.ConvertIdToAlias(TextCache, Table1)
|
||||||
|
}
|
||||||
|
|
||||||
|
//замена слов
|
||||||
|
ModelName := Table1.NameGo
|
||||||
|
TextCache = strings.ReplaceAll(TextCache, config.Settings.TEXT_TEMPLATE_MODEL, ModelName)
|
||||||
|
TextCache = strings.ReplaceAll(TextCache, config.Settings.TEXT_TEMPLATE_TABLENAME, Table1.Name)
|
||||||
|
TextCache = config.Settings.TEXT_MODULE_GENERATED + TextCache
|
||||||
|
|
||||||
|
//удаление пустого импорта
|
||||||
|
TextCache = create_files.DeleteEmptyImport(TextCache)
|
||||||
|
|
||||||
|
//удаление пустых строк
|
||||||
|
TextCache = create_files.DeleteEmptyLines(TextCache)
|
||||||
|
|
||||||
|
//запись файла
|
||||||
|
err = os.WriteFile(FilenameReadyCache, []byte(TextCache), constants.FILE_PERMISSIONS)
|
||||||
|
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user