1
0
mirror of https://github.com/ManyakRus/crud_generator.git synced 2024-12-22 00:36:41 +02:00

сделал CreateFilesUpdateEveryColumn()

This commit is contained in:
Nikitin Aleksandr 2024-02-13 17:43:47 +03:00
parent 119710afec
commit 33b784ca4f
7 changed files with 428 additions and 86 deletions

View File

@ -173,4 +173,10 @@ TEMPLATES_CRUD_FILENAME="crud_tables_rapira.go_"
TEMPLATES_CRUD_TEST_FILENAME="crud_tables_rapira_test.go_" TEMPLATES_CRUD_TEST_FILENAME="crud_tables_rapira_test.go_"
#NEED_CREATE_UPDATE_EVERY_COLUMN - fill true if you want create Update_ColumnName() function for every column #NEED_CREATE_UPDATE_EVERY_COLUMN - fill true if you want create Update_ColumnName() function for every column
NEED_CREATE_UPDATE_EVERY_COLUMN=true NEED_CREATE_UPDATE_EVERY_COLUMN=true
#TEMPLATES_CRUD_TABLE_UPDATE_FUNC_FILENAME - short filename of "crud_table_update_func.go_" file
TEMPLATES_CRUD_TABLE_UPDATE_FUNC_FILENAME="crud_table_update_func.go_"
#TEMPLATES_CRUD_TABLE_UPDATE_FUNC_TEST_FILENAME - short filename of "crud_table_update_func_test.go_" file
TEMPLATES_CRUD_TABLE_UPDATE_FUNC_TEST_FILENAME="crud_table_update_func_test.go_"

View File

@ -0,0 +1,40 @@
// Read - изменяет 1 поле Name в базе данных
func (crud Crud_DB) Read(m *lawsuit_status_types.LawsuitStatusType) error {
var err error
ctxMain := contextmain.GetContext()
ctx, ctxCancelFunc := context.WithTimeout(ctxMain, time.Second*time.Duration(constants.TIMEOUT_DB_SECONDS))
defer ctxCancelFunc()
err = crud.Read_ctx(ctx, m)
return err
}
// Read_ctx - изменяет 1 поле Name в базе данных
func (crud Crud_DB) Read_ctx(ctx context.Context, m *lawsuit_status_types.LawsuitStatusType) error {
var err error
if micro.ContextDone(ctx) == true {
err = context.Canceled
return err
}
//ID не должен быть =0
if m.ID == 0 {
err = errors.New("Read() error: ID=0")
return err
}
//
db := postgres_gorm.GetConnection()
db.WithContext(ctx)
//
tx := db.Model(&m).Update("Name", m.ID)
err = tx.Error
if err != nil {
err = fmt.Errorf("Read() id: %v, error: %v", m.ID, err)
}
return err
}

View File

@ -0,0 +1,16 @@
func TestRead(t *testing.T) {
config_main.LoadEnv()
postgres_gorm.Connect()
defer postgres_gorm.CloseConnection()
crud := Crud_DB{}
Otvet := lawsuit_status_types.LawsuitStatusType{}
Otvet.ID = Postgres_ID_Test
Otvet.ColumnName = DefaultValue
err := crud.Read(&Otvet)
if err != nil {
t.Error("TestRead() error: ", err)
}
}

View File

@ -14,62 +14,64 @@ var Settings SettingsINI
// SettingsINI - структура для хранения всех нужных переменных окружения // SettingsINI - структура для хранения всех нужных переменных окружения
type SettingsINI struct { type SettingsINI struct {
INCLUDE_TABLES string INCLUDE_TABLES string
EXCLUDE_TABLES string EXCLUDE_TABLES string
TEMPLATE_FOLDERNAME string TEMPLATE_FOLDERNAME string
TEMPLATE_FOLDERNAME_MODEL string TEMPLATE_FOLDERNAME_MODEL string
TEMPLATE_FOLDERNAME_DB string TEMPLATE_FOLDERNAME_DB string
TEMPLATE_FOLDERNAME_CRUD string TEMPLATE_FOLDERNAME_CRUD string
TEMPLATE_FOLDERNAME_TABLES string TEMPLATE_FOLDERNAME_TABLES string
TEMPLATE_FOLDERNAME_GRPC string TEMPLATE_FOLDERNAME_GRPC string
TEMPLATE_FOLDERNAME_GRPC_PROTO string TEMPLATE_FOLDERNAME_GRPC_PROTO string
TEMPLATE_FOLDERNAME_GRPC_SERVER string TEMPLATE_FOLDERNAME_GRPC_SERVER string
TEMPLATE_FOLDERNAME_GRPC_CLIENT string TEMPLATE_FOLDERNAME_GRPC_CLIENT string
TEMPLATE_FOLDERNAME_NRPC string TEMPLATE_FOLDERNAME_NRPC string
TEMPLATE_FOLDERNAME_NRPC_SERVER string TEMPLATE_FOLDERNAME_NRPC_SERVER string
TEMPLATE_FOLDERNAME_NRPC_CLIENT string TEMPLATE_FOLDERNAME_NRPC_CLIENT string
TEMPLATE_FOLDERNAME_GRPC_NRPC string TEMPLATE_FOLDERNAME_GRPC_NRPC string
TEMPLATE_SERVICE_NAME string TEMPLATE_SERVICE_NAME string
TEMPLATE_FOLDERNAME_CRUD_STARTER string TEMPLATE_FOLDERNAME_CRUD_STARTER string
TEMPLATE_FOLDERNAME_ALIAS string TEMPLATE_FOLDERNAME_ALIAS string
TEMPLATE_FOLDER_CRUD_FUNCTIONS string TEMPLATE_FOLDER_CRUD_FUNCTIONS string
TEMPLATE_FOLDERNAME_MAIN string TEMPLATE_FOLDERNAME_MAIN string
TEMPLATE_REPOSITORY_URL string TEMPLATE_REPOSITORY_URL string
TEMPLATE_EXTERNAL_PROTO_FILENAME string TEMPLATE_EXTERNAL_PROTO_FILENAME string
TEMPLATES_CRUD_FILENAME string TEMPLATES_CRUD_FILENAME string
TEMPLATES_CRUD_TEST_FILENAME string TEMPLATES_CRUD_TEST_FILENAME string
TEMPLATES_ALIAS_FILENAME string TEMPLATES_ALIAS_FILENAME string
NEED_CREATE_MODEL_STRUCT bool TEMPLATES_CRUD_TABLE_UPDATE_FUNC_FILENAME string
NEED_CREATE_MODEL_CRUD bool TEMPLATES_CRUD_TABLE_UPDATE_FUNC_TEST_FILENAME string
NEED_CREATE_DB bool NEED_CREATE_MODEL_STRUCT bool
NEED_CREATE_DB_TEST bool NEED_CREATE_MODEL_CRUD bool
NEED_CREATE_DB_TABLES bool NEED_CREATE_DB bool
NEED_CREATE_GRPC bool NEED_CREATE_DB_TEST bool
NEED_CREATE_GRPC_SERVER_TEST bool NEED_CREATE_DB_TABLES bool
NEED_CREATE_GRPC_CLIENT_TEST bool NEED_CREATE_GRPC bool
NEED_CREATE_NRPC bool NEED_CREATE_GRPC_SERVER_TEST bool
NEED_CREATE_NRPC_SERVER_TEST bool NEED_CREATE_GRPC_CLIENT_TEST bool
NEED_CREATE_NRPC_CLIENT_TEST bool NEED_CREATE_NRPC bool
NEED_CREATE_MANUAL_FILES bool NEED_CREATE_NRPC_SERVER_TEST bool
SERVICE_NAME string NEED_CREATE_NRPC_CLIENT_TEST bool
SERVICE_REPOSITORY_URL string NEED_CREATE_MANUAL_FILES bool
TEXT_TEMPLATE_MODEL string SERVICE_NAME string
TEXT_TEMPLATE_TABLENAME string SERVICE_REPOSITORY_URL string
HAS_IS_DELETED bool TEXT_TEMPLATE_MODEL string
READY_FOLDERNAME string TEXT_TEMPLATE_TABLENAME string
TEXT_DB_MODIFIED_AT string HAS_IS_DELETED bool
TEXT_DB_CREATED_AT string READY_FOLDERNAME string
TEXT_DB_IS_DELETED string TEXT_DB_MODIFIED_AT string
USE_DEFAULT_TEMPLATE bool TEXT_DB_CREATED_AT string
PREFIX_SERVER_GRPC string TEXT_DB_IS_DELETED string
PREFIX_CLIENT_GRPC string USE_DEFAULT_TEMPLATE bool
PREFIX_CRUD string PREFIX_SERVER_GRPC string
PREFIX_MODEL string PREFIX_CLIENT_GRPC string
PREFIX_TABLE string PREFIX_CRUD string
COMMENT_MODEL_STRUCT string PREFIX_MODEL string
TEXT_MODULE_GENERATED string PREFIX_TABLE string
READY_ALIAS_FILENAME string COMMENT_MODEL_STRUCT string
NEED_CREATE_UPDATE_EVERY_COLUMN bool TEXT_MODULE_GENERATED string
READY_ALIAS_FILENAME string
NEED_CREATE_UPDATE_EVERY_COLUMN bool
} }
// FillSettings загружает переменные окружения в структуру из переменных окружения // FillSettings загружает переменные окружения в структуру из переменных окружения
@ -181,6 +183,8 @@ func FillSettings() {
Settings.READY_ALIAS_FILENAME = os.Getenv("READY_ALIAS_FILENAME") Settings.READY_ALIAS_FILENAME = os.Getenv("READY_ALIAS_FILENAME")
Settings.NEED_CREATE_UPDATE_EVERY_COLUMN = BoolFromString(os.Getenv("NEED_CREATE_UPDATE_EVERY_COLUMN")) Settings.NEED_CREATE_UPDATE_EVERY_COLUMN = BoolFromString(os.Getenv("NEED_CREATE_UPDATE_EVERY_COLUMN"))
Settings.PREFIX_CLIENT_GRPC = os.Getenv("PREFIX_CLIENT_GRPC") Settings.PREFIX_CLIENT_GRPC = os.Getenv("PREFIX_CLIENT_GRPC")
Settings.TEMPLATES_CRUD_TABLE_UPDATE_FUNC_FILENAME = os.Getenv("TEMPLATES_CRUD_TABLE_UPDATE_FUNC_FILENAME")
Settings.TEMPLATES_CRUD_TABLE_UPDATE_FUNC_TEST_FILENAME = os.Getenv("TEMPLATES_CRUD_TABLE_UPDATE_FUNC_TEST_FILENAME")
} }

View File

@ -456,6 +456,8 @@ func FindTextDefaultValue(Type_go string) string {
Otvet = "0" Otvet = "0"
case "time.Time": case "time.Time":
Otvet = "time.Time{}" Otvet = "time.Time{}"
case "bool":
Otvet = "false"
} }
return Otvet return Otvet
@ -841,7 +843,7 @@ func DeleteEmptyLines(Text string) string {
Otvet = strings.ReplaceAll(Otvet, "\n\t//\n\n", "\n\n") Otvet = strings.ReplaceAll(Otvet, "\n\t//\n\n", "\n\n")
//Otvet = strings.ReplaceAll(Otvet, "\r\r", "\r") //Otvet = strings.ReplaceAll(Otvet, "\r\r", "\r")
//Otvet = strings.ReplaceAll(Otvet, "\r\n", "\n") //Otvet = strings.ReplaceAll(Otvet, "\r\n", "\n")
Otvet = strings.ReplaceAll(Otvet, "}\n\n", "}\n") //Otvet = strings.ReplaceAll(Otvet, "}\n\n", "}\n")
pos1 := strings.Index(Otvet, "\n\n\n") pos1 := strings.Index(Otvet, "\n\n\n")
if pos1 >= 0 { if pos1 >= 0 {
Otvet = DeleteEmptyLines(Otvet) Otvet = DeleteEmptyLines(Otvet)

View File

@ -10,6 +10,7 @@ import (
"github.com/ManyakRus/starter/log" "github.com/ManyakRus/starter/log"
"github.com/ManyakRus/starter/micro" "github.com/ManyakRus/starter/micro"
"os" "os"
"sort"
"strings" "strings"
) )
@ -33,6 +34,7 @@ func CreateAllFiles(MapAll map[string]*types.Table) error {
return err return err
} }
} }
//тестовые файлы db //тестовые файлы db
if config.Settings.NEED_CREATE_DB_TEST == true { if config.Settings.NEED_CREATE_DB_TEST == true {
err = CreateTestFiles(Table1) err = CreateTestFiles(Table1)
@ -41,6 +43,22 @@ func CreateAllFiles(MapAll map[string]*types.Table) error {
return err return err
} }
} }
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
err = CreateTestFilesUpdateEveryColumn(Table1)
if err != nil {
log.Error("CreateTestFiles() table: ", Table1.Name, " error: ", err)
return err
}
}
} }
return err return err
@ -436,3 +454,259 @@ func RenameFunctions(TextDB string, Table1 *types.Table) string {
return Otvet return Otvet
} }
// CreateFilesUpdateEveryColumn - создаёт 1 файл в папке grpc_client
func CreateFilesUpdateEveryColumn(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()
FilenameTemplateCrud := DirTemplatesCrud + config.Settings.TEMPLATES_CRUD_TABLE_UPDATE_FUNC_FILENAME
DirReadyTable := DirReadyCrud
FilenameReadyCrudUpdate := DirReadyTable + config.Settings.PREFIX_CRUD + TableName + "_update.go"
//создадим папку готовых файлов
folders.CreateFolder(DirReadyTable)
bytes, err := os.ReadFile(FilenameTemplateCrud)
if err != nil {
log.Panic("ReadFile() ", FilenameTemplateCrud, " error: ", err)
}
TextCrudUpdateFunc := string(bytes)
TextCrud := "package " + config.Settings.PREFIX_CRUD + TableName + "\n\n"
TextCrud = TextCrud + `import (
"context"
"fmt"
"time"
"github.com/ManyakRus/starter/contextmain"
"github.com/ManyakRus/starter/micro"
"github.com/ManyakRus/starter/postgres_gorm"
)
`
//заменим импорты
//if config.Settings.USE_DEFAULT_TEMPLATE == true {
DBConstantsURL := create_files.FindDBConstantsURL()
TextCrud = create_files.AddImport(TextCrud, DBConstantsURL)
ModelTableURL := create_files.FindModelTableURL(TableName)
TextCrud = create_files.AddImport(TextCrud, ModelTableURL)
TextCrud = create_files.ConvertIdToAlias(TextCrud, Table1)
//}
//создание текста
TextUpdateEveryColumn := FindTextUpdateEveryColumn(TextCrudUpdateFunc, Table1)
// пустой файл не нужен
if TextUpdateEveryColumn == "" {
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 = config.Settings.TEXT_MODULE_GENERATED + TextCrud
//удаление пустого импорта
TextCrud = create_files.DeleteEmptyImport(TextCrud)
TextCrud = create_files.DeleteEmptyLines(TextCrud)
//запись файла
err = os.WriteFile(FilenameReadyCrudUpdate, []byte(TextCrud), constants.FILE_PERMISSIONS)
return err
}
// FindTextUpdateEveryColumn - возвращает текст для всех таблиц
func FindTextUpdateEveryColumn(TextCrudUpdateFunc string, Table1 *types.Table) string {
Otvet := ""
//сортировка по названию таблиц
keys := make([]string, 0, len(Table1.MapColumns))
for k := range Table1.MapColumns {
keys = append(keys, k)
}
sort.Strings(keys)
//найдём новый текст для каждой таблицы
for _, key1 := range keys {
Column1, ok := Table1.MapColumns[key1]
if ok == false {
log.Panic("FindTextUpdateEveryColumn() Table1.MapColumns[key1] = false")
}
if create_files.Is_Common_Сolumn(Column1) == true {
continue
}
TextColumn1 := FindTextUpdateEveryColumn1(TextCrudUpdateFunc, Table1, Column1)
Otvet = Otvet + TextColumn1 + "\n\n"
}
return Otvet
}
// FindTextUpdateEveryColumn1 - возвращает текст для одной таблицы
func FindTextUpdateEveryColumn1(TextCrudUpdateFunc string, Table1 *types.Table, Column1 *types.Column) string {
Otvet := TextCrudUpdateFunc
ModelName := Table1.NameGo
ColumnName := Column1.NameGo
FuncName := "Update_" + ColumnName
TextRequest, TextRequestFieldName := create_files.FindTextProtobufRequest(Column1.TypeGo)
//заменяем Read_ctx()
Otvet = strings.ReplaceAll(Otvet, " Read_ctx ", " "+FuncName+"_ctx ")
Otvet = strings.ReplaceAll(Otvet, " Read_ctx(", " "+FuncName+"_ctx(")
Otvet = strings.ReplaceAll(Otvet, ".Read_ctx(", "."+FuncName+"_ctx(")
//заменяем Read()
Otvet = strings.ReplaceAll(Otvet, config.Settings.TEXT_TEMPLATE_MODEL+"_Read", ModelName+"_"+FuncName)
Otvet = strings.ReplaceAll(Otvet, " Read ", " "+FuncName+" ")
Otvet = strings.ReplaceAll(Otvet, " Read(", " "+FuncName+"(")
Otvet = strings.ReplaceAll(Otvet, `"Read()`, `"`+FuncName+"()")
Otvet = strings.ReplaceAll(Otvet, config.Settings.TEXT_TEMPLATE_MODEL, ModelName)
Otvet = strings.ReplaceAll(Otvet, config.Settings.TEXT_TEMPLATE_TABLENAME, Table1.Name)
Otvet = strings.ReplaceAll(Otvet, "grpc_proto.RequestId", "grpc_proto."+TextRequest)
Otvet = strings.ReplaceAll(Otvet, "ColumnName", ColumnName)
Otvet = strings.ReplaceAll(Otvet, "Model.ID", "Model."+ColumnName)
Otvet = strings.ReplaceAll(Otvet, "Request.ID", "Request."+TextRequestFieldName)
Otvet = strings.ReplaceAll(Otvet, " Name ", " "+ColumnName+" ")
Otvet = strings.ReplaceAll(Otvet, `"Name"`, `"`+ColumnName+`"`)
//Otvet = strings.ReplaceAll(Otvet, "m.ID", "m."+ColumnName)
return Otvet
}
// CreateTestFilesUpdateEveryColumn - создаёт 1 файл в папке grpc_client
func CreateTestFilesUpdateEveryColumn(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()
FilenameTemplateCrud := DirTemplatesCrud + config.Settings.TEMPLATES_CRUD_TABLE_UPDATE_FUNC_TEST_FILENAME
DirReadyTable := DirReadyCrud
FilenameReadyCrudUpdate := DirReadyTable + config.Settings.PREFIX_CRUD + TableName + "_update_test.go"
//создадим папку готовых файлов
folders.CreateFolder(DirReadyTable)
bytes, err := os.ReadFile(FilenameTemplateCrud)
if err != nil {
log.Panic("ReadFile() ", FilenameTemplateCrud, " error: ", err)
}
TextCrudUpdateFunc := string(bytes)
TextCrud := "package " + config.Settings.PREFIX_CRUD + TableName + "\n\n"
TextCrud = TextCrud + `import (
"testing"
"errors"
"github.com/ManyakRus/starter/config_main"
"github.com/ManyakRus/starter/postgres_gorm"
)
`
//заменим импорты
//if config.Settings.USE_DEFAULT_TEMPLATE == true {
ModelTableURL := create_files.FindModelTableURL(TableName)
TextCrud = create_files.AddImport(TextCrud, ModelTableURL)
TextCrud = create_files.ConvertIdToAlias(TextCrud, Table1)
//}
//создание текста
TextUpdateEveryColumn := FindTextUpdateEveryColumnTest(TextCrudUpdateFunc, Table1)
// пустой файл не нужен
if TextUpdateEveryColumn == "" {
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 = config.Settings.TEXT_MODULE_GENERATED + TextCrud
//удаление пустого импорта
TextCrud = create_files.DeleteEmptyImport(TextCrud)
TextCrud = create_files.DeleteEmptyLines(TextCrud)
//запись файла
err = os.WriteFile(FilenameReadyCrudUpdate, []byte(TextCrud), constants.FILE_PERMISSIONS)
return err
}
// FindTextUpdateEveryColumnTest - возвращает текст для всех таблиц
func FindTextUpdateEveryColumnTest(TextCrudUpdateFunc string, Table1 *types.Table) string {
Otvet := ""
//сортировка по названию таблиц
keys := make([]string, 0, len(Table1.MapColumns))
for k := range Table1.MapColumns {
keys = append(keys, k)
}
sort.Strings(keys)
//найдём новый текст для каждой таблицы
for _, key1 := range keys {
Column1, ok := Table1.MapColumns[key1]
if ok == false {
log.Panic("FindTextUpdateEveryColumnTest() Table1.MapColumns[key1] = false")
}
if create_files.Is_Common_Сolumn(Column1) == true {
continue
}
TextColumn1 := FindTextUpdateEveryColumnTest1(TextCrudUpdateFunc, Table1, Column1)
Otvet = Otvet + TextColumn1 + "\n\n"
}
return Otvet
}
// FindTextUpdateEveryColumnTest1 - возвращает текст для одной таблицы
func FindTextUpdateEveryColumnTest1(TextCrudUpdateFunc string, Table1 *types.Table, Column1 *types.Column) string {
Otvet := TextCrudUpdateFunc
ModelName := Table1.NameGo
ColumnName := Column1.NameGo
FuncName := "Update_" + ColumnName
TextRequest, TextRequestFieldName := create_files.FindTextProtobufRequest(Column1.TypeGo)
DefaultValue := create_files.FindTextDefaultValue(Column1.TypeGo)
Otvet = strings.ReplaceAll(Otvet, " TestCrud_GRPC_Read(", " TestCrud_GRPC_"+FuncName+"(")
Otvet = strings.ReplaceAll(Otvet, config.Settings.TEXT_TEMPLATE_TABLENAME, Table1.Name)
Otvet = strings.ReplaceAll(Otvet, config.Settings.TEXT_TEMPLATE_MODEL, ModelName)
Otvet = strings.ReplaceAll(Otvet, "grpc_proto.RequestId", "grpc_proto."+TextRequest)
Otvet = strings.ReplaceAll(Otvet, "ColumnName", ColumnName)
Otvet = strings.ReplaceAll(Otvet, "Model.ID", "Model."+ColumnName)
Otvet = strings.ReplaceAll(Otvet, "Request.ID", "Request."+TextRequestFieldName)
Otvet = strings.ReplaceAll(Otvet, "Otvet.Name", "Otvet."+ColumnName)
//Otvet = strings.ReplaceAll(Otvet, "Postgres_ID_Test", DefaultValue)
Otvet = strings.ReplaceAll(Otvet, "TestRead(", "Test"+FuncName+"(")
Otvet = strings.ReplaceAll(Otvet, ".Read(", "."+FuncName+"(")
Otvet = strings.ReplaceAll(Otvet, " DefaultValue", " "+DefaultValue)
return Otvet
}

View File

@ -117,7 +117,7 @@ func CreateFiles(Table1 *types.Table) error {
TextGRPCClient = config.Settings.TEXT_MODULE_GENERATED + TextGRPCClient TextGRPCClient = config.Settings.TEXT_MODULE_GENERATED + TextGRPCClient
if config.Settings.USE_DEFAULT_TEMPLATE == true { if config.Settings.USE_DEFAULT_TEMPLATE == true {
//TextGRPCServer = create_files.ReplaceServiceURLImports(TextGRPCServer) //TextGRPCClient = create_files.ReplaceServiceURLImports(TextGRPCClient)
TextGRPCClient = create_files.DeleteTemplateRepositoryImports(TextGRPCClient) TextGRPCClient = create_files.DeleteTemplateRepositoryImports(TextGRPCClient)
//proto //proto
@ -353,7 +353,7 @@ func DeleteFuncTestFind_byExtID(Text, ModelName string, Table1 *types.Table) str
return Otvet return Otvet
} }
// CreateFilesUpdateEveryColumn - создаёт 1 файл в папке grpc_server // CreateFilesUpdateEveryColumn - создаёт 1 файл в папке grpc_client
func CreateFilesUpdateEveryColumn(Table1 *types.Table) error { func CreateFilesUpdateEveryColumn(Table1 *types.Table) error {
var err error var err error
@ -377,9 +377,9 @@ func CreateFilesUpdateEveryColumn(Table1 *types.Table) error {
if err != nil { if err != nil {
log.Panic("ReadFile() ", FilenameTemplateGRPC_Client, " error: ", err) log.Panic("ReadFile() ", FilenameTemplateGRPC_Client, " error: ", err)
} }
TextGRPCServerUpdateFunc := string(bytes) TextGRPC_ClientUpdateFunc := string(bytes)
TextGRPC_Client := "package " + config.Settings.TEMPLATE_FOLDERNAME_GRPC + "\n\n" TextGRPC_Client := "package " + config.Settings.PREFIX_CLIENT_GRPC + TableName + "\n\n"
TextGRPC_Client = TextGRPC_Client + `import ( TextGRPC_Client = TextGRPC_Client + `import (
"context" "context"
"time" "time"
@ -412,7 +412,7 @@ func CreateFilesUpdateEveryColumn(Table1 *types.Table) error {
//} //}
//создание текста //создание текста
TextUpdateEveryColumn := FindTextUpdateEveryColumn(TextGRPCServerUpdateFunc, Table1) TextUpdateEveryColumn := FindTextUpdateEveryColumn(TextGRPC_ClientUpdateFunc, Table1)
// пустой файл не нужен // пустой файл не нужен
if TextUpdateEveryColumn == "" { if TextUpdateEveryColumn == "" {
return err return err
@ -436,7 +436,7 @@ func CreateFilesUpdateEveryColumn(Table1 *types.Table) error {
} }
// FindTextUpdateEveryColumn - возвращает текст для всех таблиц // FindTextUpdateEveryColumn - возвращает текст для всех таблиц
func FindTextUpdateEveryColumn(TextGRPCServerUpdateFunc string, Table1 *types.Table) string { func FindTextUpdateEveryColumn(TextGRPC_ClientUpdateFunc string, Table1 *types.Table) string {
Otvet := "" Otvet := ""
//сортировка по названию таблиц //сортировка по названию таблиц
@ -456,7 +456,7 @@ func FindTextUpdateEveryColumn(TextGRPCServerUpdateFunc string, Table1 *types.Ta
continue continue
} }
TextColumn1 := FindTextUpdateEveryColumn1(TextGRPCServerUpdateFunc, Table1, Column1) TextColumn1 := FindTextUpdateEveryColumn1(TextGRPC_ClientUpdateFunc, Table1, Column1)
Otvet = Otvet + TextColumn1 + "\n\n" Otvet = Otvet + TextColumn1 + "\n\n"
} }
@ -465,8 +465,8 @@ func FindTextUpdateEveryColumn(TextGRPCServerUpdateFunc string, Table1 *types.Ta
} }
// FindTextUpdateEveryColumn1 - возвращает текст для одной таблицы // FindTextUpdateEveryColumn1 - возвращает текст для одной таблицы
func FindTextUpdateEveryColumn1(TextGRPCServerUpdateFunc string, Table1 *types.Table, Column1 *types.Column) string { func FindTextUpdateEveryColumn1(TextGRPC_ClientUpdateFunc string, Table1 *types.Table, Column1 *types.Column) string {
Otvet := TextGRPCServerUpdateFunc Otvet := TextGRPC_ClientUpdateFunc
ModelName := Table1.NameGo ModelName := Table1.NameGo
ColumnName := Column1.NameGo ColumnName := Column1.NameGo
@ -488,7 +488,7 @@ func FindTextUpdateEveryColumn1(TextGRPCServerUpdateFunc string, Table1 *types.T
return Otvet return Otvet
} }
// CreateTestFilesUpdateEveryColumn - создаёт 1 файл в папке grpc_server // CreateTestFilesUpdateEveryColumn - создаёт 1 файл в папке grpc_client
func CreateTestFilesUpdateEveryColumn(Table1 *types.Table) error { func CreateTestFilesUpdateEveryColumn(Table1 *types.Table) error {
var err error var err error
@ -512,10 +512,10 @@ func CreateTestFilesUpdateEveryColumn(Table1 *types.Table) error {
if err != nil { if err != nil {
log.Panic("ReadFile() ", FilenameTemplateGRPC_Client, " error: ", err) log.Panic("ReadFile() ", FilenameTemplateGRPC_Client, " error: ", err)
} }
TextGRPCServerUpdateFunc := string(bytes) TextGRPC_ClientUpdateFunc := string(bytes)
TextGRPCClient := "package " + config.Settings.TEMPLATE_FOLDERNAME_GRPC + "\n\n" TextGRPC_Client := "package " + config.Settings.PREFIX_CLIENT_GRPC + TableName + "\n\n"
TextGRPCClient = TextGRPCClient + `import ( TextGRPC_Client = TextGRPC_Client + `import (
"testing" "testing"
"github.com/ManyakRus/starter/config_main" "github.com/ManyakRus/starter/config_main"
) )
@ -525,39 +525,39 @@ func CreateTestFilesUpdateEveryColumn(Table1 *types.Table) error {
//заменим импорты //заменим импорты
//if config.Settings.USE_DEFAULT_TEMPLATE == true { //if config.Settings.USE_DEFAULT_TEMPLATE == true {
GRPCClientURL := create_files.FindGRPClientURL() GRPCClientURL := create_files.FindGRPClientURL()
TextGRPCClient = create_files.AddImport(TextGRPCClient, GRPCClientURL) TextGRPC_Client = create_files.AddImport(TextGRPC_Client, GRPCClientURL)
ModelTableURL := create_files.FindModelTableURL(TableName) ModelTableURL := create_files.FindModelTableURL(TableName)
TextGRPCClient = create_files.AddImport(TextGRPCClient, ModelTableURL) TextGRPC_Client = create_files.AddImport(TextGRPC_Client, ModelTableURL)
TextGRPCClient = create_files.ConvertIdToAlias(TextGRPCClient, Table1) TextGRPC_Client = create_files.ConvertIdToAlias(TextGRPC_Client, Table1)
//} //}
//создание текста //создание текста
TextUpdateEveryColumn := FindTextUpdateEveryColumnTest(TextGRPCServerUpdateFunc, Table1) TextUpdateEveryColumn := FindTextUpdateEveryColumnTest(TextGRPC_ClientUpdateFunc, Table1)
// пустой файл не нужен // пустой файл не нужен
if TextUpdateEveryColumn == "" { if TextUpdateEveryColumn == "" {
return err return err
} }
//ModelName := Table1.NameGo //ModelName := Table1.NameGo
//TextGRPCClient = strings.ReplaceAll(TextGRPCClient, config.Settings.TEXT_TEMPLATE_MODEL, ModelName) //TextGRPC_Client = strings.ReplaceAll(TextGRPC_Client, config.Settings.TEXT_TEMPLATE_MODEL, ModelName)
//TextGRPCClient = strings.ReplaceAll(TextGRPCClient, config.Settings.TEXT_TEMPLATE_TABLENAME, Table1.Name) //TextGRPC_Client = strings.ReplaceAll(TextGRPC_Client, config.Settings.TEXT_TEMPLATE_TABLENAME, Table1.Name)
TextGRPCClient = TextGRPCClient + TextUpdateEveryColumn TextGRPC_Client = TextGRPC_Client + TextUpdateEveryColumn
TextGRPCClient = config.Settings.TEXT_MODULE_GENERATED + TextGRPCClient TextGRPC_Client = config.Settings.TEXT_MODULE_GENERATED + TextGRPC_Client
//удаление пустого импорта //удаление пустого импорта
TextGRPCClient = create_files.DeleteEmptyImport(TextGRPCClient) TextGRPC_Client = create_files.DeleteEmptyImport(TextGRPC_Client)
TextGRPCClient = create_files.DeleteEmptyLines(TextGRPCClient) TextGRPC_Client = create_files.DeleteEmptyLines(TextGRPC_Client)
//запись файла //запись файла
err = os.WriteFile(FilenameReadyGRPC_ClientUpdate, []byte(TextGRPCClient), constants.FILE_PERMISSIONS) err = os.WriteFile(FilenameReadyGRPC_ClientUpdate, []byte(TextGRPC_Client), constants.FILE_PERMISSIONS)
return err return err
} }
// FindTextUpdateEveryColumnTest - возвращает текст для всех таблиц // FindTextUpdateEveryColumnTest - возвращает текст для всех таблиц
func FindTextUpdateEveryColumnTest(TextGRPCServerUpdateFunc string, Table1 *types.Table) string { func FindTextUpdateEveryColumnTest(TextGRPC_ClientUpdateFunc string, Table1 *types.Table) string {
Otvet := "" Otvet := ""
//сортировка по названию таблиц //сортировка по названию таблиц
@ -577,7 +577,7 @@ func FindTextUpdateEveryColumnTest(TextGRPCServerUpdateFunc string, Table1 *type
continue continue
} }
TextColumn1 := FindTextUpdateEveryColumnTest1(TextGRPCServerUpdateFunc, Table1, Column1) TextColumn1 := FindTextUpdateEveryColumnTest1(TextGRPC_ClientUpdateFunc, Table1, Column1)
Otvet = Otvet + TextColumn1 + "\n\n" Otvet = Otvet + TextColumn1 + "\n\n"
} }
@ -586,8 +586,8 @@ func FindTextUpdateEveryColumnTest(TextGRPCServerUpdateFunc string, Table1 *type
} }
// FindTextUpdateEveryColumnTest1 - возвращает текст для одной таблицы // FindTextUpdateEveryColumnTest1 - возвращает текст для одной таблицы
func FindTextUpdateEveryColumnTest1(TextGRPCServerUpdateFunc string, Table1 *types.Table, Column1 *types.Column) string { func FindTextUpdateEveryColumnTest1(TextGRPC_ClientUpdateFunc string, Table1 *types.Table, Column1 *types.Column) string {
Otvet := TextGRPCServerUpdateFunc Otvet := TextGRPC_ClientUpdateFunc
ModelName := Table1.NameGo ModelName := Table1.NameGo
ColumnName := Column1.NameGo ColumnName := Column1.NameGo