mirror of
https://github.com/ManyakRus/crud_generator.git
synced 2024-11-21 05:05:52 +02:00
сделал objects
This commit is contained in:
parent
1b7659ed48
commit
706e46cd05
@ -606,6 +606,13 @@ TEMPLATES_GRPC_CLIENT_TABLES_READOBJECT_FUNCTION_FILENAME="grpc_client_table_rea
|
||||
#TEMPLATES_GRPC_CLIENT_TABLES_READOBJECT_FUNCTION_TEST_FILENAME - short filename of "grpc_client_table_readobject_function_test.go_" file
|
||||
TEMPLATES_GRPC_CLIENT_TABLES_READOBJECT_FUNCTION_TEST_FILENAME="grpc_client_table_readobject_function_test.go_"
|
||||
|
||||
#STARTER_TABLES_READOBJECT_FILENAME - filename of "starter_tables_readobject.go_" file
|
||||
STARTER_TABLES_READOBJECT_FILENAME = "starter_tables_readobject.go_"
|
||||
|
||||
#STARTER_TABLES_READOBJECT_TEST_FILENAME - filename of "starter_tables_readobject_test.go_" file
|
||||
STARTER_TABLES_READOBJECT_TEST_FILENAME = "starter_tables_readobject_test.go_"
|
||||
|
||||
|
||||
|
||||
#-------------------------------------------TEXT DELETED--------------------------------------------
|
||||
#TEXT_DELETED_TABLE - text prefix for ignore this table
|
||||
|
12
bin/templates/pkg/crud_starter/starter_tables_readobject.go_
Normal file
12
bin/templates/pkg/crud_starter/starter_tables_readobject.go_
Normal file
@ -0,0 +1,12 @@
|
||||
package crud_starter_lawsuit_status_types
|
||||
|
||||
import (
|
||||
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/object_model/objects/object_lawsuit_status_types"
|
||||
)
|
||||
|
||||
// SetCrudManualInterface - заполняет интерфейс crud: DB, GRPC, NRPC
|
||||
func SetCrudReadObjectInterface(crud object_lawsuit_status_types.ICrud_ObjectLawsuitStatusType) {
|
||||
object_lawsuit_status_types.Crud_ObjectLawsuitStatusType = crud
|
||||
|
||||
return
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
package starter_crud_starter_lawsuit_status_types
|
||||
|
||||
import (
|
||||
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/db/crud/crud_object_lawsuit_status_types"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestSetCrudInterface(t *testing.T) {
|
||||
crud := crud_object_lawsuit_status_types.Crud_DB{}
|
||||
|
||||
SetCrudInterface(crud)
|
||||
}
|
@ -0,0 +1,58 @@
|
||||
package grpc_lawsuit_status_types
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/api/grpc_proto"
|
||||
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/network/grpc/grpc_constants"
|
||||
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/db/constants"
|
||||
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/network/grpc/grpc_client"
|
||||
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/network/nrpc/nrpc_client"
|
||||
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/object_model/objects/object_lawsuit_status_types"
|
||||
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/network/grpc_nrpc"
|
||||
"github.com/ManyakRus/starter/log"
|
||||
"time"
|
||||
)
|
||||
|
||||
// ReadObject - возвращает модель из БД, и все модели имеющие foreign key
|
||||
func (crud Crud_GRPC) ReadObject(m *object_lawsuit_status_types.ObjectLawsuitStatusType) error {
|
||||
var err error
|
||||
|
||||
// подключение
|
||||
grpc_client_func.Func_Connect_GRPC_NRPC.Connect_GRPC_NRPC()
|
||||
|
||||
// подготовка запроса
|
||||
var versionModel = crud.GetVersionModel()
|
||||
|
||||
Request := &grpc_proto.RequestId{}
|
||||
Request.ID = ProtoFromInt(m.ID)
|
||||
Request.VersionModel = versionModel
|
||||
|
||||
ctxMain := context.Background()
|
||||
ctx, ctxCancelFunc := context.WithTimeout(ctxMain, time.Second*time.Duration(grpc_constants.GetTimeoutSeconds()))
|
||||
defer ctxCancelFunc()
|
||||
|
||||
// запрос
|
||||
var Response *grpc_proto.Response
|
||||
if grpc_nrpc.NeedNRPC == true {
|
||||
Response, err = nrpc_client.Client.LawsuitStatusType_ReadObject(Request)
|
||||
} else {
|
||||
Response, err = grpc_client_func.Client.LawsuitStatusType_ReadObject(ctx, Request)
|
||||
}
|
||||
if err != nil {
|
||||
if grpc_client_func.IsErrorModelVersion(err) == true {
|
||||
log.Panic(err)
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
// ответ
|
||||
sModel := Response.ModelString
|
||||
err = json.Unmarshal([]byte(sModel), m)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return err
|
||||
}
|
||||
|
@ -0,0 +1,28 @@
|
||||
package grpc_lawsuit_status_types
|
||||
|
||||
import (
|
||||
"github.com/ManyakRus/starter/config_main"
|
||||
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/network/grpc/grpc_client"
|
||||
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/network/grpc/grpc_client/grpc_lawsuit_status_types"
|
||||
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/object_model/objects/object_lawsuit_status_types"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestReadObject(t *testing.T) {
|
||||
config_main.LoadEnv()
|
||||
grpc_client.Connect()
|
||||
defer grpc_client.CloseConnection()
|
||||
|
||||
crud := grpc_lawsuit_status_types.Crud_GRPC{}
|
||||
Otvet := object_lawsuit_status_types.ObjectLawsuitStatusType{}
|
||||
Otvet.ID = Postgres_ID_Test
|
||||
err := crud.ReadObject(&Otvet)
|
||||
|
||||
if err != nil {
|
||||
t.Error("TestReadObject() error: ", err)
|
||||
}
|
||||
|
||||
if IntFromAlias(Otvet.ID) == 0 {
|
||||
t.Error("TestReadObject() error: ID =0")
|
||||
}
|
||||
}
|
@ -246,6 +246,9 @@ type SettingsINI struct {
|
||||
TEMPLATES_GRPC_CLIENT_TABLES_READOBJECT_FUNCTION_FILENAME string
|
||||
TEMPLATES_GRPC_CLIENT_TABLES_READOBJECT_FUNCTION_TEST_FILENAME string
|
||||
|
||||
STARTER_TABLES_READOBJECT_FILENAME string
|
||||
STARTER_TABLES_READOBJECT_TEST_FILENAME string
|
||||
|
||||
//Text DELETED
|
||||
TEXT_DELETED_TABLE string
|
||||
TEXT_DELETED_TABLE_RUS string
|
||||
@ -1299,6 +1302,16 @@ func FillSettings() {
|
||||
s = Getenv(Name, true)
|
||||
Settings.SUFFIX_CRUD = s
|
||||
|
||||
//
|
||||
Name = "STARTER_TABLES_READOBJECT_FILENAME"
|
||||
s = Getenv(Name, true)
|
||||
Settings.STARTER_TABLES_READOBJECT_FILENAME = s
|
||||
|
||||
//
|
||||
Name = "STARTER_TABLES_READOBJECT_TEST_FILENAME"
|
||||
s = Getenv(Name, true)
|
||||
Settings.STARTER_TABLES_READOBJECT_TEST_FILENAME = s
|
||||
|
||||
}
|
||||
|
||||
// CurrentDirectory - возвращает текущую директорию ОС
|
||||
|
@ -2,15 +2,8 @@ package crud_starter
|
||||
|
||||
import (
|
||||
"github.com/ManyakRus/crud_generator/internal/config"
|
||||
"github.com/ManyakRus/crud_generator/internal/create_files"
|
||||
"github.com/ManyakRus/crud_generator/internal/folders"
|
||||
"github.com/ManyakRus/crud_generator/internal/types"
|
||||
"github.com/ManyakRus/starter/log"
|
||||
"github.com/ManyakRus/starter/micro"
|
||||
|
||||
"os"
|
||||
"sort"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// CreateAllFiles - создаёт все файлы в папке crud_starter
|
||||
@ -31,488 +24,16 @@ func CreateAllFiles(MapAll map[string]*types.Table) error {
|
||||
log.Error("CreateFileCrudStarter_manual() error: ", err)
|
||||
return err
|
||||
}
|
||||
//}
|
||||
|
||||
//ReadObject
|
||||
if config.Settings.NEED_CREATE_READOBJECT == true {
|
||||
//crud_starter_readobject.go
|
||||
err = CreateFile_CrudStarter_ReadObject(MapAll)
|
||||
if err != nil {
|
||||
log.Error("CreateFile_CrudStarter_ReadObject() error: ", err)
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
// CreateFile_CrudStarter - создаёт 1 файл в папке crud_starter
|
||||
func CreateFile_CrudStarter(MapAll map[string]*types.Table) error {
|
||||
var err error
|
||||
|
||||
if config.Settings.NEED_CREATE_DB == false {
|
||||
return err
|
||||
}
|
||||
|
||||
//чтение файлов
|
||||
DirBin := micro.ProgramDir_bin()
|
||||
//DirTemplates := DirBin + constants.FolderTemplates + micro.SeparatorFile()
|
||||
DirReady := DirBin + config.Settings.READY_FOLDERNAME + micro.SeparatorFile()
|
||||
//DirTemplatesCrudStarter := DirTemplates + config.Settings.TEMPLATE_FOLDERNAME_CRUD_STARTER + micro.SeparatorFile()
|
||||
//FilenameTemplateCrudStarter := DirTemplatesCrudStarter + "crud_starter.go_"
|
||||
DirReadyCrudStarter := DirReady + config.Settings.TEMPLATE_FOLDERNAME_CRUD_STARTER + micro.SeparatorFile()
|
||||
FilenameReadyCrudStarter := DirReadyCrudStarter + "crud_starter.go"
|
||||
|
||||
//создадим папку готовых файлов
|
||||
folders.CreateFolder(DirReadyCrudStarter)
|
||||
|
||||
//
|
||||
TextCrudStarter := config.Settings.TEXT_MODULE_GENERATED + `package crud_starter`
|
||||
|
||||
//найдём новый текст для каждой таблицы
|
||||
RepositoryURL := config.Settings.SERVICE_REPOSITORY_URL
|
||||
ModelURL := RepositoryURL + config.Settings.TEMPLATE_FOLDERNAME_MODEL
|
||||
|
||||
//импорт
|
||||
TextImport := FindTextImport(MapAll, ModelURL)
|
||||
TextCrudStarter = TextCrudStarter + "\n" + TextImport
|
||||
|
||||
//DB
|
||||
TextDB := FindText_InitCrudTransport_DB(MapAll, ModelURL)
|
||||
TextCrudStarter = TextCrudStarter + "\n" + TextDB
|
||||
|
||||
//GRPC
|
||||
if config.Settings.NEED_CREATE_GRPC == true {
|
||||
TextGRPC := FindTextGRPC(MapAll, ModelURL)
|
||||
TextCrudStarter = TextCrudStarter + "\n" + TextGRPC
|
||||
}
|
||||
|
||||
//NRPC
|
||||
if config.Settings.NEED_CREATE_NRPC == true {
|
||||
TextNRPC := FindTextNRPC(MapAll, ModelURL)
|
||||
TextCrudStarter = TextCrudStarter + "\n" + TextNRPC
|
||||
}
|
||||
|
||||
//замена импортов на новые URL
|
||||
TextCrudStarter = create_files.Replace_RepositoryImportsURL(TextCrudStarter)
|
||||
|
||||
//удаление пустого импорта
|
||||
TextCrudStarter = create_files.Delete_EmptyImport(TextCrudStarter)
|
||||
|
||||
//запись файла
|
||||
err = os.WriteFile(FilenameReadyCrudStarter, []byte(TextCrudStarter), config.Settings.FILE_PERMISSIONS)
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
// FindTextImport - возвращает текст всех функций .proto для таблицы
|
||||
func FindTextImport(MapAll map[string]*types.Table, ModelURL string) string {
|
||||
Otvet := `
|
||||
import (`
|
||||
//сортировка по названию таблиц
|
||||
keys := make([]string, 0, len(MapAll))
|
||||
for k := range MapAll {
|
||||
keys = append(keys, k)
|
||||
}
|
||||
sort.Strings(keys)
|
||||
|
||||
//все таблицы
|
||||
TextStarter := ""
|
||||
//TextModel := ""
|
||||
TextDB := ""
|
||||
TextGRPC := ""
|
||||
//TextNRPC := ""
|
||||
for _, key1 := range keys {
|
||||
Table1, ok := MapAll[key1]
|
||||
if ok == false {
|
||||
log.Panic("MapAll[key1] not found, key: ", key1)
|
||||
}
|
||||
|
||||
//проверка что таблица нормальная
|
||||
err1 := create_files.IsGood_Table(Table1)
|
||||
if err1 != nil {
|
||||
log.Warn(err1)
|
||||
continue
|
||||
}
|
||||
|
||||
TextStarter = TextStarter + FindTextImportStarter1(Table1)
|
||||
//TextModel = TextModel + FindTextImportModel1(Table1)
|
||||
TextDB = TextDB + FindTextImportDB1(Table1)
|
||||
TextGRPC = TextGRPC + FindTextImportGRPC1(Table1)
|
||||
//TextNRPC = TextNRPC + FindTextImportNRPC1(Table1)
|
||||
}
|
||||
|
||||
Otvet = Otvet + TextStarter + "\n" + TextDB + "\n" + TextGRPC
|
||||
|
||||
Otvet = Otvet + "\n)"
|
||||
|
||||
return Otvet
|
||||
}
|
||||
|
||||
// FindTextImportStarter1 - возвращает текст импорта crud_starter_ для 1 таблицы
|
||||
func FindTextImportStarter1(Table1 *types.Table) string {
|
||||
TableName := strings.ToLower(Table1.Name)
|
||||
DB_URL := config.Settings.SERVICE_REPOSITORY_URL + "/" + config.Settings.TEMPLATE_FOLDERNAME_CRUD_STARTER + "/" + config.Settings.STARTER_TABLES_PREFIX + TableName
|
||||
Otvet := "\n\t\"" + DB_URL + `"`
|
||||
|
||||
return Otvet
|
||||
}
|
||||
|
||||
// FindTextImportModel1 - возвращает текст импорта Model для 1 таблицы
|
||||
func FindTextImportModel1(Table1 *types.Table) string {
|
||||
TableName := strings.ToLower(Table1.Name)
|
||||
DB_URL := config.Settings.SERVICE_REPOSITORY_URL + "/" + config.Settings.TEMPLATE_FOLDERNAME_MODEL + "/" + TableName
|
||||
Otvet := "\n\t\"" + DB_URL + `"`
|
||||
|
||||
return Otvet
|
||||
}
|
||||
|
||||
// FindTextImportDB1 - возвращает текст импорта DB для 1 таблицы
|
||||
func FindTextImportDB1(Table1 *types.Table) string {
|
||||
TableName := strings.ToLower(Table1.Name)
|
||||
DB_URL := config.Settings.SERVICE_REPOSITORY_URL + "/" + config.Settings.TEMPLATE_FOLDERNAME_CRUD
|
||||
TableNameWithPrefix := config.Settings.PREFIX_CRUD + TableName
|
||||
Otvet := "\n\t" + "\"" + DB_URL + "/" + TableNameWithPrefix + `"`
|
||||
|
||||
return Otvet
|
||||
}
|
||||
|
||||
// FindTextImportGRPC1 - возвращает текст импорта GRPC для 1 таблицы
|
||||
func FindTextImportGRPC1(Table1 *types.Table) string {
|
||||
GRPC_URL := config.Settings.SERVICE_REPOSITORY_URL
|
||||
TableName := strings.ToLower(Table1.Name)
|
||||
Otvet := "\n\t\"" + GRPC_URL + "/" + config.Settings.TEMPLATE_FOLDERNAME_GRPC_CLIENT + "/grpc_" + TableName + `"`
|
||||
|
||||
return Otvet
|
||||
}
|
||||
|
||||
// FindTextImportNRPC1 - возвращает текст импорта NRPC для 1 таблицы
|
||||
func FindTextImportNRPC1(Table1 *types.Table) string {
|
||||
//NRPC_URL := config.Settings.SERVICE_REPOSITORY_URL + "/" + config.Settings.TEMPLATE_FOLDERNAME_NRPC
|
||||
TableName := strings.ToLower(Table1.Name)
|
||||
Otvet := "\n\t\"" + config.Settings.SERVICE_REPOSITORY_URL + "/" + config.Settings.TEMPLATE_FOLDERNAME_NRPC_CLIENT + "/nrpc_" + TableName + `"`
|
||||
|
||||
return Otvet
|
||||
}
|
||||
|
||||
// FindText_InitCrudTransport_DB - возвращает текст для всех таблиц
|
||||
func FindText_InitCrudTransport_DB(MapAll map[string]*types.Table, ModelURL string) string {
|
||||
Otvet := `
|
||||
// InitCrudTransport_DB - заполняет объекты crud для работы с БД напрямую
|
||||
func InitCrudTransport_DB() {`
|
||||
if config.Settings.USE_DEFAULT_TEMPLATE == true {
|
||||
Otvet = Otvet + `
|
||||
initCrudTransport_manual_DB()
|
||||
`
|
||||
}
|
||||
//сортировка по названию таблиц
|
||||
keys := make([]string, 0, len(MapAll))
|
||||
for k := range MapAll {
|
||||
keys = append(keys, k)
|
||||
}
|
||||
sort.Strings(keys)
|
||||
|
||||
for _, key1 := range keys {
|
||||
Table1, ok := MapAll[key1]
|
||||
if ok == false {
|
||||
log.Panic("MapAll[key1] not found, key: ", key1)
|
||||
}
|
||||
|
||||
//проверка что таблица нормальная
|
||||
err1 := create_files.IsGood_Table(Table1)
|
||||
if err1 != nil {
|
||||
log.Warn(err1)
|
||||
continue
|
||||
}
|
||||
|
||||
Otvet = Otvet + FindTextDB1(Table1)
|
||||
}
|
||||
|
||||
Otvet = Otvet + "\n}"
|
||||
|
||||
return Otvet
|
||||
}
|
||||
|
||||
// FindTextDB1 - возвращает текст для 1 таблицы
|
||||
func FindTextDB1(Table1 *types.Table) string {
|
||||
TableName := strings.ToLower(Table1.Name)
|
||||
Otvet := "\n\t" + config.Settings.STARTER_TABLES_PREFIX + TableName + ".SetCrudInterface(" + config.Settings.PREFIX_CRUD + TableName + ".Crud_DB{})"
|
||||
|
||||
return Otvet
|
||||
}
|
||||
|
||||
// FindTextGRPC - возвращает текст для всех таблиц
|
||||
func FindTextGRPC(MapAll map[string]*types.Table, ModelURL string) string {
|
||||
Otvet := `
|
||||
// InitCrudTransport_GRPC - заполняет объекты crud для работы с БД напрямую
|
||||
func InitCrudTransport_GRPC() {`
|
||||
|
||||
if config.Settings.USE_DEFAULT_TEMPLATE == true {
|
||||
Otvet = Otvet + `
|
||||
initCrudTransport_manual_GRPC()
|
||||
`
|
||||
}
|
||||
|
||||
//сортировка по названию таблиц
|
||||
keys := make([]string, 0, len(MapAll))
|
||||
for k := range MapAll {
|
||||
keys = append(keys, k)
|
||||
}
|
||||
sort.Strings(keys)
|
||||
|
||||
for _, key1 := range keys {
|
||||
Table1, ok := MapAll[key1]
|
||||
if ok == false {
|
||||
log.Panic("MapAll[key1] not found, key: ", key1)
|
||||
}
|
||||
|
||||
//проверка что таблица нормальная
|
||||
err1 := create_files.IsGood_Table(Table1)
|
||||
if err1 != nil {
|
||||
log.Warn(err1)
|
||||
continue
|
||||
}
|
||||
|
||||
Otvet = Otvet + FindTextGRPC1(Table1)
|
||||
}
|
||||
|
||||
Otvet = Otvet + "\n}"
|
||||
|
||||
return Otvet
|
||||
}
|
||||
|
||||
// FindTextNRPC1 - возвращает текст для 1 таблицы
|
||||
func FindTextGRPC1(Table1 *types.Table) string {
|
||||
TableName := strings.ToLower(Table1.Name)
|
||||
Otvet := "\n\t" + config.Settings.STARTER_TABLES_PREFIX + TableName + ".SetCrudInterface(grpc_" + TableName + ".Crud_GRPC{})"
|
||||
|
||||
return Otvet
|
||||
}
|
||||
|
||||
// FindTextNRPC - возвращает текст для всех таблиц
|
||||
func FindTextNRPC(MapAll map[string]*types.Table, ModelURL string) string {
|
||||
Otvet := `
|
||||
// InitCrudTransport_NRPC - заполняет объекты crud для работы с БД напрямую
|
||||
func InitCrudTransport_NRPC() {`
|
||||
|
||||
if config.Settings.USE_DEFAULT_TEMPLATE == true {
|
||||
Otvet = Otvet + `
|
||||
initCrudTransport_manual_NRPC()
|
||||
`
|
||||
}
|
||||
//сортировка по названию таблиц
|
||||
keys := make([]string, 0, len(MapAll))
|
||||
for k := range MapAll {
|
||||
keys = append(keys, k)
|
||||
}
|
||||
sort.Strings(keys)
|
||||
|
||||
for _, key1 := range keys {
|
||||
Table1, ok := MapAll[key1]
|
||||
if ok == false {
|
||||
log.Panic("MapAll[key1] not found, key: ", key1)
|
||||
}
|
||||
|
||||
//проверка что таблица нормальная
|
||||
err1 := create_files.IsGood_Table(Table1)
|
||||
if err1 != nil {
|
||||
log.Warn(err1)
|
||||
continue
|
||||
}
|
||||
|
||||
Otvet = Otvet + FindTextGRPC1(Table1) //GRPC будет делать функции NRPC
|
||||
//Otvet = Otvet + FindTextNRPC1(Table1)
|
||||
}
|
||||
|
||||
Otvet = Otvet + "\n}"
|
||||
|
||||
return Otvet
|
||||
}
|
||||
|
||||
// FindTextNRPC1 - возвращает текст 1 таблицы
|
||||
func FindTextNRPC1(Table1 *types.Table) string {
|
||||
TableName := strings.ToLower(Table1.Name)
|
||||
Otvet := "\n\t" + config.Settings.STARTER_TABLES_PREFIX + TableName + ".SetCrudInterface(nrpc_" + TableName + ".Crud_NRPC{})"
|
||||
|
||||
return Otvet
|
||||
}
|
||||
|
||||
// CreateFileCrudStarter_manual - создаёт 1 файл в папке crud_starter
|
||||
func CreateFileCrudStarter_manual(MapAll map[string]*types.Table) error {
|
||||
var err error
|
||||
|
||||
if config.Settings.NEED_CREATE_DB == false {
|
||||
return err
|
||||
}
|
||||
|
||||
//чтение файлов
|
||||
DirBin := micro.ProgramDir_bin()
|
||||
//DirTemplates := DirBin + constants.FolderTemplates + micro.SeparatorFile()
|
||||
DirReady := DirBin + config.Settings.READY_FOLDERNAME + micro.SeparatorFile()
|
||||
//DirTemplatesCrudStarter := DirTemplates + config.Settings.TEMPLATE_FOLDERNAME_CRUD_STARTER + micro.SeparatorFile()
|
||||
//FilenameTemplateCrudStarter := DirTemplatesCrudStarter + "crud_starter.go_"
|
||||
DirReadyCrudStarter := DirReady + config.Settings.TEMPLATE_FOLDERNAME_CRUD_STARTER + micro.SeparatorFile()
|
||||
FilenameReadyCrudStarter := DirReadyCrudStarter + "crud_starter_manual.go"
|
||||
|
||||
//создадим папку готовых файлов
|
||||
folders.CreateFolder(DirReadyCrudStarter)
|
||||
|
||||
//
|
||||
TextCrudStarter := config.Settings.TEXT_MODULE_GENERATED + `package crud_starter`
|
||||
|
||||
//найдём новый текст для каждой таблицы
|
||||
RepositoryURL := config.Settings.SERVICE_REPOSITORY_URL
|
||||
ModelURL := RepositoryURL + config.Settings.TEMPLATE_FOLDERNAME_MODEL
|
||||
|
||||
//импорт
|
||||
TextImport := FindTextImport(MapAll, ModelURL)
|
||||
TextCrudStarter = TextCrudStarter + "\n" + TextImport
|
||||
|
||||
//DB
|
||||
TextDB := FindText_InitCrudTransport_DB_manual(MapAll, ModelURL)
|
||||
TextCrudStarter = TextCrudStarter + "\n" + TextDB
|
||||
|
||||
//GRPC
|
||||
if config.Settings.NEED_CREATE_GRPC == true {
|
||||
TextGRPC := FindTextGRPC_manual(MapAll, ModelURL)
|
||||
TextCrudStarter = TextCrudStarter + "\n" + TextGRPC
|
||||
}
|
||||
|
||||
//NRPC
|
||||
if config.Settings.NEED_CREATE_NRPC == true {
|
||||
TextNRPC := FindTextNRPC_manual(MapAll, ModelURL)
|
||||
TextCrudStarter = TextCrudStarter + "\n" + TextNRPC
|
||||
}
|
||||
|
||||
//замена импортов на новые URL
|
||||
TextCrudStarter = create_files.Replace_RepositoryImportsURL(TextCrudStarter)
|
||||
|
||||
//удаление пустого импорта
|
||||
TextCrudStarter = create_files.Delete_EmptyImport(TextCrudStarter)
|
||||
|
||||
//запись файла
|
||||
err = os.WriteFile(FilenameReadyCrudStarter, []byte(TextCrudStarter), config.Settings.FILE_PERMISSIONS)
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
// FindText_InitCrudTransport_DB_manual - возвращает текст для каждой таблицы
|
||||
func FindText_InitCrudTransport_DB_manual(MapAll map[string]*types.Table, ModelURL string) string {
|
||||
Otvet := `
|
||||
// initCrudTransport_manual_DB - заполняет объекты crud для работы с БД напрямую
|
||||
func initCrudTransport_manual_DB() {`
|
||||
// if config.Settings.USE_DEFAULT_TEMPLATE == true {
|
||||
// Otvet = Otvet + `
|
||||
//`
|
||||
// }
|
||||
//сортировка по названию таблиц
|
||||
keys := make([]string, 0, len(MapAll))
|
||||
for k := range MapAll {
|
||||
keys = append(keys, k)
|
||||
}
|
||||
sort.Strings(keys)
|
||||
|
||||
for _, key1 := range keys {
|
||||
Table1, ok := MapAll[key1]
|
||||
if ok == false {
|
||||
log.Panic("MapAll[key1] not found, key: ", key1)
|
||||
}
|
||||
|
||||
//проверка что таблица нормальная
|
||||
err1 := create_files.IsGood_Table(Table1)
|
||||
if err1 != nil {
|
||||
log.Warn(err1)
|
||||
continue
|
||||
}
|
||||
|
||||
Otvet = Otvet + FindTextDB_manual1(Table1)
|
||||
}
|
||||
|
||||
Otvet = Otvet + "\n}"
|
||||
|
||||
return Otvet
|
||||
}
|
||||
|
||||
// FindTextDB_manual1 - возвращает текст для 1 таблицы
|
||||
func FindTextDB_manual1(Table1 *types.Table) string {
|
||||
TableName := strings.ToLower(Table1.Name)
|
||||
Otvet := "\n\t" + config.Settings.STARTER_TABLES_PREFIX + TableName + ".SetCrudManualInterface(" + config.Settings.PREFIX_CRUD + TableName + ".Crud_DB{})"
|
||||
|
||||
return Otvet
|
||||
}
|
||||
|
||||
// FindTextGRPC_manual - возвращает текст для всех таблиц
|
||||
func FindTextGRPC_manual(MapAll map[string]*types.Table, ModelURL string) string {
|
||||
Otvet := `
|
||||
// initCrudTransport_manual_GRPC - заполняет объекты crud для работы с БД через протокол GRPC
|
||||
func initCrudTransport_manual_GRPC() {`
|
||||
|
||||
// if config.Settings.USE_DEFAULT_TEMPLATE == true {
|
||||
// Otvet = Otvet + `
|
||||
//`
|
||||
// }
|
||||
|
||||
//сортировка по названию таблиц
|
||||
keys := make([]string, 0, len(MapAll))
|
||||
for k := range MapAll {
|
||||
keys = append(keys, k)
|
||||
}
|
||||
sort.Strings(keys)
|
||||
|
||||
for _, key1 := range keys {
|
||||
Table1, ok := MapAll[key1]
|
||||
if ok == false {
|
||||
log.Panic("MapAll[key1] not found, key: ", key1)
|
||||
}
|
||||
|
||||
//проверка что таблица нормальная
|
||||
err1 := create_files.IsGood_Table(Table1)
|
||||
if err1 != nil {
|
||||
log.Warn(err1)
|
||||
continue
|
||||
}
|
||||
|
||||
Otvet = Otvet + FindTextGRPC_manual1(Table1)
|
||||
}
|
||||
|
||||
Otvet = Otvet + "\n}"
|
||||
|
||||
return Otvet
|
||||
}
|
||||
|
||||
// FindTextGRPC_manual1 - возвращает текст для 1 таблицы
|
||||
func FindTextGRPC_manual1(Table1 *types.Table) string {
|
||||
TableName := strings.ToLower(Table1.Name)
|
||||
Otvet := "\n\t" + config.Settings.STARTER_TABLES_PREFIX + TableName + ".SetCrudManualInterface(grpc_" + TableName + ".Crud_GRPC{})"
|
||||
|
||||
return Otvet
|
||||
}
|
||||
|
||||
// FindTextNRPC - возвращает текст для всех таблиц
|
||||
func FindTextNRPC_manual(MapAll map[string]*types.Table, ModelURL string) string {
|
||||
Otvet := `
|
||||
// initCrudTransport_manual_NRPC - заполняет объекты crud для работы с БД через протокол NRPC
|
||||
func initCrudTransport_manual_NRPC() {`
|
||||
|
||||
// if config.Settings.USE_DEFAULT_TEMPLATE == true {
|
||||
// Otvet = Otvet + `
|
||||
//`
|
||||
// }
|
||||
//сортировка по названию таблиц
|
||||
keys := make([]string, 0, len(MapAll))
|
||||
for k := range MapAll {
|
||||
keys = append(keys, k)
|
||||
}
|
||||
sort.Strings(keys)
|
||||
|
||||
for _, key1 := range keys {
|
||||
Table1, ok := MapAll[key1]
|
||||
if ok == false {
|
||||
log.Panic("MapAll[key1] not found, key: ", key1)
|
||||
}
|
||||
|
||||
//проверка что таблица нормальная
|
||||
err1 := create_files.IsGood_Table(Table1)
|
||||
if err1 != nil {
|
||||
log.Warn(err1)
|
||||
continue
|
||||
}
|
||||
|
||||
Otvet = Otvet + FindTextGRPC_manual1(Table1) //GRPC будет делать функции NRPC
|
||||
//Otvet = Otvet + FindTextNRPC1(Table1)
|
||||
}
|
||||
|
||||
Otvet = Otvet + "\n}"
|
||||
|
||||
return Otvet
|
||||
}
|
||||
|
495
internal/create_files/crud_starter/crud_starter_crud.go
Normal file
495
internal/create_files/crud_starter/crud_starter_crud.go
Normal file
@ -0,0 +1,495 @@
|
||||
package crud_starter
|
||||
|
||||
import (
|
||||
"github.com/ManyakRus/crud_generator/internal/config"
|
||||
"github.com/ManyakRus/crud_generator/internal/create_files"
|
||||
"github.com/ManyakRus/crud_generator/internal/folders"
|
||||
"github.com/ManyakRus/crud_generator/internal/types"
|
||||
"github.com/ManyakRus/starter/log"
|
||||
"github.com/ManyakRus/starter/micro"
|
||||
|
||||
"os"
|
||||
"sort"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// CreateFile_CrudStarter - создаёт 1 файл в папке crud_starter
|
||||
func CreateFile_CrudStarter(MapAll map[string]*types.Table) error {
|
||||
var err error
|
||||
|
||||
if config.Settings.NEED_CREATE_DB == false {
|
||||
return err
|
||||
}
|
||||
|
||||
//чтение файлов
|
||||
DirBin := micro.ProgramDir_bin()
|
||||
//DirTemplates := DirBin + constants.FolderTemplates + micro.SeparatorFile()
|
||||
DirReady := DirBin + config.Settings.READY_FOLDERNAME + micro.SeparatorFile()
|
||||
//DirTemplatesCrudStarter := DirTemplates + config.Settings.TEMPLATE_FOLDERNAME_CRUD_STARTER + micro.SeparatorFile()
|
||||
//FilenameTemplateCrudStarter := DirTemplatesCrudStarter + "crud_starter.go_"
|
||||
DirReadyCrudStarter := DirReady + config.Settings.TEMPLATE_FOLDERNAME_CRUD_STARTER + micro.SeparatorFile()
|
||||
FilenameReadyCrudStarter := DirReadyCrudStarter + "crud_starter.go"
|
||||
|
||||
//создадим папку готовых файлов
|
||||
folders.CreateFolder(DirReadyCrudStarter)
|
||||
|
||||
//
|
||||
TextCrudStarter := config.Settings.TEXT_MODULE_GENERATED + `package crud_starter`
|
||||
|
||||
//найдём новый текст для каждой таблицы
|
||||
RepositoryURL := config.Settings.SERVICE_REPOSITORY_URL
|
||||
ModelURL := RepositoryURL + config.Settings.TEMPLATE_FOLDERNAME_MODEL
|
||||
|
||||
//импорт
|
||||
TextImport := FindTextImport(MapAll, ModelURL)
|
||||
TextCrudStarter = TextCrudStarter + "\n" + TextImport
|
||||
|
||||
//DB
|
||||
TextDB := FindText_InitCrudTransport_DB(MapAll, ModelURL)
|
||||
TextCrudStarter = TextCrudStarter + "\n" + TextDB
|
||||
|
||||
//GRPC
|
||||
if config.Settings.NEED_CREATE_GRPC == true {
|
||||
TextGRPC := FindTextGRPC(MapAll, ModelURL)
|
||||
TextCrudStarter = TextCrudStarter + "\n" + TextGRPC
|
||||
}
|
||||
|
||||
//NRPC
|
||||
if config.Settings.NEED_CREATE_NRPC == true {
|
||||
TextNRPC := FindTextNRPC(MapAll, ModelURL)
|
||||
TextCrudStarter = TextCrudStarter + "\n" + TextNRPC
|
||||
}
|
||||
|
||||
//замена импортов на новые URL
|
||||
TextCrudStarter = create_files.Replace_RepositoryImportsURL(TextCrudStarter)
|
||||
|
||||
//удаление пустого импорта
|
||||
TextCrudStarter = create_files.Delete_EmptyImport(TextCrudStarter)
|
||||
|
||||
//запись файла
|
||||
err = os.WriteFile(FilenameReadyCrudStarter, []byte(TextCrudStarter), config.Settings.FILE_PERMISSIONS)
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
// FindTextImport - возвращает текст всех функций .proto для таблицы
|
||||
func FindTextImport(MapAll map[string]*types.Table, ModelURL string) string {
|
||||
Otvet := `
|
||||
import (`
|
||||
//сортировка по названию таблиц
|
||||
keys := make([]string, 0, len(MapAll))
|
||||
for k := range MapAll {
|
||||
keys = append(keys, k)
|
||||
}
|
||||
sort.Strings(keys)
|
||||
|
||||
//все таблицы
|
||||
TextStarter := ""
|
||||
//TextModel := ""
|
||||
TextDB := ""
|
||||
TextGRPC := ""
|
||||
//TextNRPC := ""
|
||||
for _, key1 := range keys {
|
||||
Table1, ok := MapAll[key1]
|
||||
if ok == false {
|
||||
log.Panic("MapAll[key1] not found, key: ", key1)
|
||||
}
|
||||
|
||||
//проверка что таблица нормальная
|
||||
err1 := create_files.IsGood_Table(Table1)
|
||||
if err1 != nil {
|
||||
log.Warn(err1)
|
||||
continue
|
||||
}
|
||||
|
||||
TextStarter = TextStarter + FindTextImportStarter1(Table1)
|
||||
//TextModel = TextModel + FindTextImportModel1(Table1)
|
||||
TextDB = TextDB + FindTextImportDB1(Table1)
|
||||
TextGRPC = TextGRPC + FindTextImportGRPC1(Table1)
|
||||
//TextNRPC = TextNRPC + FindTextImportNRPC1(Table1)
|
||||
}
|
||||
|
||||
Otvet = Otvet + TextStarter + "\n" + TextDB + "\n" + TextGRPC
|
||||
|
||||
Otvet = Otvet + "\n)"
|
||||
|
||||
return Otvet
|
||||
}
|
||||
|
||||
// FindTextImportStarter1 - возвращает текст импорта crud_starter_ для 1 таблицы
|
||||
func FindTextImportStarter1(Table1 *types.Table) string {
|
||||
TableName := strings.ToLower(Table1.Name)
|
||||
DB_URL := config.Settings.SERVICE_REPOSITORY_URL + "/" + config.Settings.TEMPLATE_FOLDERNAME_CRUD_STARTER + "/" + config.Settings.STARTER_TABLES_PREFIX + TableName
|
||||
Otvet := "\n\t\"" + DB_URL + `"`
|
||||
|
||||
return Otvet
|
||||
}
|
||||
|
||||
// FindTextImportModel1 - возвращает текст импорта Model для 1 таблицы
|
||||
func FindTextImportModel1(Table1 *types.Table) string {
|
||||
TableName := strings.ToLower(Table1.Name)
|
||||
DB_URL := config.Settings.SERVICE_REPOSITORY_URL + "/" + config.Settings.TEMPLATE_FOLDERNAME_MODEL + "/" + TableName
|
||||
Otvet := "\n\t\"" + DB_URL + `"`
|
||||
|
||||
return Otvet
|
||||
}
|
||||
|
||||
// FindTextImportDB1 - возвращает текст импорта DB для 1 таблицы
|
||||
func FindTextImportDB1(Table1 *types.Table) string {
|
||||
TableName := strings.ToLower(Table1.Name)
|
||||
DB_URL := config.Settings.SERVICE_REPOSITORY_URL + "/" + config.Settings.TEMPLATE_FOLDERNAME_CRUD
|
||||
TableNameWithPrefix := config.Settings.PREFIX_CRUD + TableName
|
||||
Otvet := "\n\t" + "\"" + DB_URL + "/" + TableNameWithPrefix + `"`
|
||||
|
||||
return Otvet
|
||||
}
|
||||
|
||||
// FindTextImportGRPC1 - возвращает текст импорта GRPC для 1 таблицы
|
||||
func FindTextImportGRPC1(Table1 *types.Table) string {
|
||||
GRPC_URL := config.Settings.SERVICE_REPOSITORY_URL
|
||||
TableName := strings.ToLower(Table1.Name)
|
||||
Otvet := "\n\t\"" + GRPC_URL + "/" + config.Settings.TEMPLATE_FOLDERNAME_GRPC_CLIENT + "/grpc_" + TableName + `"`
|
||||
|
||||
return Otvet
|
||||
}
|
||||
|
||||
// FindTextImportNRPC1 - возвращает текст импорта NRPC для 1 таблицы
|
||||
func FindTextImportNRPC1(Table1 *types.Table) string {
|
||||
//NRPC_URL := config.Settings.SERVICE_REPOSITORY_URL + "/" + config.Settings.TEMPLATE_FOLDERNAME_NRPC
|
||||
TableName := strings.ToLower(Table1.Name)
|
||||
Otvet := "\n\t\"" + config.Settings.SERVICE_REPOSITORY_URL + "/" + config.Settings.TEMPLATE_FOLDERNAME_NRPC_CLIENT + "/nrpc_" + TableName + `"`
|
||||
|
||||
return Otvet
|
||||
}
|
||||
|
||||
// FindText_InitCrudTransport_DB - возвращает текст для всех таблиц
|
||||
func FindText_InitCrudTransport_DB(MapAll map[string]*types.Table, ModelURL string) string {
|
||||
Otvet := `
|
||||
// InitCrudTransport_DB - заполняет объекты crud для работы с БД напрямую
|
||||
func InitCrudTransport_DB() {`
|
||||
if config.Settings.USE_DEFAULT_TEMPLATE == true {
|
||||
Otvet = Otvet + `
|
||||
initCrudTransport_manual_DB()
|
||||
`
|
||||
}
|
||||
//сортировка по названию таблиц
|
||||
keys := make([]string, 0, len(MapAll))
|
||||
for k := range MapAll {
|
||||
keys = append(keys, k)
|
||||
}
|
||||
sort.Strings(keys)
|
||||
|
||||
for _, key1 := range keys {
|
||||
Table1, ok := MapAll[key1]
|
||||
if ok == false {
|
||||
log.Panic("MapAll[key1] not found, key: ", key1)
|
||||
}
|
||||
|
||||
//проверка что таблица нормальная
|
||||
err1 := create_files.IsGood_Table(Table1)
|
||||
if err1 != nil {
|
||||
log.Warn(err1)
|
||||
continue
|
||||
}
|
||||
|
||||
Otvet = Otvet + FindTextDB1(Table1)
|
||||
}
|
||||
|
||||
Otvet = Otvet + "\n}"
|
||||
|
||||
return Otvet
|
||||
}
|
||||
|
||||
// FindTextDB1 - возвращает текст для 1 таблицы
|
||||
func FindTextDB1(Table1 *types.Table) string {
|
||||
TableName := strings.ToLower(Table1.Name)
|
||||
Otvet := "\n\t" + config.Settings.STARTER_TABLES_PREFIX + TableName + ".SetCrudInterface(" + config.Settings.PREFIX_CRUD + TableName + ".Crud_DB{})"
|
||||
|
||||
return Otvet
|
||||
}
|
||||
|
||||
// FindTextGRPC - возвращает текст для всех таблиц
|
||||
func FindTextGRPC(MapAll map[string]*types.Table, ModelURL string) string {
|
||||
Otvet := `
|
||||
// InitCrudTransport_GRPC - заполняет объекты crud для работы с БД напрямую
|
||||
func InitCrudTransport_GRPC() {`
|
||||
|
||||
if config.Settings.USE_DEFAULT_TEMPLATE == true {
|
||||
Otvet = Otvet + `
|
||||
initCrudTransport_manual_GRPC()
|
||||
`
|
||||
}
|
||||
|
||||
//сортировка по названию таблиц
|
||||
keys := make([]string, 0, len(MapAll))
|
||||
for k := range MapAll {
|
||||
keys = append(keys, k)
|
||||
}
|
||||
sort.Strings(keys)
|
||||
|
||||
for _, key1 := range keys {
|
||||
Table1, ok := MapAll[key1]
|
||||
if ok == false {
|
||||
log.Panic("MapAll[key1] not found, key: ", key1)
|
||||
}
|
||||
|
||||
//проверка что таблица нормальная
|
||||
err1 := create_files.IsGood_Table(Table1)
|
||||
if err1 != nil {
|
||||
log.Warn(err1)
|
||||
continue
|
||||
}
|
||||
|
||||
Otvet = Otvet + FindTextGRPC1(Table1)
|
||||
}
|
||||
|
||||
Otvet = Otvet + "\n}"
|
||||
|
||||
return Otvet
|
||||
}
|
||||
|
||||
// FindTextNRPC1 - возвращает текст для 1 таблицы
|
||||
func FindTextGRPC1(Table1 *types.Table) string {
|
||||
TableName := strings.ToLower(Table1.Name)
|
||||
Otvet := "\n\t" + config.Settings.STARTER_TABLES_PREFIX + TableName + ".SetCrudInterface(grpc_" + TableName + ".Crud_GRPC{})"
|
||||
|
||||
return Otvet
|
||||
}
|
||||
|
||||
// FindTextNRPC - возвращает текст для всех таблиц
|
||||
func FindTextNRPC(MapAll map[string]*types.Table, ModelURL string) string {
|
||||
Otvet := `
|
||||
// InitCrudTransport_NRPC - заполняет объекты crud для работы с БД напрямую
|
||||
func InitCrudTransport_NRPC() {`
|
||||
|
||||
if config.Settings.USE_DEFAULT_TEMPLATE == true {
|
||||
Otvet = Otvet + `
|
||||
initCrudTransport_manual_NRPC()
|
||||
`
|
||||
}
|
||||
//сортировка по названию таблиц
|
||||
keys := make([]string, 0, len(MapAll))
|
||||
for k := range MapAll {
|
||||
keys = append(keys, k)
|
||||
}
|
||||
sort.Strings(keys)
|
||||
|
||||
for _, key1 := range keys {
|
||||
Table1, ok := MapAll[key1]
|
||||
if ok == false {
|
||||
log.Panic("MapAll[key1] not found, key: ", key1)
|
||||
}
|
||||
|
||||
//проверка что таблица нормальная
|
||||
err1 := create_files.IsGood_Table(Table1)
|
||||
if err1 != nil {
|
||||
log.Warn(err1)
|
||||
continue
|
||||
}
|
||||
|
||||
Otvet = Otvet + FindTextGRPC1(Table1) //GRPC будет делать функции NRPC
|
||||
//Otvet = Otvet + FindTextNRPC1(Table1)
|
||||
}
|
||||
|
||||
Otvet = Otvet + "\n}"
|
||||
|
||||
return Otvet
|
||||
}
|
||||
|
||||
// FindTextNRPC1 - возвращает текст 1 таблицы
|
||||
func FindTextNRPC1(Table1 *types.Table) string {
|
||||
TableName := strings.ToLower(Table1.Name)
|
||||
Otvet := "\n\t" + config.Settings.STARTER_TABLES_PREFIX + TableName + ".SetCrudInterface(nrpc_" + TableName + ".Crud_NRPC{})"
|
||||
|
||||
return Otvet
|
||||
}
|
||||
|
||||
// CreateFileCrudStarter_manual - создаёт 1 файл в папке crud_starter
|
||||
func CreateFileCrudStarter_manual(MapAll map[string]*types.Table) error {
|
||||
var err error
|
||||
|
||||
if config.Settings.NEED_CREATE_DB == false {
|
||||
return err
|
||||
}
|
||||
|
||||
//чтение файлов
|
||||
DirBin := micro.ProgramDir_bin()
|
||||
//DirTemplates := DirBin + constants.FolderTemplates + micro.SeparatorFile()
|
||||
DirReady := DirBin + config.Settings.READY_FOLDERNAME + micro.SeparatorFile()
|
||||
//DirTemplatesCrudStarter := DirTemplates + config.Settings.TEMPLATE_FOLDERNAME_CRUD_STARTER + micro.SeparatorFile()
|
||||
//FilenameTemplateCrudStarter := DirTemplatesCrudStarter + "crud_starter.go_"
|
||||
DirReadyCrudStarter := DirReady + config.Settings.TEMPLATE_FOLDERNAME_CRUD_STARTER + micro.SeparatorFile()
|
||||
FilenameReadyCrudStarter := DirReadyCrudStarter + "crud_starter_manual.go"
|
||||
|
||||
//создадим папку готовых файлов
|
||||
folders.CreateFolder(DirReadyCrudStarter)
|
||||
|
||||
//
|
||||
TextCrudStarter := config.Settings.TEXT_MODULE_GENERATED + `package crud_starter`
|
||||
|
||||
//найдём новый текст для каждой таблицы
|
||||
RepositoryURL := config.Settings.SERVICE_REPOSITORY_URL
|
||||
ModelURL := RepositoryURL + config.Settings.TEMPLATE_FOLDERNAME_MODEL
|
||||
|
||||
//импорт
|
||||
TextImport := FindTextImport(MapAll, ModelURL)
|
||||
TextCrudStarter = TextCrudStarter + "\n" + TextImport
|
||||
|
||||
//DB
|
||||
TextDB := FindText_InitCrudTransport_DB_manual(MapAll, ModelURL)
|
||||
TextCrudStarter = TextCrudStarter + "\n" + TextDB
|
||||
|
||||
//GRPC
|
||||
if config.Settings.NEED_CREATE_GRPC == true {
|
||||
TextGRPC := FindTextGRPC_manual(MapAll, ModelURL)
|
||||
TextCrudStarter = TextCrudStarter + "\n" + TextGRPC
|
||||
}
|
||||
|
||||
//NRPC
|
||||
if config.Settings.NEED_CREATE_NRPC == true {
|
||||
TextNRPC := FindTextNRPC_manual(MapAll, ModelURL)
|
||||
TextCrudStarter = TextCrudStarter + "\n" + TextNRPC
|
||||
}
|
||||
|
||||
//замена импортов на новые URL
|
||||
TextCrudStarter = create_files.Replace_RepositoryImportsURL(TextCrudStarter)
|
||||
|
||||
//удаление пустого импорта
|
||||
TextCrudStarter = create_files.Delete_EmptyImport(TextCrudStarter)
|
||||
|
||||
//запись файла
|
||||
err = os.WriteFile(FilenameReadyCrudStarter, []byte(TextCrudStarter), config.Settings.FILE_PERMISSIONS)
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
// FindText_InitCrudTransport_DB_manual - возвращает текст для каждой таблицы
|
||||
func FindText_InitCrudTransport_DB_manual(MapAll map[string]*types.Table, ModelURL string) string {
|
||||
Otvet := `
|
||||
// initCrudTransport_manual_DB - заполняет объекты crud для работы с БД напрямую
|
||||
func initCrudTransport_manual_DB() {`
|
||||
// if config.Settings.USE_DEFAULT_TEMPLATE == true {
|
||||
// Otvet = Otvet + `
|
||||
//`
|
||||
// }
|
||||
//сортировка по названию таблиц
|
||||
keys := make([]string, 0, len(MapAll))
|
||||
for k := range MapAll {
|
||||
keys = append(keys, k)
|
||||
}
|
||||
sort.Strings(keys)
|
||||
|
||||
for _, key1 := range keys {
|
||||
Table1, ok := MapAll[key1]
|
||||
if ok == false {
|
||||
log.Panic("MapAll[key1] not found, key: ", key1)
|
||||
}
|
||||
|
||||
//проверка что таблица нормальная
|
||||
err1 := create_files.IsGood_Table(Table1)
|
||||
if err1 != nil {
|
||||
log.Warn(err1)
|
||||
continue
|
||||
}
|
||||
|
||||
Otvet = Otvet + FindTextDB_manual1(Table1)
|
||||
}
|
||||
|
||||
Otvet = Otvet + "\n}"
|
||||
|
||||
return Otvet
|
||||
}
|
||||
|
||||
// FindTextDB_manual1 - возвращает текст для 1 таблицы
|
||||
func FindTextDB_manual1(Table1 *types.Table) string {
|
||||
TableName := strings.ToLower(Table1.Name)
|
||||
Otvet := "\n\t" + config.Settings.STARTER_TABLES_PREFIX + TableName + ".SetCrudManualInterface(" + config.Settings.PREFIX_CRUD + TableName + ".Crud_DB{})"
|
||||
|
||||
return Otvet
|
||||
}
|
||||
|
||||
// FindTextGRPC_manual - возвращает текст для всех таблиц
|
||||
func FindTextGRPC_manual(MapAll map[string]*types.Table, ModelURL string) string {
|
||||
Otvet := `
|
||||
// initCrudTransport_manual_GRPC - заполняет объекты crud для работы с БД через протокол GRPC
|
||||
func initCrudTransport_manual_GRPC() {`
|
||||
|
||||
// if config.Settings.USE_DEFAULT_TEMPLATE == true {
|
||||
// Otvet = Otvet + `
|
||||
//`
|
||||
// }
|
||||
|
||||
//сортировка по названию таблиц
|
||||
keys := make([]string, 0, len(MapAll))
|
||||
for k := range MapAll {
|
||||
keys = append(keys, k)
|
||||
}
|
||||
sort.Strings(keys)
|
||||
|
||||
for _, key1 := range keys {
|
||||
Table1, ok := MapAll[key1]
|
||||
if ok == false {
|
||||
log.Panic("MapAll[key1] not found, key: ", key1)
|
||||
}
|
||||
|
||||
//проверка что таблица нормальная
|
||||
err1 := create_files.IsGood_Table(Table1)
|
||||
if err1 != nil {
|
||||
log.Warn(err1)
|
||||
continue
|
||||
}
|
||||
|
||||
Otvet = Otvet + FindTextGRPC_manual1(Table1)
|
||||
}
|
||||
|
||||
Otvet = Otvet + "\n}"
|
||||
|
||||
return Otvet
|
||||
}
|
||||
|
||||
// FindTextGRPC_manual1 - возвращает текст для 1 таблицы
|
||||
func FindTextGRPC_manual1(Table1 *types.Table) string {
|
||||
TableName := strings.ToLower(Table1.Name)
|
||||
Otvet := "\n\t" + config.Settings.STARTER_TABLES_PREFIX + TableName + ".SetCrudManualInterface(grpc_" + TableName + ".Crud_GRPC{})"
|
||||
|
||||
return Otvet
|
||||
}
|
||||
|
||||
// FindTextNRPC - возвращает текст для всех таблиц
|
||||
func FindTextNRPC_manual(MapAll map[string]*types.Table, ModelURL string) string {
|
||||
Otvet := `
|
||||
// initCrudTransport_manual_NRPC - заполняет объекты crud для работы с БД через протокол NRPC
|
||||
func initCrudTransport_manual_NRPC() {`
|
||||
|
||||
// if config.Settings.USE_DEFAULT_TEMPLATE == true {
|
||||
// Otvet = Otvet + `
|
||||
//`
|
||||
// }
|
||||
//сортировка по названию таблиц
|
||||
keys := make([]string, 0, len(MapAll))
|
||||
for k := range MapAll {
|
||||
keys = append(keys, k)
|
||||
}
|
||||
sort.Strings(keys)
|
||||
|
||||
for _, key1 := range keys {
|
||||
Table1, ok := MapAll[key1]
|
||||
if ok == false {
|
||||
log.Panic("MapAll[key1] not found, key: ", key1)
|
||||
}
|
||||
|
||||
//проверка что таблица нормальная
|
||||
err1 := create_files.IsGood_Table(Table1)
|
||||
if err1 != nil {
|
||||
log.Warn(err1)
|
||||
continue
|
||||
}
|
||||
|
||||
Otvet = Otvet + FindTextGRPC_manual1(Table1) //GRPC будет делать функции NRPC
|
||||
//Otvet = Otvet + FindTextNRPC1(Table1)
|
||||
}
|
||||
|
||||
Otvet = Otvet + "\n}"
|
||||
|
||||
return Otvet
|
||||
}
|
164
internal/create_files/crud_starter/crud_starter_readobject.go
Normal file
164
internal/create_files/crud_starter/crud_starter_readobject.go
Normal file
@ -0,0 +1,164 @@
|
||||
package crud_starter
|
||||
|
||||
import (
|
||||
"github.com/ManyakRus/crud_generator/internal/config"
|
||||
"github.com/ManyakRus/crud_generator/internal/create_files"
|
||||
"github.com/ManyakRus/crud_generator/internal/folders"
|
||||
"github.com/ManyakRus/crud_generator/internal/types"
|
||||
"github.com/ManyakRus/starter/log"
|
||||
"github.com/ManyakRus/starter/micro"
|
||||
"os"
|
||||
"sort"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// CreateFile_CrudStarter_ReadObject - создаёт 1 файл в папке crud_starter
|
||||
func CreateFile_CrudStarter_ReadObject(MapAll map[string]*types.Table) error {
|
||||
var err error
|
||||
|
||||
if config.Settings.NEED_CREATE_DB == false {
|
||||
return err
|
||||
}
|
||||
|
||||
//чтение файлов
|
||||
DirBin := micro.ProgramDir_bin()
|
||||
//DirTemplates := DirBin + constants.FolderTemplates + micro.SeparatorFile()
|
||||
DirReady := DirBin + config.Settings.READY_FOLDERNAME + micro.SeparatorFile()
|
||||
//DirTemplatesCrudStarter := DirTemplates + config.Settings.TEMPLATE_FOLDERNAME_CRUD_STARTER + micro.SeparatorFile()
|
||||
//FilenameTemplateCrudStarter := DirTemplatesCrudStarter + "crud_starter.go_"
|
||||
DirReadyCrudStarter := DirReady + config.Settings.TEMPLATE_FOLDERNAME_CRUD_STARTER + micro.SeparatorFile()
|
||||
FilenameReadyCrudStarter := DirReadyCrudStarter + "crud_starter_readobject.go"
|
||||
|
||||
//создадим папку готовых файлов
|
||||
folders.CreateFolder(DirReadyCrudStarter)
|
||||
|
||||
//
|
||||
TextCrudStarter := config.Settings.TEXT_MODULE_GENERATED + `package crud_starter`
|
||||
|
||||
//найдём новый текст для каждой таблицы
|
||||
RepositoryURL := config.Settings.SERVICE_REPOSITORY_URL
|
||||
ModelURL := RepositoryURL + config.Settings.TEMPLATE_FOLDERNAME_MODEL
|
||||
|
||||
//импорт
|
||||
TextImport := FindTextObjectsImport(MapAll, ModelURL)
|
||||
TextCrudStarter = TextCrudStarter + "\n" + TextImport
|
||||
|
||||
//ReadObject
|
||||
TextDB := FindText_InitCrudTransport_ReadObject(MapAll, ModelURL)
|
||||
TextCrudStarter = TextCrudStarter + "\n" + TextDB
|
||||
|
||||
////GRPC
|
||||
//if config.Settings.NEED_CREATE_GRPC == true {
|
||||
// TextGRPC := FindTextGRPC(MapAll, ModelURL)
|
||||
// TextCrudStarter = TextCrudStarter + "\n" + TextGRPC
|
||||
//}
|
||||
//
|
||||
////NRPC
|
||||
//if config.Settings.NEED_CREATE_NRPC == true {
|
||||
// TextNRPC := FindTextNRPC(MapAll, ModelURL)
|
||||
// TextCrudStarter = TextCrudStarter + "\n" + TextNRPC
|
||||
//}
|
||||
|
||||
//замена импортов на новые URL
|
||||
TextCrudStarter = create_files.Replace_RepositoryImportsURL(TextCrudStarter)
|
||||
|
||||
//удаление пустого импорта
|
||||
TextCrudStarter = create_files.Delete_EmptyImport(TextCrudStarter)
|
||||
|
||||
//запись файла
|
||||
err = os.WriteFile(FilenameReadyCrudStarter, []byte(TextCrudStarter), config.Settings.FILE_PERMISSIONS)
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
// FindTextObjectsImport - возвращает текст всех функций .proto для таблицы
|
||||
func FindTextObjectsImport(MapAll map[string]*types.Table, ModelURL string) string {
|
||||
Otvet := `
|
||||
import (`
|
||||
//сортировка по названию таблиц
|
||||
keys := make([]string, 0, len(MapAll))
|
||||
for k := range MapAll {
|
||||
keys = append(keys, k)
|
||||
}
|
||||
sort.Strings(keys)
|
||||
|
||||
//все таблицы
|
||||
TextStarter := ""
|
||||
//TextModel := ""
|
||||
TextDB := ""
|
||||
for _, key1 := range keys {
|
||||
Table1, ok := MapAll[key1]
|
||||
if ok == false {
|
||||
log.Panic("MapAll[key1] not found, key: ", key1)
|
||||
}
|
||||
|
||||
//проверка что таблица нормальная
|
||||
err1 := create_files.IsGood_Table(Table1)
|
||||
if err1 != nil {
|
||||
log.Warn(err1)
|
||||
continue
|
||||
}
|
||||
|
||||
TextStarter = TextStarter + FindTextImportStarter1(Table1)
|
||||
TextDB = TextDB + FindTextObjectsImportDB1(Table1)
|
||||
}
|
||||
|
||||
Otvet = Otvet + TextStarter + "\n" + TextDB
|
||||
|
||||
Otvet = Otvet + "\n)"
|
||||
|
||||
return Otvet
|
||||
}
|
||||
|
||||
// FindTextObjectsImportDB1 - возвращает текст импорта DB для 1 таблицы
|
||||
func FindTextObjectsImportDB1(Table1 *types.Table) string {
|
||||
CrudObjectURL := create_files.Find_CrudObjectTableURL(Table1.Name)
|
||||
Otvet := "\n\t" + `"` + CrudObjectURL + `"`
|
||||
|
||||
return Otvet
|
||||
}
|
||||
|
||||
// FindText_InitCrudTransport_ReadObject - возвращает текст для всех таблиц
|
||||
func FindText_InitCrudTransport_ReadObject(MapAll map[string]*types.Table, ModelURL string) string {
|
||||
Otvet := `
|
||||
// InitCrudTransport_ReadObject - заполняет объекты crud для работы с БД напрямую
|
||||
func InitCrudTransport_ReadObject() {`
|
||||
if config.Settings.USE_DEFAULT_TEMPLATE == true {
|
||||
Otvet = Otvet + `
|
||||
`
|
||||
}
|
||||
//сортировка по названию таблиц
|
||||
keys := make([]string, 0, len(MapAll))
|
||||
for k := range MapAll {
|
||||
keys = append(keys, k)
|
||||
}
|
||||
sort.Strings(keys)
|
||||
|
||||
for _, key1 := range keys {
|
||||
Table1, ok := MapAll[key1]
|
||||
if ok == false {
|
||||
log.Panic("MapAll[key1] not found, key: ", key1)
|
||||
}
|
||||
|
||||
//проверка что таблица нормальная
|
||||
err1 := create_files.IsGood_Table(Table1)
|
||||
if err1 != nil {
|
||||
log.Warn(err1)
|
||||
continue
|
||||
}
|
||||
|
||||
Otvet = Otvet + FindTextReadObject1(Table1)
|
||||
}
|
||||
|
||||
Otvet = Otvet + "\n}"
|
||||
|
||||
return Otvet
|
||||
}
|
||||
|
||||
// FindTextReadObject1 - возвращает текст для 1 таблицы
|
||||
func FindTextReadObject1(Table1 *types.Table) string {
|
||||
TableName := strings.ToLower(Table1.Name)
|
||||
Otvet := "\n\t" + config.Settings.STARTER_TABLES_PREFIX + TableName + ".SetCrudReadObjectInterface(" + config.Settings.PREFIX_CRUD + "object_" + TableName + ".Crud_DB{})"
|
||||
|
||||
return Otvet
|
||||
}
|
@ -1 +0,0 @@
|
||||
package crud_starter
|
@ -3,13 +3,9 @@ package crud_starter_tables
|
||||
import (
|
||||
"github.com/ManyakRus/crud_generator/internal/config"
|
||||
"github.com/ManyakRus/crud_generator/internal/create_files"
|
||||
"github.com/ManyakRus/crud_generator/internal/folders"
|
||||
"github.com/ManyakRus/crud_generator/internal/types"
|
||||
"github.com/ManyakRus/starter/log"
|
||||
"github.com/ManyakRus/starter/micro"
|
||||
|
||||
"os"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// CreateAllFiles - создаёт все файлы в папке db
|
||||
@ -56,249 +52,21 @@ func CreateAllFiles(MapAll map[string]*types.Table) error {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
//ReadObject
|
||||
if config.Settings.NEED_CREATE_READOBJECT == true {
|
||||
err = CreateFiles_ReadObject(Table1)
|
||||
if err != nil {
|
||||
log.Error("CreateFiles_ReadObject() table: ", Table1.Name, " error: ", err)
|
||||
return err
|
||||
}
|
||||
err = CreateFiles_ReadObject_Test(Table1)
|
||||
if err != nil {
|
||||
log.Error("CreateFiles_ReadObject_Test() table: ", Table1.Name, " error: ", err)
|
||||
return err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
// CreateFiles - создаёт 1 файл в папке db
|
||||
func CreateFiles(Table1 *types.Table) error {
|
||||
var err error
|
||||
|
||||
//чтение файлов
|
||||
DirBin := micro.ProgramDir_bin()
|
||||
DirTemplates := DirBin + config.Settings.TEMPLATE_FOLDERNAME + micro.SeparatorFile()
|
||||
DirReady := DirBin + config.Settings.READY_FOLDERNAME + micro.SeparatorFile()
|
||||
DirTemplatesDB := DirTemplates + config.Settings.TEMPLATE_FOLDERNAME_CRUD_STARTER + micro.SeparatorFile()
|
||||
DirReadyDB := DirReady + config.Settings.TEMPLATE_FOLDERNAME_CRUD_STARTER + micro.SeparatorFile()
|
||||
|
||||
FilenameTemplateDB := DirTemplatesDB + config.Settings.STARTER_TABLES_FILENAME
|
||||
TableName := strings.ToLower(Table1.Name)
|
||||
DirReadyTable := DirReadyDB + config.Settings.STARTER_TABLES_PREFIX + TableName
|
||||
FilenameReadyDB := DirReadyTable + micro.SeparatorFile() + config.Settings.STARTER_TABLES_PREFIX + TableName + ".go"
|
||||
|
||||
//создадим каталог
|
||||
create_files.CreateDirectory(DirReadyTable)
|
||||
|
||||
bytes, err := os.ReadFile(FilenameTemplateDB)
|
||||
if err != nil {
|
||||
log.Panic("ReadFile() ", FilenameTemplateDB, " error: ", err)
|
||||
}
|
||||
TextDB := string(bytes)
|
||||
|
||||
//заменим имя пакета на новое
|
||||
TextDB = create_files.Replace_PackageName(TextDB, DirReadyTable)
|
||||
|
||||
//заменим импорты
|
||||
if config.Settings.USE_DEFAULT_TEMPLATE == true {
|
||||
TextDB = create_files.Delete_TemplateRepositoryImports(TextDB)
|
||||
|
||||
ModelTableURL := create_files.Find_ModelTableURL(TableName)
|
||||
TextDB = create_files.AddImport(TextDB, ModelTableURL)
|
||||
|
||||
}
|
||||
|
||||
//создание текста
|
||||
TextDB = create_files.Replace_TemplateModel_to_Model(TextDB, Table1.NameGo)
|
||||
TextDB = create_files.Replace_TemplateTableName_to_TableName(TextDB, Table1.Name)
|
||||
TextDB = create_files.AddText_ModuleGenerated(TextDB)
|
||||
|
||||
//ModelName := Table1.NameGo
|
||||
//TextDB = strings.ReplaceAll(TextDB, config.Settings.TEXT_TEMPLATE_MODEL, ModelName)
|
||||
//TextDB = strings.ReplaceAll(TextDB, config.Settings.TEXT_TEMPLATE_TABLENAME, Table1.Name)
|
||||
//TextDB = config.Settings.TEXT_MODULE_GENERATED + TextDB
|
||||
|
||||
//замена импортов на новые URL
|
||||
TextDB = create_files.Replace_RepositoryImportsURL(TextDB)
|
||||
|
||||
//удаление пустого импорта
|
||||
TextDB = create_files.Delete_EmptyImport(TextDB)
|
||||
|
||||
//запись файла
|
||||
err = os.WriteFile(FilenameReadyDB, []byte(TextDB), config.Settings.FILE_PERMISSIONS)
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
// CreateFiles_Test - создаёт 1 файл в папке db
|
||||
func CreateFiles_Test(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()
|
||||
DirTemplatesDB := DirTemplates + config.Settings.TEMPLATE_FOLDERNAME_CRUD_STARTER + micro.SeparatorFile()
|
||||
DirReadyDB := DirReady + config.Settings.TEMPLATE_FOLDERNAME_CRUD_STARTER + micro.SeparatorFile()
|
||||
|
||||
FilenameTemplateDB := DirTemplatesDB + config.Settings.STARTER_TABLES_TEST_FILENAME
|
||||
DirReadyTable := DirReadyDB + config.Settings.STARTER_TABLES_PREFIX + TableName
|
||||
FilenameReadyDB := DirReadyTable + micro.SeparatorFile() + config.Settings.STARTER_TABLES_PREFIX + TableName + "_test.go"
|
||||
|
||||
//создадим папку готовых файлов
|
||||
folders.CreateFolder(DirReadyTable)
|
||||
|
||||
bytes, err := os.ReadFile(FilenameTemplateDB)
|
||||
if err != nil {
|
||||
log.Panic("ReadFile() ", FilenameTemplateDB, " error: ", err)
|
||||
}
|
||||
TextDB := string(bytes)
|
||||
|
||||
//заменим имя пакета на новое
|
||||
TextDB = create_files.Replace_PackageName(TextDB, DirReadyTable)
|
||||
|
||||
//заменим импорты
|
||||
if config.Settings.USE_DEFAULT_TEMPLATE == true {
|
||||
TextDB = create_files.Delete_TemplateRepositoryImports(TextDB)
|
||||
|
||||
CrudTableURL := create_files.Find_CrudTableURL(TableName)
|
||||
TextDB = create_files.AddImport(TextDB, CrudTableURL)
|
||||
|
||||
}
|
||||
|
||||
//создание текста
|
||||
TextDB = create_files.Replace_TemplateModel_to_Model(TextDB, Table1.NameGo)
|
||||
TextDB = create_files.Replace_TemplateTableName_to_TableName(TextDB, Table1.Name)
|
||||
TextDB = create_files.AddText_ModuleGenerated(TextDB)
|
||||
|
||||
//ModelName := Table1.NameGo
|
||||
//TextDB = strings.ReplaceAll(TextDB, config.Settings.TEXT_TEMPLATE_MODEL, ModelName)
|
||||
//TextDB = strings.ReplaceAll(TextDB, config.Settings.TEXT_TEMPLATE_TABLENAME, Table1.Name)
|
||||
//TextDB = config.Settings.TEXT_MODULE_GENERATED + TextDB
|
||||
|
||||
//замена импортов на новые URL
|
||||
TextDB = create_files.Replace_RepositoryImportsURL(TextDB)
|
||||
|
||||
//удаление пустого импорта
|
||||
TextDB = create_files.Delete_EmptyImport(TextDB)
|
||||
|
||||
//запись файла
|
||||
err = os.WriteFile(FilenameReadyDB, []byte(TextDB), config.Settings.FILE_PERMISSIONS)
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
// CreateFiles_manual - создаёт 1 файл в папке crud_starter
|
||||
func CreateFiles_manual(Table1 *types.Table) error {
|
||||
var err error
|
||||
|
||||
//чтение файлов
|
||||
DirBin := micro.ProgramDir_bin()
|
||||
DirTemplates := DirBin + config.Settings.TEMPLATE_FOLDERNAME + micro.SeparatorFile()
|
||||
DirReady := DirBin + config.Settings.READY_FOLDERNAME + micro.SeparatorFile()
|
||||
DirTemplatesDB := DirTemplates + config.Settings.TEMPLATE_FOLDERNAME_CRUD_STARTER + micro.SeparatorFile()
|
||||
DirReadyDB := DirReady + config.Settings.TEMPLATE_FOLDERNAME_CRUD_STARTER + micro.SeparatorFile()
|
||||
|
||||
FilenameTemplateDB := DirTemplatesDB + config.Settings.STARTER_TABLES_MANUAL_FILENAME
|
||||
TableName := strings.ToLower(Table1.Name)
|
||||
DirReadyTable := DirReadyDB + config.Settings.STARTER_TABLES_PREFIX + TableName
|
||||
FilenameReadyManual := DirReadyTable + micro.SeparatorFile() + config.Settings.STARTER_TABLES_PREFIX + TableName + "_manual.go"
|
||||
|
||||
//создадим каталог
|
||||
create_files.CreateDirectory(DirReadyTable)
|
||||
|
||||
//
|
||||
bytes, err := os.ReadFile(FilenameTemplateDB)
|
||||
if err != nil {
|
||||
log.Panic("ReadFile() ", FilenameTemplateDB, " error: ", err)
|
||||
}
|
||||
TextManual := string(bytes)
|
||||
|
||||
//заменим имя пакета на новое
|
||||
TextManual = create_files.Replace_PackageName(TextManual, DirReadyTable)
|
||||
|
||||
//заменим импорты
|
||||
if config.Settings.USE_DEFAULT_TEMPLATE == true {
|
||||
TextManual = create_files.Delete_TemplateRepositoryImports(TextManual)
|
||||
|
||||
ModelTableURL := create_files.Find_ModelTableURL(TableName)
|
||||
TextManual = create_files.AddImport(TextManual, ModelTableURL)
|
||||
|
||||
}
|
||||
|
||||
//создание текста
|
||||
TextManual = create_files.Replace_TemplateModel_to_Model(TextManual, Table1.NameGo)
|
||||
TextManual = create_files.Replace_TemplateTableName_to_TableName(TextManual, Table1.Name)
|
||||
|
||||
//ModelName := Table1.NameGo
|
||||
//TextManual = strings.ReplaceAll(TextManual, config.Settings.TEXT_TEMPLATE_MODEL, ModelName)
|
||||
//TextManual = strings.ReplaceAll(TextManual, config.Settings.TEXT_TEMPLATE_TABLENAME, Table1.Name)
|
||||
TextManual = TextManual
|
||||
|
||||
//замена импортов на новые URL
|
||||
TextManual = create_files.Replace_RepositoryImportsURL(TextManual)
|
||||
|
||||
//удаление пустого импорта
|
||||
TextManual = create_files.Delete_EmptyImport(TextManual)
|
||||
|
||||
//запись файла
|
||||
err = os.WriteFile(FilenameReadyManual, []byte(TextManual), config.Settings.FILE_PERMISSIONS)
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
// CreateFiles_manual_test - создаёт 1 файл в папке crud_starter
|
||||
func CreateFiles_manual_test(Table1 *types.Table) error {
|
||||
var err error
|
||||
|
||||
//чтение файлов
|
||||
DirBin := micro.ProgramDir_bin()
|
||||
DirTemplates := DirBin + config.Settings.TEMPLATE_FOLDERNAME + micro.SeparatorFile()
|
||||
DirReady := DirBin + config.Settings.READY_FOLDERNAME + micro.SeparatorFile()
|
||||
DirTemplatesDB := DirTemplates + config.Settings.TEMPLATE_FOLDERNAME_CRUD_STARTER + micro.SeparatorFile()
|
||||
DirReadyDB := DirReady + config.Settings.TEMPLATE_FOLDERNAME_CRUD_STARTER + micro.SeparatorFile()
|
||||
|
||||
FilenameTemplateDB := DirTemplatesDB + config.Settings.STARTER_TABLES_TEST_MANUAL_FILENAME
|
||||
TableName := strings.ToLower(Table1.Name)
|
||||
DirReadyTable := DirReadyDB + config.Settings.STARTER_TABLES_PREFIX + TableName
|
||||
FilenameReadyManual := DirReadyTable + micro.SeparatorFile() + config.Settings.STARTER_TABLES_PREFIX + TableName + "_manual_test.go"
|
||||
|
||||
//создадим каталог
|
||||
create_files.CreateDirectory(DirReadyTable)
|
||||
|
||||
//
|
||||
bytes, err := os.ReadFile(FilenameTemplateDB)
|
||||
if err != nil {
|
||||
log.Panic("ReadFile() ", FilenameTemplateDB, " error: ", err)
|
||||
}
|
||||
TextManual := string(bytes)
|
||||
|
||||
//заменим имя пакета на новое
|
||||
TextManual = create_files.Replace_PackageName(TextManual, DirReadyTable)
|
||||
|
||||
//заменим импорты
|
||||
if config.Settings.USE_DEFAULT_TEMPLATE == true {
|
||||
TextManual = create_files.Delete_TemplateRepositoryImports(TextManual)
|
||||
|
||||
//
|
||||
ModelTableURL := create_files.Find_ModelTableURL(TableName)
|
||||
TextManual = create_files.AddImport(TextManual, ModelTableURL)
|
||||
|
||||
//
|
||||
CrudTableURL := create_files.Find_CrudTableURL(TableName)
|
||||
TextManual = create_files.AddImport(TextManual, CrudTableURL)
|
||||
|
||||
}
|
||||
|
||||
//создание текста
|
||||
TextManual = create_files.Replace_TemplateModel_to_Model(TextManual, Table1.NameGo)
|
||||
TextManual = create_files.Replace_TemplateTableName_to_TableName(TextManual, Table1.Name)
|
||||
|
||||
//ModelName := Table1.NameGo
|
||||
//TextManual = strings.ReplaceAll(TextManual, config.Settings.TEXT_TEMPLATE_MODEL, ModelName)
|
||||
//TextManual = strings.ReplaceAll(TextManual, config.Settings.TEXT_TEMPLATE_TABLENAME, Table1.Name)
|
||||
//TextManual = TextManual
|
||||
|
||||
//замена импортов на новые URL
|
||||
TextManual = create_files.Replace_RepositoryImportsURL(TextManual)
|
||||
|
||||
//удаление пустого импорта
|
||||
TextManual = create_files.Delete_EmptyImport(TextManual)
|
||||
|
||||
//запись файла
|
||||
err = os.WriteFile(FilenameReadyManual, []byte(TextManual), config.Settings.FILE_PERMISSIONS)
|
||||
|
||||
return err
|
||||
}
|
||||
|
@ -0,0 +1,132 @@
|
||||
package crud_starter_tables
|
||||
|
||||
import (
|
||||
"github.com/ManyakRus/crud_generator/internal/config"
|
||||
"github.com/ManyakRus/crud_generator/internal/create_files"
|
||||
"github.com/ManyakRus/crud_generator/internal/folders"
|
||||
"github.com/ManyakRus/crud_generator/internal/types"
|
||||
"github.com/ManyakRus/starter/log"
|
||||
"github.com/ManyakRus/starter/micro"
|
||||
|
||||
"os"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// CreateFiles - создаёт 1 файл в папке db
|
||||
func CreateFiles(Table1 *types.Table) error {
|
||||
var err error
|
||||
|
||||
//чтение файлов
|
||||
DirBin := micro.ProgramDir_bin()
|
||||
DirTemplates := DirBin + config.Settings.TEMPLATE_FOLDERNAME + micro.SeparatorFile()
|
||||
DirReady := DirBin + config.Settings.READY_FOLDERNAME + micro.SeparatorFile()
|
||||
DirTemplatesDB := DirTemplates + config.Settings.TEMPLATE_FOLDERNAME_CRUD_STARTER + micro.SeparatorFile()
|
||||
DirReadyDB := DirReady + config.Settings.TEMPLATE_FOLDERNAME_CRUD_STARTER + micro.SeparatorFile()
|
||||
|
||||
FilenameTemplateDB := DirTemplatesDB + config.Settings.STARTER_TABLES_FILENAME
|
||||
TableName := strings.ToLower(Table1.Name)
|
||||
DirReadyTable := DirReadyDB + config.Settings.STARTER_TABLES_PREFIX + TableName
|
||||
FilenameReadyDB := DirReadyTable + micro.SeparatorFile() + config.Settings.STARTER_TABLES_PREFIX + TableName + ".go"
|
||||
|
||||
//создадим каталог
|
||||
create_files.CreateDirectory(DirReadyTable)
|
||||
|
||||
bytes, err := os.ReadFile(FilenameTemplateDB)
|
||||
if err != nil {
|
||||
log.Panic("ReadFile() ", FilenameTemplateDB, " error: ", err)
|
||||
}
|
||||
TextDB := string(bytes)
|
||||
|
||||
//заменим имя пакета на новое
|
||||
TextDB = create_files.Replace_PackageName(TextDB, DirReadyTable)
|
||||
|
||||
//заменим импорты
|
||||
if config.Settings.USE_DEFAULT_TEMPLATE == true {
|
||||
TextDB = create_files.Delete_TemplateRepositoryImports(TextDB)
|
||||
|
||||
ModelTableURL := create_files.Find_ModelTableURL(TableName)
|
||||
TextDB = create_files.AddImport(TextDB, ModelTableURL)
|
||||
|
||||
}
|
||||
|
||||
//создание текста
|
||||
TextDB = create_files.Replace_TemplateModel_to_Model(TextDB, Table1.NameGo)
|
||||
TextDB = create_files.Replace_TemplateTableName_to_TableName(TextDB, Table1.Name)
|
||||
TextDB = create_files.AddText_ModuleGenerated(TextDB)
|
||||
|
||||
//ModelName := Table1.NameGo
|
||||
//TextDB = strings.ReplaceAll(TextDB, config.Settings.TEXT_TEMPLATE_MODEL, ModelName)
|
||||
//TextDB = strings.ReplaceAll(TextDB, config.Settings.TEXT_TEMPLATE_TABLENAME, Table1.Name)
|
||||
//TextDB = config.Settings.TEXT_MODULE_GENERATED + TextDB
|
||||
|
||||
//замена импортов на новые URL
|
||||
TextDB = create_files.Replace_RepositoryImportsURL(TextDB)
|
||||
|
||||
//удаление пустого импорта
|
||||
TextDB = create_files.Delete_EmptyImport(TextDB)
|
||||
|
||||
//запись файла
|
||||
err = os.WriteFile(FilenameReadyDB, []byte(TextDB), config.Settings.FILE_PERMISSIONS)
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
// CreateFiles_Test - создаёт 1 файл в папке db
|
||||
func CreateFiles_Test(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()
|
||||
DirTemplatesDB := DirTemplates + config.Settings.TEMPLATE_FOLDERNAME_CRUD_STARTER + micro.SeparatorFile()
|
||||
DirReadyDB := DirReady + config.Settings.TEMPLATE_FOLDERNAME_CRUD_STARTER + micro.SeparatorFile()
|
||||
|
||||
FilenameTemplateDB := DirTemplatesDB + config.Settings.STARTER_TABLES_TEST_FILENAME
|
||||
DirReadyTable := DirReadyDB + config.Settings.STARTER_TABLES_PREFIX + TableName
|
||||
FilenameReadyDB := DirReadyTable + micro.SeparatorFile() + config.Settings.STARTER_TABLES_PREFIX + TableName + "_test.go"
|
||||
|
||||
//создадим папку готовых файлов
|
||||
folders.CreateFolder(DirReadyTable)
|
||||
|
||||
bytes, err := os.ReadFile(FilenameTemplateDB)
|
||||
if err != nil {
|
||||
log.Panic("ReadFile() ", FilenameTemplateDB, " error: ", err)
|
||||
}
|
||||
TextDB := string(bytes)
|
||||
|
||||
//заменим имя пакета на новое
|
||||
TextDB = create_files.Replace_PackageName(TextDB, DirReadyTable)
|
||||
|
||||
//заменим импорты
|
||||
if config.Settings.USE_DEFAULT_TEMPLATE == true {
|
||||
TextDB = create_files.Delete_TemplateRepositoryImports(TextDB)
|
||||
|
||||
CrudTableURL := create_files.Find_CrudTableURL(TableName)
|
||||
TextDB = create_files.AddImport(TextDB, CrudTableURL)
|
||||
|
||||
}
|
||||
|
||||
//создание текста
|
||||
TextDB = create_files.Replace_TemplateModel_to_Model(TextDB, Table1.NameGo)
|
||||
TextDB = create_files.Replace_TemplateTableName_to_TableName(TextDB, Table1.Name)
|
||||
TextDB = create_files.AddText_ModuleGenerated(TextDB)
|
||||
|
||||
//ModelName := Table1.NameGo
|
||||
//TextDB = strings.ReplaceAll(TextDB, config.Settings.TEXT_TEMPLATE_MODEL, ModelName)
|
||||
//TextDB = strings.ReplaceAll(TextDB, config.Settings.TEXT_TEMPLATE_TABLENAME, Table1.Name)
|
||||
//TextDB = config.Settings.TEXT_MODULE_GENERATED + TextDB
|
||||
|
||||
//замена импортов на новые URL
|
||||
TextDB = create_files.Replace_RepositoryImportsURL(TextDB)
|
||||
|
||||
//удаление пустого импорта
|
||||
TextDB = create_files.Delete_EmptyImport(TextDB)
|
||||
|
||||
//запись файла
|
||||
err = os.WriteFile(FilenameReadyDB, []byte(TextDB), config.Settings.FILE_PERMISSIONS)
|
||||
|
||||
return err
|
||||
}
|
@ -0,0 +1,135 @@
|
||||
package crud_starter_tables
|
||||
|
||||
import (
|
||||
"github.com/ManyakRus/crud_generator/internal/config"
|
||||
"github.com/ManyakRus/crud_generator/internal/create_files"
|
||||
"github.com/ManyakRus/crud_generator/internal/types"
|
||||
"github.com/ManyakRus/starter/log"
|
||||
"github.com/ManyakRus/starter/micro"
|
||||
|
||||
"os"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// CreateFiles_manual - создаёт 1 файл в папке crud_starter
|
||||
func CreateFiles_manual(Table1 *types.Table) error {
|
||||
var err error
|
||||
|
||||
//чтение файлов
|
||||
DirBin := micro.ProgramDir_bin()
|
||||
DirTemplates := DirBin + config.Settings.TEMPLATE_FOLDERNAME + micro.SeparatorFile()
|
||||
DirReady := DirBin + config.Settings.READY_FOLDERNAME + micro.SeparatorFile()
|
||||
DirTemplatesDB := DirTemplates + config.Settings.TEMPLATE_FOLDERNAME_CRUD_STARTER + micro.SeparatorFile()
|
||||
DirReadyDB := DirReady + config.Settings.TEMPLATE_FOLDERNAME_CRUD_STARTER + micro.SeparatorFile()
|
||||
|
||||
FilenameTemplateDB := DirTemplatesDB + config.Settings.STARTER_TABLES_MANUAL_FILENAME
|
||||
TableName := strings.ToLower(Table1.Name)
|
||||
DirReadyTable := DirReadyDB + config.Settings.STARTER_TABLES_PREFIX + TableName
|
||||
FilenameReadyManual := DirReadyTable + micro.SeparatorFile() + config.Settings.STARTER_TABLES_PREFIX + TableName + "_manual.go"
|
||||
|
||||
//создадим каталог
|
||||
create_files.CreateDirectory(DirReadyTable)
|
||||
|
||||
//
|
||||
bytes, err := os.ReadFile(FilenameTemplateDB)
|
||||
if err != nil {
|
||||
log.Panic("ReadFile() ", FilenameTemplateDB, " error: ", err)
|
||||
}
|
||||
TextManual := string(bytes)
|
||||
|
||||
//заменим имя пакета на новое
|
||||
TextManual = create_files.Replace_PackageName(TextManual, DirReadyTable)
|
||||
|
||||
//заменим импорты
|
||||
if config.Settings.USE_DEFAULT_TEMPLATE == true {
|
||||
TextManual = create_files.Delete_TemplateRepositoryImports(TextManual)
|
||||
|
||||
ModelTableURL := create_files.Find_ModelTableURL(TableName)
|
||||
TextManual = create_files.AddImport(TextManual, ModelTableURL)
|
||||
|
||||
}
|
||||
|
||||
//создание текста
|
||||
TextManual = create_files.Replace_TemplateModel_to_Model(TextManual, Table1.NameGo)
|
||||
TextManual = create_files.Replace_TemplateTableName_to_TableName(TextManual, Table1.Name)
|
||||
|
||||
//ModelName := Table1.NameGo
|
||||
//TextManual = strings.ReplaceAll(TextManual, config.Settings.TEXT_TEMPLATE_MODEL, ModelName)
|
||||
//TextManual = strings.ReplaceAll(TextManual, config.Settings.TEXT_TEMPLATE_TABLENAME, Table1.Name)
|
||||
TextManual = TextManual
|
||||
|
||||
//замена импортов на новые URL
|
||||
TextManual = create_files.Replace_RepositoryImportsURL(TextManual)
|
||||
|
||||
//удаление пустого импорта
|
||||
TextManual = create_files.Delete_EmptyImport(TextManual)
|
||||
|
||||
//запись файла
|
||||
err = os.WriteFile(FilenameReadyManual, []byte(TextManual), config.Settings.FILE_PERMISSIONS)
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
// CreateFiles_manual_test - создаёт 1 файл в папке crud_starter
|
||||
func CreateFiles_manual_test(Table1 *types.Table) error {
|
||||
var err error
|
||||
|
||||
//чтение файлов
|
||||
DirBin := micro.ProgramDir_bin()
|
||||
DirTemplates := DirBin + config.Settings.TEMPLATE_FOLDERNAME + micro.SeparatorFile()
|
||||
DirReady := DirBin + config.Settings.READY_FOLDERNAME + micro.SeparatorFile()
|
||||
DirTemplatesDB := DirTemplates + config.Settings.TEMPLATE_FOLDERNAME_CRUD_STARTER + micro.SeparatorFile()
|
||||
DirReadyDB := DirReady + config.Settings.TEMPLATE_FOLDERNAME_CRUD_STARTER + micro.SeparatorFile()
|
||||
|
||||
FilenameTemplateDB := DirTemplatesDB + config.Settings.STARTER_TABLES_TEST_MANUAL_FILENAME
|
||||
TableName := strings.ToLower(Table1.Name)
|
||||
DirReadyTable := DirReadyDB + config.Settings.STARTER_TABLES_PREFIX + TableName
|
||||
FilenameReadyManual := DirReadyTable + micro.SeparatorFile() + config.Settings.STARTER_TABLES_PREFIX + TableName + "_manual_test.go"
|
||||
|
||||
//создадим каталог
|
||||
create_files.CreateDirectory(DirReadyTable)
|
||||
|
||||
//
|
||||
bytes, err := os.ReadFile(FilenameTemplateDB)
|
||||
if err != nil {
|
||||
log.Panic("ReadFile() ", FilenameTemplateDB, " error: ", err)
|
||||
}
|
||||
TextManual := string(bytes)
|
||||
|
||||
//заменим имя пакета на новое
|
||||
TextManual = create_files.Replace_PackageName(TextManual, DirReadyTable)
|
||||
|
||||
//заменим импорты
|
||||
if config.Settings.USE_DEFAULT_TEMPLATE == true {
|
||||
TextManual = create_files.Delete_TemplateRepositoryImports(TextManual)
|
||||
|
||||
//
|
||||
ModelTableURL := create_files.Find_ModelTableURL(TableName)
|
||||
TextManual = create_files.AddImport(TextManual, ModelTableURL)
|
||||
|
||||
//
|
||||
CrudTableURL := create_files.Find_CrudTableURL(TableName)
|
||||
TextManual = create_files.AddImport(TextManual, CrudTableURL)
|
||||
|
||||
}
|
||||
|
||||
//создание текста
|
||||
TextManual = create_files.Replace_TemplateModel_to_Model(TextManual, Table1.NameGo)
|
||||
TextManual = create_files.Replace_TemplateTableName_to_TableName(TextManual, Table1.Name)
|
||||
|
||||
//ModelName := Table1.NameGo
|
||||
//TextManual = strings.ReplaceAll(TextManual, config.Settings.TEXT_TEMPLATE_MODEL, ModelName)
|
||||
//TextManual = strings.ReplaceAll(TextManual, config.Settings.TEXT_TEMPLATE_TABLENAME, Table1.Name)
|
||||
//TextManual = TextManual
|
||||
|
||||
//замена импортов на новые URL
|
||||
TextManual = create_files.Replace_RepositoryImportsURL(TextManual)
|
||||
|
||||
//удаление пустого импорта
|
||||
TextManual = create_files.Delete_EmptyImport(TextManual)
|
||||
|
||||
//запись файла
|
||||
err = os.WriteFile(FilenameReadyManual, []byte(TextManual), config.Settings.FILE_PERMISSIONS)
|
||||
|
||||
return err
|
||||
}
|
@ -0,0 +1,131 @@
|
||||
package crud_starter_tables
|
||||
|
||||
import (
|
||||
"github.com/ManyakRus/crud_generator/internal/config"
|
||||
"github.com/ManyakRus/crud_generator/internal/create_files"
|
||||
"github.com/ManyakRus/crud_generator/internal/folders"
|
||||
"github.com/ManyakRus/crud_generator/internal/types"
|
||||
"github.com/ManyakRus/starter/log"
|
||||
"github.com/ManyakRus/starter/micro"
|
||||
|
||||
"os"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// CreateFiles_ReadObject - создаёт 1 файл в папке db
|
||||
func CreateFiles_ReadObject(Table1 *types.Table) error {
|
||||
var err error
|
||||
|
||||
//чтение файлов
|
||||
DirBin := micro.ProgramDir_bin()
|
||||
DirTemplates := DirBin + config.Settings.TEMPLATE_FOLDERNAME + micro.SeparatorFile()
|
||||
DirReady := DirBin + config.Settings.READY_FOLDERNAME + micro.SeparatorFile()
|
||||
DirTemplatesDB := DirTemplates + config.Settings.TEMPLATE_FOLDERNAME_CRUD_STARTER + micro.SeparatorFile()
|
||||
DirReadyDB := DirReady + config.Settings.TEMPLATE_FOLDERNAME_CRUD_STARTER + micro.SeparatorFile()
|
||||
|
||||
FilenameTemplateDB := DirTemplatesDB + config.Settings.STARTER_TABLES_READOBJECT_FILENAME
|
||||
TableName := strings.ToLower(Table1.Name)
|
||||
DirReadyTable := DirReadyDB + config.Settings.STARTER_TABLES_PREFIX + TableName
|
||||
FilenameReadyDB := DirReadyTable + micro.SeparatorFile() + config.Settings.STARTER_TABLES_PREFIX + TableName + "_readobject.go"
|
||||
|
||||
//создадим каталог
|
||||
create_files.CreateDirectory(DirReadyTable)
|
||||
|
||||
bytes, err := os.ReadFile(FilenameTemplateDB)
|
||||
if err != nil {
|
||||
log.Panic("ReadFile() ", FilenameTemplateDB, " error: ", err)
|
||||
}
|
||||
TextDB := string(bytes)
|
||||
|
||||
//заменим имя пакета на новое
|
||||
TextDB = create_files.Replace_PackageName(TextDB, DirReadyTable)
|
||||
|
||||
//заменим импорты
|
||||
if config.Settings.USE_DEFAULT_TEMPLATE == true {
|
||||
TextDB = create_files.Delete_TemplateRepositoryImports(TextDB)
|
||||
|
||||
ObjectTableURL := create_files.Find_ObjectTableURL(TableName)
|
||||
TextDB = create_files.AddImport(TextDB, ObjectTableURL)
|
||||
|
||||
}
|
||||
|
||||
//создание текста
|
||||
TextDB = create_files.Replace_TemplateModel_to_Model(TextDB, Table1.NameGo)
|
||||
TextDB = create_files.Replace_TemplateTableName_to_TableName(TextDB, Table1.Name)
|
||||
TextDB = create_files.AddText_ModuleGenerated(TextDB)
|
||||
|
||||
//ModelName := Table1.NameGo
|
||||
//TextDB = strings.ReplaceAll(TextDB, config.Settings.TEXT_TEMPLATE_MODEL, ModelName)
|
||||
//TextDB = strings.ReplaceAll(TextDB, config.Settings.TEXT_TEMPLATE_TABLENAME, Table1.Name)
|
||||
//TextDB = config.Settings.TEXT_MODULE_GENERATED + TextDB
|
||||
|
||||
//замена импортов на новые URL
|
||||
TextDB = create_files.Replace_RepositoryImportsURL(TextDB)
|
||||
|
||||
//удаление пустого импорта
|
||||
TextDB = create_files.Delete_EmptyImport(TextDB)
|
||||
|
||||
//запись файла
|
||||
err = os.WriteFile(FilenameReadyDB, []byte(TextDB), config.Settings.FILE_PERMISSIONS)
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
// CreateFiles_ReadObject_Test - создаёт 1 файл в папке db
|
||||
func CreateFiles_ReadObject_Test(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()
|
||||
DirTemplatesDB := DirTemplates + config.Settings.TEMPLATE_FOLDERNAME_CRUD_STARTER + micro.SeparatorFile()
|
||||
DirReadyDB := DirReady + config.Settings.TEMPLATE_FOLDERNAME_CRUD_STARTER + micro.SeparatorFile()
|
||||
|
||||
FilenameTemplateDB := DirTemplatesDB + config.Settings.STARTER_TABLES_READOBJECT_TEST_FILENAME
|
||||
DirReadyTable := DirReadyDB + config.Settings.STARTER_TABLES_PREFIX + TableName
|
||||
FilenameReadyDB := DirReadyTable + micro.SeparatorFile() + config.Settings.STARTER_TABLES_PREFIX + TableName + "_readobject_test.go"
|
||||
|
||||
//создадим папку готовых файлов
|
||||
folders.CreateFolder(DirReadyTable)
|
||||
|
||||
bytes, err := os.ReadFile(FilenameTemplateDB)
|
||||
if err != nil {
|
||||
log.Panic("ReadFile() ", FilenameTemplateDB, " error: ", err)
|
||||
}
|
||||
TextDB := string(bytes)
|
||||
|
||||
//заменим имя пакета на новое
|
||||
TextDB = create_files.Replace_PackageName(TextDB, DirReadyTable)
|
||||
|
||||
//заменим импорты
|
||||
if config.Settings.USE_DEFAULT_TEMPLATE == true {
|
||||
TextDB = create_files.Delete_TemplateRepositoryImports(TextDB)
|
||||
|
||||
CrudObjectTableURL := create_files.Find_CrudObjectTableURL(TableName)
|
||||
TextDB = create_files.AddImport(TextDB, CrudObjectTableURL)
|
||||
}
|
||||
|
||||
//создание текста
|
||||
TextDB = create_files.Replace_TemplateModel_to_Model(TextDB, Table1.NameGo)
|
||||
TextDB = create_files.Replace_TemplateTableName_to_TableName(TextDB, Table1.Name)
|
||||
TextDB = create_files.AddText_ModuleGenerated(TextDB)
|
||||
|
||||
//ModelName := Table1.NameGo
|
||||
//TextDB = strings.ReplaceAll(TextDB, config.Settings.TEXT_TEMPLATE_MODEL, ModelName)
|
||||
//TextDB = strings.ReplaceAll(TextDB, config.Settings.TEXT_TEMPLATE_TABLENAME, Table1.Name)
|
||||
//TextDB = config.Settings.TEXT_MODULE_GENERATED + TextDB
|
||||
|
||||
//замена импортов на новые URL
|
||||
TextDB = create_files.Replace_RepositoryImportsURL(TextDB)
|
||||
|
||||
//удаление пустого импорта
|
||||
TextDB = create_files.Delete_EmptyImport(TextDB)
|
||||
|
||||
//запись файла
|
||||
err = os.WriteFile(FilenameReadyDB, []byte(TextDB), config.Settings.FILE_PERMISSIONS)
|
||||
|
||||
return err
|
||||
}
|
@ -133,6 +133,22 @@ func CreateAllFiles(MapAll map[string]*types.Table) error {
|
||||
return err
|
||||
}
|
||||
|
||||
//
|
||||
if config.Settings.NEED_CREATE_READOBJECT == true {
|
||||
err = CreateFiles_ReadObject(Table1)
|
||||
if err != nil {
|
||||
log.Error("CreateFiles_ReadObject() table: ", Table1.Name, " error: ", err)
|
||||
return err
|
||||
}
|
||||
|
||||
err = CreateFiles_ReadObject_Test(Table1)
|
||||
if err != nil {
|
||||
log.Error("CreateFiles_ReadObject_Test() table: ", Table1.Name, " error: ", err)
|
||||
return err
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return err
|
||||
|
@ -0,0 +1,225 @@
|
||||
package grpc_client_tables
|
||||
|
||||
import (
|
||||
"github.com/ManyakRus/crud_generator/internal/config"
|
||||
"github.com/ManyakRus/crud_generator/internal/create_files"
|
||||
"github.com/ManyakRus/crud_generator/internal/folders"
|
||||
"github.com/ManyakRus/crud_generator/internal/types"
|
||||
"github.com/ManyakRus/starter/log"
|
||||
"github.com/ManyakRus/starter/micro"
|
||||
"os"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// CreateFiles_ReadObject - создаёт 1 файл в папке grpc_client
|
||||
func CreateFiles_ReadObject(Table1 *types.Table) error {
|
||||
var err error
|
||||
|
||||
//чтение файлов
|
||||
DirBin := micro.ProgramDir_bin()
|
||||
DirTemplates := DirBin + config.Settings.TEMPLATE_FOLDERNAME + micro.SeparatorFile()
|
||||
DirReady := DirBin + config.Settings.READY_FOLDERNAME + micro.SeparatorFile()
|
||||
DirTemplatesGRPCClient := DirTemplates + config.Settings.TEMPLATE_FOLDERNAME_GRPC_CLIENT + micro.SeparatorFile()
|
||||
DirReadyGRPCClient := DirReady + config.Settings.TEMPLATE_FOLDERNAME_GRPC_CLIENT + micro.SeparatorFile()
|
||||
|
||||
FilenameTemplateGRPCClient := DirTemplatesGRPCClient + config.Settings.TEMPLATES_GRPC_CLIENT_TABLES_READOBJECT_FILENAME
|
||||
TableName := strings.ToLower(Table1.Name)
|
||||
DirReadyTable := DirReadyGRPCClient + "grpc_" + TableName + micro.SeparatorFile()
|
||||
FilenameReadyGRPCClient := DirReadyTable + "grpc_" + TableName + "_readobject.go"
|
||||
|
||||
//создадим папку готовых файлов
|
||||
folders.CreateFolder(DirReadyTable)
|
||||
|
||||
bytes, err := os.ReadFile(FilenameTemplateGRPCClient)
|
||||
if err != nil {
|
||||
log.Panic("ReadFile() ", FilenameTemplateGRPCClient, " error: ", err)
|
||||
}
|
||||
TextGRPCClient := string(bytes)
|
||||
|
||||
//заменим имя пакета на новое
|
||||
TextGRPCClient = create_files.Replace_PackageName(TextGRPCClient, DirReadyTable)
|
||||
|
||||
//создание текста
|
||||
//заменим импорты
|
||||
if config.Settings.USE_DEFAULT_TEMPLATE == true {
|
||||
//TextGRPCClient = create_files.Replace_RepositoryImportsURL(TextGRPCClient)
|
||||
TextGRPCClient = create_files.Delete_TemplateRepositoryImports(TextGRPCClient)
|
||||
|
||||
//proto
|
||||
RepositoryGRPCProtoURL := create_files.Find_ProtoURL()
|
||||
TextGRPCClient = create_files.AddImport(TextGRPCClient, RepositoryGRPCProtoURL)
|
||||
|
||||
////model
|
||||
//RepositoryModelURL := create_files.Find_ModelTableURL(TableName)
|
||||
//TextGRPCClient = create_files.AddImport(TextGRPCClient, RepositoryModelURL)
|
||||
|
||||
//object
|
||||
ObjectModelURL := create_files.Find_ObjectTableURL(TableName)
|
||||
TextGRPCClient = create_files.AddImport(TextGRPCClient, ObjectModelURL)
|
||||
|
||||
////grpc client
|
||||
//RepositoryGRPCClientlURL := create_files.Find_GRPClientURL()
|
||||
//TextGRPCClient = create_files.AddImport(TextGRPCClient, RepositoryGRPCClientlURL)
|
||||
|
||||
//grpc client func
|
||||
GRPCClientFuncURL := create_files.Find_GRPCClient_func_URL()
|
||||
TextGRPCClient = create_files.AddImport(TextGRPCClient, GRPCClientFuncURL)
|
||||
|
||||
//nrpc client
|
||||
RepositoryNRPCClientlURL := create_files.Find_NRPClientURL()
|
||||
TextGRPCClient = create_files.AddImport(TextGRPCClient, RepositoryNRPCClientlURL)
|
||||
|
||||
//constants GRPC
|
||||
RepositoryGRPCConstantsURL := create_files.Find_GRPCConstantsURL()
|
||||
TextGRPCClient = create_files.AddImport(TextGRPCClient, RepositoryGRPCConstantsURL)
|
||||
|
||||
//DBConstantsURL := create_files.Find_DBConstantsURL()
|
||||
//TextGRPCClient = create_files.AddImport(TextGRPCClient, DBConstantsURL)
|
||||
|
||||
//grpc_nrpc
|
||||
GRPC_NRPC_URL := create_files.Find_GRPC_NRPC_URL()
|
||||
TextGRPCClient = create_files.AddImport(TextGRPCClient, GRPC_NRPC_URL)
|
||||
|
||||
//замена ID на PrimaryKey
|
||||
TextGRPCClient = Replace_PrimaryKeyRequest_ID(TextGRPCClient, Table1)
|
||||
TextGRPCClient = Replace_PrimaryKeyOtvetID(TextGRPCClient, Table1)
|
||||
|
||||
//замена ID на PrimaryKey
|
||||
TextGRPCClient = Replace_PrimaryKeyM_ID(TextGRPCClient, Table1)
|
||||
|
||||
//замена RequestId{}
|
||||
TextGRPCClient = ReplaceText_RequestID_PrimaryKey_ManyPK(TextGRPCClient, Table1)
|
||||
|
||||
//добавим импорт uuid
|
||||
TextGRPCClient = create_files.CheckAndAdd_ImportUUID_FromText(TextGRPCClient)
|
||||
|
||||
}
|
||||
|
||||
//удалим лишние функции
|
||||
TextGRPCClient = create_files.DeleteFunc_Delete(TextGRPCClient, Table1)
|
||||
TextGRPCClient = create_files.DeleteFunc_Restore(TextGRPCClient, Table1)
|
||||
TextGRPCClient = create_files.DeleteFunc_Find_byExtID(TextGRPCClient, Table1)
|
||||
|
||||
//замена имени таблицы
|
||||
TextGRPCClient = create_files.Replace_TemplateModel_to_Model(TextGRPCClient, Table1.NameGo)
|
||||
TextGRPCClient = create_files.Replace_TemplateTableName_to_TableName(TextGRPCClient, Table1.Name)
|
||||
TextGRPCClient = create_files.AddText_ModuleGenerated(TextGRPCClient)
|
||||
|
||||
//ModelName := Table1.NameGo
|
||||
//TextGRPCClient = strings.ReplaceAll(TextGRPCClient, config.Settings.TEXT_TEMPLATE_MODEL, ModelName)
|
||||
//TextGRPCClient = strings.ReplaceAll(TextGRPCClient, config.Settings.TEXT_TEMPLATE_TABLENAME, Table1.Name)
|
||||
//TextGRPCClient = config.Settings.TEXT_MODULE_GENERATED + TextGRPCClient
|
||||
|
||||
//удаление пустого импорта
|
||||
TextGRPCClient = create_files.Delete_EmptyImport(TextGRPCClient)
|
||||
|
||||
//удаление пустых строк
|
||||
TextGRPCClient = create_files.Delete_EmptyLines(TextGRPCClient)
|
||||
|
||||
//запись файла
|
||||
err = os.WriteFile(FilenameReadyGRPCClient, []byte(TextGRPCClient), config.Settings.FILE_PERMISSIONS)
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
// CreateFiles_ReadObject_Test - создаёт 1 файл в папке grpc_client
|
||||
func CreateFiles_ReadObject_Test(Table1 *types.Table) error {
|
||||
var err error
|
||||
|
||||
//чтение файлов
|
||||
DirBin := micro.ProgramDir_bin()
|
||||
DirTemplates := DirBin + config.Settings.TEMPLATE_FOLDERNAME + micro.SeparatorFile()
|
||||
DirReady := DirBin + config.Settings.READY_FOLDERNAME + micro.SeparatorFile()
|
||||
DirTemplatesGRPCClient := DirTemplates + config.Settings.TEMPLATE_FOLDERNAME_GRPC_CLIENT + micro.SeparatorFile()
|
||||
DirReadyGRPCClient := DirReady + config.Settings.TEMPLATE_FOLDERNAME_GRPC_CLIENT + micro.SeparatorFile()
|
||||
|
||||
FilenameTemplateGRPCClient := DirTemplatesGRPCClient + config.Settings.TEMPLATES_GRPC_CLIENT_TABLES_READOBJECT_TEST_FILENAME
|
||||
TableName := strings.ToLower(Table1.Name)
|
||||
DirReadyTable := DirReadyGRPCClient + "grpc_" + TableName + micro.SeparatorFile() + "tests" + micro.SeparatorFile()
|
||||
FilenameReadyGRPCClient := DirReadyTable + "grpc_" + TableName + "_readobject_test.go"
|
||||
|
||||
//создадим папку готовых файлов
|
||||
folders.CreateFolder(DirReadyTable)
|
||||
|
||||
bytes, err := os.ReadFile(FilenameTemplateGRPCClient)
|
||||
if err != nil {
|
||||
log.Panic("ReadFile() ", FilenameTemplateGRPCClient, " error: ", err)
|
||||
}
|
||||
TextGRPCClient := string(bytes)
|
||||
|
||||
//заменим имя пакета на новое
|
||||
TextGRPCClient = create_files.Replace_PackageName(TextGRPCClient, DirReadyTable)
|
||||
|
||||
//заменим импорты
|
||||
if config.Settings.USE_DEFAULT_TEMPLATE == true {
|
||||
TextGRPCClient = create_files.Delete_TemplateRepositoryImports(TextGRPCClient)
|
||||
|
||||
//
|
||||
GRPClientURL := create_files.Find_GRPClientURL()
|
||||
TextGRPCClient = create_files.AddImport(TextGRPCClient, GRPClientURL)
|
||||
|
||||
////
|
||||
//ModelTableName := create_files.Find_ModelTableURL(TableName)
|
||||
//TextGRPCClient = create_files.AddImport(TextGRPCClient, ModelTableName)
|
||||
|
||||
//object
|
||||
ObjectTableURL := create_files.Find_ObjectTableURL(TableName)
|
||||
TextGRPCClient = create_files.AddImport(TextGRPCClient, ObjectTableURL)
|
||||
|
||||
//
|
||||
GRPClientTableURL := create_files.Find_GRPCClientTableURL(Table1.Name)
|
||||
TextGRPCClient = create_files.AddImport(TextGRPCClient, GRPClientTableURL)
|
||||
|
||||
//GRPClientFuncURL := create_files.Find_GRPCClient_func_URL()
|
||||
//TextGRPCClient = create_files.AddImport(TextGRPCClient, GRPClientFuncURL)
|
||||
|
||||
//Postgres_ID_Test = ID Minimum
|
||||
TextGRPCClient = Replace_Postgres_ID_Test(TextGRPCClient, Table1)
|
||||
|
||||
//замена Otvet.ID = -1
|
||||
TextGRPCClient = Replace_OtvetIDEqual1(TextGRPCClient, Table1)
|
||||
|
||||
//замена Otvet.ID = 0
|
||||
TextGRPCClient = Replace_OtvetIDEqual0(TextGRPCClient, Table1)
|
||||
|
||||
//замена ID на PrimaryKey
|
||||
TextGRPCClient = Replace_PrimaryKeyOtvetID(TextGRPCClient, Table1)
|
||||
|
||||
//добавим импорт uuid
|
||||
TextGRPCClient = create_files.CheckAndAdd_ImportUUID_FromText(TextGRPCClient)
|
||||
|
||||
}
|
||||
|
||||
//создание текста
|
||||
TextGRPCClient = create_files.Replace_TemplateModel_to_Model(TextGRPCClient, Table1.NameGo)
|
||||
TextGRPCClient = create_files.Replace_TemplateTableName_to_TableName(TextGRPCClient, Table1.Name)
|
||||
TextGRPCClient = create_files.AddText_ModuleGenerated(TextGRPCClient)
|
||||
|
||||
ModelName := Table1.NameGo
|
||||
//TextGRPCClient = strings.ReplaceAll(TextGRPCClient, config.Settings.TEXT_TEMPLATE_MODEL, ModelName)
|
||||
//TextGRPCClient = strings.ReplaceAll(TextGRPCClient, config.Settings.TEXT_TEMPLATE_TABLENAME, Table1.Name)
|
||||
//TextGRPCClient = config.Settings.TEXT_MODULE_GENERATED + TextGRPCClient
|
||||
|
||||
if config.Settings.HAS_IS_DELETED == true {
|
||||
TextGRPCClient = DeleteFuncTestDelete(TextGRPCClient, ModelName, Table1)
|
||||
TextGRPCClient = DeleteFuncTestRestore(TextGRPCClient, ModelName, Table1)
|
||||
}
|
||||
TextGRPCClient = DeleteFuncTestFind_byExtID(TextGRPCClient, ModelName, Table1)
|
||||
|
||||
//SkipNow()
|
||||
TextGRPCClient = create_files.AddSkipNow(TextGRPCClient, Table1)
|
||||
|
||||
//замена импортов на новые URL
|
||||
TextGRPCClient = create_files.Replace_RepositoryImportsURL(TextGRPCClient)
|
||||
|
||||
//удаление пустого импорта
|
||||
TextGRPCClient = create_files.Delete_EmptyImport(TextGRPCClient)
|
||||
|
||||
//удаление пустых строк
|
||||
TextGRPCClient = create_files.Delete_EmptyLines(TextGRPCClient)
|
||||
|
||||
//запись файла
|
||||
err = os.WriteFile(FilenameReadyGRPCClient, []byte(TextGRPCClient), config.Settings.FILE_PERMISSIONS)
|
||||
|
||||
return err
|
||||
}
|
Loading…
Reference in New Issue
Block a user