diff --git a/bin/templates/api/service.proto_ b/bin/templates/api/service.proto_ index 9b84767..4af193e 100644 --- a/bin/templates/api/service.proto_ +++ b/bin/templates/api/service.proto_ @@ -15,6 +15,8 @@ import "google/protobuf/timestamp.proto"; service Sync_service { } +// -------------------------- Request ---------------------------------------------- + // RequestId - параметры запроса на сервер message RequestId { uint32 VersionModel= 1; //версия структуры модели @@ -34,7 +36,6 @@ message RequestString3 { string StringFind2 = 3; // строка поиска string StringFind3 = 4; // строка поиска } - // RequestId - параметры запроса на сервер message RequestExtID { uint32 VersionModel= 1; //версия структуры модели @@ -55,30 +56,22 @@ message RequestInnKpp { string Kpp =3; // КПП } -// RequestId - параметры запроса на сервер +// RequestIdId - параметры запроса на сервер message RequestIdId { uint32 VersionModel= 1; //версия структуры модели - int64 ID1 = 2; // id записи в БД - int64 ID2 = 3; // id записи в БД + int64 iD1 = 2; // id записи в БД + int64 iD2 = 3; // id записи в БД } - - -// Response - параметры ответа на клиент -message Response { - string ModelString = 1; //объект-модель в формате json +// RequestIdIdId - параметры запроса на сервер +message RequestIdIdId { + uint32 VersionModel= 1; //версия структуры модели + int64 iD1 = 2; // id записи в БД + int64 iD2 = 3; // id записи в БД + int64 iD3 = 4; // id записи в БД } -// ResponseFloat64 - параметры ответа на клиент -message ResponseFloat64 { - double Otvet = 1; //Ответ - число -} - -// Response - параметры ответа на клиент -message ResponseEmpty { -} - -// RequestDate - параметры запроса на сервер +// RequestDate - параметры запроса на сервер, передаётся Дата time.Time message RequestDate { uint32 VersionModel= 1; //версия структуры модели google.protobuf.Timestamp Date = 2; // строка поиска @@ -102,3 +95,80 @@ message RequestInt32 { int32 Int32 = 2; // строка поиска } +// RequestBool - параметры запроса на сервер, передаётся bool +message RequestBool { + uint32 VersionModel= 1; //версия структуры модели + bool Bool = 2; // строка поиска +} + + +// Request_ID_Date - параметры запроса на сервер, передаётся ID + Дата time.Time +message Request_ID_Date { + uint32 VersionModel= 1; //версия структуры модели + int64 iD = 2; // id записи в БД + google.protobuf.Timestamp Date = 3; // значение поиска +} + +// Request_ID_Float64 - параметры запроса на сервер, передаётся ID + float64 +message Request_ID_Float64 { + uint32 VersionModel= 1; //версия структуры модели + int64 iD = 2; // id записи в БД + double Float64 = 3; // значение поиска +} + +// Request_ID_Float32 - параметры запроса на сервер, передаётся ID + float32 +message Request_ID_Float32 { + uint32 VersionModel= 1; //версия структуры модели + int64 iD = 2; // id записи в БД + float Float32 = 3; // значение поиска +} + +// Request_ID_Int32 - параметры запроса на сервер, передаётся ID + int32 +message Request_ID_Int32 { + uint32 VersionModel= 1; //версия структуры модели + int64 iD = 2; // id записи в БД + int32 Int32 = 3; // значение поиска +} + +// Request_ID_Int64 - параметры запроса на сервер, передаётся ID + int64 +message Request_ID_Int64 { + uint32 VersionModel= 1; //версия структуры модели + int64 iD = 2; // id записи в БД + int64 Int64 = 3; // значение поиска +} + +// Request_ID_Bool - параметры запроса на сервер, передаётся ID + bool +message Request_ID_Bool { + uint32 VersionModel= 1; //версия структуры модели + int64 iD = 2; // id записи в БД + bool Bool = 3; // значение поиска +} + +// Request_ID_String - параметры запроса на сервер, передаётся ID + string +message Request_ID_String { + uint32 VersionModel= 1; //версия структуры модели + int64 iD = 2; // id записи в БД + string StringFind = 3; // строка поиска +} + +// -------------------------- Response ---------------------------------------------- + +// Response - возвращает строка json Модель +message Response { + string ModelString = 1; //объект-модель в формате json +} +// ResponseFloat64 - возвращает float64 +message ResponseFloat64 { + double Otvet = 1; //Ответ - число +} +// ResponseInt64 - возвращает int64 +message ResponseInt64 { + int64 Otvet = 1; //Ответ - число +} +// Response - параметры ответа на клиент +message ResponseEmpty { +} +// Response - параметры ответа на клиент +message ResponseMass { + repeated string MassModelString = 1; //массив объект-модель в формате json +} diff --git a/bin/templates/internal/app/grpc/server_grpc/server_grpc_func.go_ b/bin/templates/internal/app/grpc/server_grpc/server_grpc_func.go_ index 41f5bd7..cdf59db 100644 --- a/bin/templates/internal/app/grpc/server_grpc/server_grpc_func.go_ +++ b/bin/templates/internal/app/grpc/server_grpc/server_grpc_func.go_ @@ -12,7 +12,7 @@ func ErrorModelVersion(Model interface{}) error { TypeName := micro.GetType(Model) - s := constants.TEXT_ERROR_MODEL_VERSION + " " + TypeName + s := grpc_constants.TEXT_ERROR_MODEL_VERSION + " " + TypeName err = errors.New(s) return err } diff --git a/bin/templates/pkg/network/grpc/grpc_client/grpc_client.go_ b/bin/templates/pkg/network/grpc/grpc_client/grpc_client.go_ index dc38796..ece23d0 100644 --- a/bin/templates/pkg/network/grpc/grpc_client/grpc_client.go_ +++ b/bin/templates/pkg/network/grpc/grpc_client/grpc_client.go_ @@ -253,3 +253,15 @@ func Connect_GRPC_NRPC() { } } } + +// IsErrorModelVersion - возвращает true если ошибка TEXT_ERROR_MODEL_VERSION +func IsErrorModelVersion(err error) bool { + Otvet := false + + sError := err.Error() + if strings.Contains(sError, grpc_constants.TEXT_ERROR_MODEL_VERSION) == true { + Otvet = true + } + + return Otvet +} diff --git a/bin/templates/pkg/network/grpc/grpc_client/grpc_client_table.go_ b/bin/templates/pkg/network/grpc/grpc_client/grpc_client_table.go_ index fdd2db5..404a789 100644 --- a/bin/templates/pkg/network/grpc/grpc_client/grpc_client_table.go_ +++ b/bin/templates/pkg/network/grpc/grpc_client/grpc_client_table.go_ @@ -68,9 +68,8 @@ func (crud Crud_GRPC) Read(m *lawsuit_status_types.LawsuitStatusType) error { Response, err = grpc_client.Client.LawsuitStatusType_Read(ctx, Request) } if err != nil { - sError := err.Error() - if len(sError) >= len(grpc_constants.TEXT_ERROR_MODEL_VERSION) && sError[0:len(grpc_constants.TEXT_ERROR_MODEL_VERSION)] == grpc_constants.TEXT_ERROR_MODEL_VERSION { - log.Panic("table: ", TableName, " error: ", err) + if grpc_client.IsErrorModelVersion(err) == true { + log.Panic(err) } return err } @@ -115,9 +114,8 @@ func (crud Crud_GRPC) Create(m *lawsuit_status_types.LawsuitStatusType) error { Response, err = grpc_client.Client.LawsuitStatusType_Create(ctx, Request) } if err != nil { - sError := err.Error() - if len(sError) >= len(grpc_constants.TEXT_ERROR_MODEL_VERSION) && sError[0:len(grpc_constants.TEXT_ERROR_MODEL_VERSION)] == grpc_constants.TEXT_ERROR_MODEL_VERSION { - log.Panic("table: ", TableName, " error: ", err) + if grpc_client.IsErrorModelVersion(err) == true { + log.Panic(err) } return err } @@ -162,9 +160,8 @@ func (crud Crud_GRPC) Update(m *lawsuit_status_types.LawsuitStatusType) error { Response, err = grpc_client.Client.LawsuitStatusType_Update(ctx, Request) } if err != nil { - sError := err.Error() - if len(sError) >= len(grpc_constants.TEXT_ERROR_MODEL_VERSION) && sError[0:len(grpc_constants.TEXT_ERROR_MODEL_VERSION)] == grpc_constants.TEXT_ERROR_MODEL_VERSION { - log.Panic("table: ", TableName, " error: ", err) + if grpc_client.IsErrorModelVersion(err) == true { + log.Panic(err) } return err } @@ -209,9 +206,8 @@ func (crud Crud_GRPC) Save(m *lawsuit_status_types.LawsuitStatusType) error { Response, err = grpc_client.Client.LawsuitStatusType_Save(ctx, Request) } if err != nil { - sError := err.Error() - if len(sError) >= len(grpc_constants.TEXT_ERROR_MODEL_VERSION) && sError[0:len(grpc_constants.TEXT_ERROR_MODEL_VERSION)] == grpc_constants.TEXT_ERROR_MODEL_VERSION { - log.Panic("table: ", TableName, " error: ", err) + if grpc_client.IsErrorModelVersion(err) == true { + log.Panic(err) } return err } @@ -252,9 +248,8 @@ func (crud Crud_GRPC) Delete(m *lawsuit_status_types.LawsuitStatusType) error { Response, err = grpc_client.Client.LawsuitStatusType_Delete(ctx, Request) } if err != nil { - sError := err.Error() - if len(sError) >= len(grpc_constants.TEXT_ERROR_MODEL_VERSION) && sError[0:len(grpc_constants.TEXT_ERROR_MODEL_VERSION)] == grpc_constants.TEXT_ERROR_MODEL_VERSION { - log.Panic("table: ", TableName, " error: ", err) + if grpc_client.IsErrorModelVersion(err) == true { + log.Panic(err) } return err } @@ -295,9 +290,8 @@ func (crud Crud_GRPC) Restore(m *lawsuit_status_types.LawsuitStatusType) error { Response, err = grpc_client.Client.LawsuitStatusType_Restore(ctx, Request) } if err != nil { - sError := err.Error() - if len(sError) >= len(grpc_constants.TEXT_ERROR_MODEL_VERSION) && sError[0:len(grpc_constants.TEXT_ERROR_MODEL_VERSION)] == grpc_constants.TEXT_ERROR_MODEL_VERSION { - log.Panic("table: ", TableName, " error: ", err) + if grpc_client.IsErrorModelVersion(err) == true { + log.Panic(err) } return err } @@ -339,9 +333,8 @@ func (crud Crud_GRPC) Find_ByExtID(m *lawsuit_status_types.LawsuitStatusType) er Response, err = grpc_client.Client.LawsuitStatusType_FindByExtID(ctx, Request) } if err != nil { - sError := err.Error() - if sError[0:len(grpc_constants.TEXT_ERROR_MODEL_VERSION)] == grpc_constants.TEXT_ERROR_MODEL_VERSION { - log.Panic("table: ", TableName, " error: ", err) + if grpc_client.IsErrorModelVersion(err) == true { + log.Panic(err) } return err } diff --git a/bin/templates/pkg/network/grpc/grpc_client/grpc_client_table_update_func.go_ b/bin/templates/pkg/network/grpc/grpc_client/grpc_client_table_update_func.go_ index 15c97f2..69094c0 100644 --- a/bin/templates/pkg/network/grpc/grpc_client/grpc_client_table_update_func.go_ +++ b/bin/templates/pkg/network/grpc/grpc_client/grpc_client_table_update_func.go_ @@ -24,9 +24,8 @@ func (crud Crud_GRPC) Update(m *lawsuit_status_types.LawsuitStatusType) error { _, err = grpc_client.Client.LawsuitStatusType_Update(ctx, Request) } if err != nil { - sError := err.Error() - if len(sError) >= len(grpc_constants.TEXT_ERROR_MODEL_VERSION) && sError[0:len(grpc_constants.TEXT_ERROR_MODEL_VERSION)] == grpc_constants.TEXT_ERROR_MODEL_VERSION { - log.Panic("table: ", TableName, " error: ", err) + if grpc_client.IsErrorModelVersion(err) == true { + log.Panic(err) } return err } diff --git a/bin/templates/pkg/network/nrpc/nrpc_client/nrpc_client.go_ b/bin/templates/pkg/network/nrpc/nrpc_client/nrpc_client.go_ index c6b03dd..cacb3d1 100644 --- a/bin/templates/pkg/network/nrpc/nrpc_client/nrpc_client.go_ +++ b/bin/templates/pkg/network/nrpc/nrpc_client/nrpc_client.go_ @@ -16,7 +16,7 @@ import ( "github.com/nats-io/nats.go" "gitlab.aescorp.ru/dsp_dev/claim/sync_service/api/grpc_proto" "gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/db/constants" - nrpc_constants "gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/network/nrpc/constants" + "gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/network/nrpc/nrpc_constants" "sync" "os" diff --git a/internal/create_files/create_files.go b/internal/create_files/create_files.go index c50ac96..d44d20a 100644 --- a/internal/create_files/create_files.go +++ b/internal/create_files/create_files.go @@ -160,6 +160,20 @@ func FindPrimaryKeyNameType(Table1 *types.Table) (string, string) { return Otvet, Type } +//// FindPrimaryKeyNameTypeGo - возвращает наименование и тип golang колонки PrimaryKey +//func FindPrimaryKeyNameTypeGo(Table1 *types.Table) (string, string) { +// Otvet := "" +// Type := "" +// +// for _, Column1 := range Table1.MapColumns { +// if Column1.IsIdentity == true { +// return Column1.NameGo, Column1.TypeGo +// } +// } +// +// return Otvet, Type +//} + // ReplacePrimaryKeyID - заменяет "ID" на название колонки PrimaryKey func ReplacePrimaryKeyID(Text string, Table1 *types.Table) string { Otvet := Text @@ -376,6 +390,15 @@ func FindDBConstantsURL() string { return Otvet } +// FindNRPCConstantsURL - возвращает URL репозитория с пакетом db "constants" +func FindNRPCConstantsURL() string { + Otvet := "" + + Otvet = config.Settings.SERVICE_REPOSITORY_URL + "/" + config.Settings.TEMPLATE_FOLDERNAME_NRPC + "/" + "nrpc_constants" + + return Otvet +} + // FindCrudStarterURL - возвращает URL репозитория с пакетом "crud_starter" func FindCrudStarterURL() string { Otvet := "" @@ -530,6 +553,57 @@ func AddImportTime(TextModel string) string { return Otvet } +// AddImportTimestamp - добавляет покет в секцию Import, если его там нет +func AddImportTimestamp(TextModel string) string { + Otvet := TextModel + + //если уже есть импорт + pos1 := strings.Index(Otvet, `"google.golang.org/protobuf/types/known/timestamppb"`) + if pos1 >= 0 { + return Otvet + } + + // + pos1 = strings.Index(Otvet, "import (") + if pos1 < 0 { + log.Error("not found word: import (") + return TextModel + } + + Otvet = Otvet[:pos1+8] + "\n\t" + `"google.golang.org/protobuf/types/known/timestamppb"` + Otvet[pos1+8:] + + return Otvet +} + +// CheckAndAddImportAlias - добавляет покет в секцию Alias, если его там нет +func CheckAndAddImportAlias(TextModel string) string { + Otvet := TextModel + + //если уже есть импорт + pos1 := strings.Index(Otvet, `/alias`) + if pos1 >= 0 { + return Otvet + } + + //если нету alias + pos1 = strings.Index(Otvet, `alias.`) + if pos1 < 0 { + return Otvet + } + + // + pos1 = strings.Index(Otvet, "import (") + if pos1 < 0 { + log.Error("not found word: import (") + return TextModel + } + + AliasURL := FindURL_Alias() + Otvet = Otvet[:pos1+8] + "\n\t" + `"` + AliasURL + `"` + Otvet[pos1+8:] + + return Otvet +} + // CheckAndAddImportTime_FromTable - добавляет пакет "time" в секцию Import, если его там нет func CheckAndAddImportTime_FromTable(TextModel string, Table1 *types.Table) string { Otvet := TextModel @@ -558,6 +632,20 @@ func CheckAndAddImportTime_FromText(Text string) string { return Otvet } +// CheckAndAddImportTimestamp_FromText - добавляет пакет "time" в секцию Import, если его там нет +func CheckAndAddImportTimestamp_FromText(Text string) string { + Otvet := Text + + pos1 := strings.Index(Text, " timestamppb.") + if pos1 < 0 { + return Otvet + } + + Otvet = AddImportTimestamp(Otvet) + + return Otvet +} + // DeleteTemplateRepositoryImports - удаляет импорты репозитория шаблона func DeleteTemplateRepositoryImports(Text string) string { Otvet := Text @@ -958,50 +1046,71 @@ func FindTextProtobufRequest(TypeGo string) (string, string) { } // FindTextProtobufRequest_ID_Type - возвращает имя message из .proto для двух параметров ID + Type,в зависимости от типа, а также название поля -func FindTextProtobufRequest_ID_Type(TypeGo string) (string, string) { +// возвращает: +// Otvet - имя message из .proto +// TextRequestFieldName - название поля в Request +// TextRequestFieldGolang - название поля в Request с преобразованием в тип гоу +func FindTextProtobufRequest_ID_Type(Table1 *types.Table, Column1 *types.Column, VariableName string) (string, string, string) { Otvet := "RequestID" TextRequestFieldName := "ID" + TextRequestFieldGolang := "ID" + + TypeGo := Column1.TypeGo + TableName := Table1.Name + ColumnName := Column1.Name switch TypeGo { case "int", "int64": { Otvet = "Request_ID_Int64" TextRequestFieldName = "Int64" + TextRequestFieldGolang = VariableName + "Int64" } case "int32": { Otvet = "Request_ID_Int32" TextRequestFieldName = "Int32" + TextRequestFieldGolang = VariableName + "Int32" } case "string": { Otvet = "Request_ID_String" TextRequestFieldName = "StringFind" + TextRequestFieldGolang = VariableName + "StringFind" } case "time.Time": { Otvet = "Request_ID_Date" TextRequestFieldName = "Date" + TextRequestFieldGolang = VariableName + "Date.AsTime()" } case "float32": { Otvet = "Request_ID_Float32" TextRequestFieldName = "Float32" + TextRequestFieldGolang = VariableName + "Float32" } case "float64": { Otvet = "Request_ID_Float64" TextRequestFieldName = "Float64" + TextRequestFieldGolang = VariableName + "Float64" } case "bool": { Otvet = "Request_ID_Bool" TextRequestFieldName = "Bool" + TextRequestFieldGolang = VariableName + "Bool" } } - return Otvet, TextRequestFieldName + TextConvert, ok := types.MapConvertID[TableName+"."+ColumnName] + if ok == true { + TextRequestFieldGolang = TextConvert + "(" + VariableName + TextRequestFieldName + ")" + } + + return Otvet, TextRequestFieldName, TextRequestFieldGolang } // ConvertIdToAlias - заменяет ID на Alias @@ -1029,3 +1138,83 @@ func ConvertIdToAlias(Text string, Table1 *types.Table) string { return Otvet } + +// FindTextConvertGolangTypeToProtobufType - возвращает имя переменной + имя колонки, преобразованное в тип protobuf +func FindTextConvertGolangTypeToProtobufType(Table1 *types.Table, Column1 *types.Column, VariableName string) string { + Otvet := VariableName + Column1.NameGo + + //TableName := Table1.Name + //IDName := Column1.Name + + ////alias в Int64 + //TextConvert, ok := types.MapConvertID[TableName+"."+IDName] + //if ok == true { + // Otvet = TextConvert + "(" + VariableName + Column1.NameGo + ")" + //} + + //time.Time в timestamppb + //if Column1.TypeGo == "time.Time" { + // Otvet = "timestamppb.New(" + VariableName + Column1.NameGo + ")" + //} + + //преобразуем alias в обычный тип, и дату в timestamp + switch Column1.TypeGo { + case "time.Time": + Otvet = "timestamppb.New(" + VariableName + Column1.NameGo + ")" + case "string": + Otvet = "string(" + VariableName + Column1.NameGo + ")" + case "int64": + Otvet = "int64(" + VariableName + Column1.NameGo + ")" + case "int32": + Otvet = "int32(" + VariableName + Column1.NameGo + ")" + case "bool": + Otvet = "bool(" + VariableName + Column1.NameGo + ")" + case "float32": + Otvet = "float32(" + VariableName + Column1.NameGo + ")" + case "float64": + Otvet = "float64(" + VariableName + Column1.NameGo + ")" + } + + return Otvet +} + +// FindTextConvertProtobufTypeToGolangType - возвращает имя переменной + имя колонки, преобразованное в тип golang из protobuf +func FindTextConvertProtobufTypeToGolangType(Table1 *types.Table, Column1 *types.Column, VariableName string) string { + Otvet := VariableName + Column1.NameGo + + TableName := Table1.Name + IDName := Column1.Name + + //alias в Int64 + TextConvert, ok := types.MapConvertID[TableName+"."+IDName] + if ok == true { + Otvet = TextConvert + "(" + VariableName + Column1.NameGo + ")" + return Otvet + } + + //time.Time в timestamppb + if Column1.TypeGo == "time.Time" { + Otvet = VariableName + Column1.NameGo + ".AsTime()" + return Otvet + } + + ////преобразуем alias в обычный тип, и дату в timestamp + //switch Column1.TypeGo { + //case "time.Time": + // Otvet = "timestamppb.New(" + VariableName + Column1.NameGo + ")" + //case "string": + // Otvet = "string(" + VariableName + Column1.NameGo + ")" + //case "int64": + // Otvet = "int64(" + VariableName + Column1.NameGo + ")" + //case "int32": + // Otvet = "int32(" + VariableName + Column1.NameGo + ")" + //case "bool": + // Otvet = "bool(" + VariableName + Column1.NameGo + ")" + //case "float32": + // Otvet = "float32(" + VariableName + Column1.NameGo + ")" + //case "float64": + // Otvet = "float64(" + VariableName + Column1.NameGo + ")" + //} + + return Otvet +} diff --git a/internal/create_files/create_files_columns.go b/internal/create_files/create_files_columns.go index 3f82eaf..03fa332 100644 --- a/internal/create_files/create_files_columns.go +++ b/internal/create_files/create_files_columns.go @@ -307,7 +307,7 @@ func Is_Column_ExtLinksStruct(Column1 *types.Column) bool { return Otvet } -// Is_Common_Сolumn - возвращает true если это общая колонка: table_name_id, table_row_idб is_group, parent_id, name или description, ext_id, created_at, modified_at, deleted_at, id +// Is_Common_Сolumn - возвращает true если это общая колонка: table_name_id, table_row_id, is_group, parent_id, name или description, ext_id, created_at, modified_at, deleted_at, id func Is_Common_Сolumn(Column1 *types.Column) bool { Otvet := false @@ -315,3 +315,12 @@ func Is_Common_Сolumn(Column1 *types.Column) bool { return Otvet } + +// Is_NotNeedUpdate_Сolumn - возвращает true если это общая колонка: table_name_id, table_row_id, is_group, parent_id, ext_id, created_at, modified_at, deleted_at, id +func Is_NotNeedUpdate_Сolumn(Column1 *types.Column) bool { + Otvet := false + + Otvet = Is_Column_CommonStruct(Column1) || Is_Column_GroupsStruct(Column1) || Is_Column_ExtLinksStruct(Column1) + + return Otvet +} diff --git a/internal/create_files/db_crud_tables/db_crud_tables.go b/internal/create_files/db_crud_tables/db_crud_tables.go index 41881e3..316ae9c 100644 --- a/internal/create_files/db_crud_tables/db_crud_tables.go +++ b/internal/create_files/db_crud_tables/db_crud_tables.go @@ -483,6 +483,7 @@ func CreateFilesUpdateEveryColumn(Table1 *types.Table) error { TextCrud := "package " + config.Settings.PREFIX_CRUD + TableName + "\n\n" TextCrud = TextCrud + `import ( + "errors" "context" "fmt" "time" @@ -501,7 +502,7 @@ func CreateFilesUpdateEveryColumn(Table1 *types.Table) error { ModelTableURL := create_files.FindModelTableURL(TableName) TextCrud = create_files.AddImport(TextCrud, ModelTableURL) - TextCrud = create_files.ConvertIdToAlias(TextCrud, Table1) + //TextCrud = create_files.ConvertIdToAlias(TextCrud, Table1) //} //создание текста @@ -545,7 +546,7 @@ func FindTextUpdateEveryColumn(TextCrudUpdateFunc string, Table1 *types.Table) s if ok == false { log.Panic("FindTextUpdateEveryColumn() Table1.MapColumns[key1] = false") } - if create_files.Is_Common_Сolumn(Column1) == true { + if create_files.Is_NotNeedUpdate_Сolumn(Column1) == true { continue } @@ -673,7 +674,7 @@ func FindTextUpdateEveryColumnTest(TextCrudUpdateFunc string, Table1 *types.Tabl if ok == false { log.Panic("FindTextUpdateEveryColumnTest() Table1.MapColumns[key1] = false") } - if create_files.Is_Common_Сolumn(Column1) == true { + if create_files.Is_NotNeedUpdate_Сolumn(Column1) == true { continue } diff --git a/internal/create_files/grpc_client_tables/grpc_client_tables.go b/internal/create_files/grpc_client_tables/grpc_client_tables.go index 794305f..2af14c0 100644 --- a/internal/create_files/grpc_client_tables/grpc_client_tables.go +++ b/internal/create_files/grpc_client_tables/grpc_client_tables.go @@ -408,7 +408,7 @@ func CreateFilesUpdateEveryColumn(Table1 *types.Table) error { ModelTableURL := create_files.FindModelTableURL(TableName) TextGRPC_Client = create_files.AddImport(TextGRPC_Client, ModelTableURL) - TextGRPC_Client = create_files.ConvertIdToAlias(TextGRPC_Client, Table1) + //TextGRPC_Client = create_files.ConvertIdToAlias(TextGRPC_Client, Table1) //} //создание текста @@ -428,6 +428,9 @@ func CreateFilesUpdateEveryColumn(Table1 *types.Table) error { //удаление пустого импорта TextGRPC_Client = create_files.DeleteEmptyImport(TextGRPC_Client) TextGRPC_Client = create_files.DeleteEmptyLines(TextGRPC_Client) + TextGRPC_Client = create_files.CheckAndAddImportTime_FromText(TextGRPC_Client) + TextGRPC_Client = create_files.CheckAndAddImportTimestamp_FromText(TextGRPC_Client) + TextGRPC_Client = create_files.CheckAndAddImportAlias(TextGRPC_Client) //запись файла err = os.WriteFile(FilenameReadyGRPC_ClientUpdate, []byte(TextGRPC_Client), constants.FILE_PERMISSIONS) @@ -452,7 +455,7 @@ func FindTextUpdateEveryColumn(TextGRPC_ClientUpdateFunc string, Table1 *types.T if ok == false { log.Panic("FindTextProtoTable1_UpdateEveryColumn() Table1.MapColumns[key1] = false") } - if create_files.Is_Common_Сolumn(Column1) == true { + if create_files.Is_NotNeedUpdate_Сolumn(Column1) == true { continue } @@ -471,7 +474,11 @@ func FindTextUpdateEveryColumn1(TextGRPC_ClientUpdateFunc string, Table1 *types. ModelName := Table1.NameGo ColumnName := Column1.NameGo FuncName := "Update_" + ColumnName - TextRequest, TextRequestFieldName := create_files.FindTextProtobufRequest_ID_Type(Column1.TypeGo) + TextRequest, TextRequestFieldName, _ := create_files.FindTextProtobufRequest_ID_Type(Table1, Column1, "Request.") + + ColumnNameGolang := create_files.FindTextConvertGolangTypeToProtobufType(Table1, Column1, "m.") + + _, IDTypeGo := create_files.FindPrimaryKeyNameTypeGo(Table1) Otvet = strings.ReplaceAll(Otvet, config.Settings.TEXT_TEMPLATE_MODEL+"_Update", ModelName+"_"+FuncName) Otvet = strings.ReplaceAll(Otvet, " Update ", " "+FuncName+" ") @@ -479,8 +486,9 @@ func FindTextUpdateEveryColumn1(TextGRPC_ClientUpdateFunc string, Table1 *types. 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, "m.ColumnName", ColumnNameGolang) + Otvet = strings.ReplaceAll(Otvet, " m.ID", " "+IDTypeGo+"(m.ID)") Otvet = strings.ReplaceAll(Otvet, "ColumnName", ColumnName) - Otvet = strings.ReplaceAll(Otvet, "m.ColumnName", "m."+ColumnName) Otvet = strings.ReplaceAll(Otvet, "Request.FieldName", "Request."+TextRequestFieldName) return Otvet @@ -571,7 +579,7 @@ func FindTextUpdateEveryColumnTest(TextGRPC_ClientUpdateFunc string, Table1 *typ if ok == false { log.Panic("FindTextProtoTable1_UpdateEveryColumn() Table1.MapColumns[key1] = false") } - if create_files.Is_Common_Сolumn(Column1) == true { + if create_files.Is_NotNeedUpdate_Сolumn(Column1) == true { continue } @@ -590,7 +598,7 @@ func FindTextUpdateEveryColumnTest1(TextGRPC_ClientUpdateFunc string, Table1 *ty ModelName := Table1.NameGo ColumnName := Column1.NameGo FuncName := "Update_" + ColumnName - TextRequest, TextRequestFieldName := create_files.FindTextProtobufRequest_ID_Type(Column1.TypeGo) + TextRequest, TextRequestFieldName, _ := create_files.FindTextProtobufRequest_ID_Type(Table1, Column1, "Request.") DefaultValue := create_files.FindTextDefaultValue(Column1.TypeGo) Otvet = strings.ReplaceAll(Otvet, "TestCrud_GRPC_Update(", "TestCrud_GRPC_"+FuncName+"(") diff --git a/internal/create_files/grpc_server_tables/grpc_server_tables.go b/internal/create_files/grpc_server_tables/grpc_server_tables.go index 4acae25..2b84e5c 100644 --- a/internal/create_files/grpc_server_tables/grpc_server_tables.go +++ b/internal/create_files/grpc_server_tables/grpc_server_tables.go @@ -363,7 +363,8 @@ func CreateFilesUpdateEveryColumn(Table1 *types.Table) error { } TextGRPCServerUpdateFunc := string(bytes) - TextGRPCServer := "package " + config.Settings.PREFIX_CLIENT_GRPC + TableName + "\n\n" + PackageName := micro.LastWord(config.Settings.TEMPLATE_FOLDERNAME_GRPC_SERVER) + TextGRPCServer := "package " + PackageName + "\n\n" TextGRPCServer = TextGRPCServer + `import ( "context" "github.com/ManyakRus/starter/micro" @@ -379,10 +380,9 @@ func CreateFilesUpdateEveryColumn(Table1 *types.Table) error { ProtoURL := create_files.FindProtoURL() TextGRPCServer = create_files.AddImport(TextGRPCServer, ProtoURL) - ModelURL := create_files.FindModelURL() - TextGRPCServer = create_files.AddImport(TextGRPCServer, ModelURL) + //ModelURL := create_files.FindModelURL() + //TextGRPCServer = create_files.AddImport(TextGRPCServer, ModelURL) - TextGRPCServer = create_files.ConvertIdToAlias(TextGRPCServer, Table1) //} //создание текста @@ -397,6 +397,9 @@ func CreateFilesUpdateEveryColumn(Table1 *types.Table) error { //TextGRPCServer = strings.ReplaceAll(TextGRPCServer, config.Settings.TEXT_TEMPLATE_TABLENAME, Table1.Name) TextGRPCServer = TextGRPCServer + TextUpdateEveryColumn + TextGRPCServer = create_files.ConvertIdToAlias(TextGRPCServer, Table1) + TextGRPCServer = create_files.CheckAndAddImportAlias(TextGRPCServer) + TextGRPCServer = config.Settings.TEXT_MODULE_GENERATED + TextGRPCServer //удаление пустого импорта @@ -426,7 +429,7 @@ func FindTextUpdateEveryColumn(TextGRPCServerUpdateFunc string, Table1 *types.Ta if ok == false { log.Panic("FindTextProtoTable1_UpdateEveryColumn() Table1.MapColumns[key1] = false") } - if create_files.Is_Common_Сolumn(Column1) == true { + if create_files.Is_NotNeedUpdate_Сolumn(Column1) == true { continue } @@ -445,13 +448,15 @@ func FindTextUpdateEveryColumn1(TextGRPCServerUpdateFunc string, Table1 *types.T ModelName := Table1.NameGo ColumnName := Column1.NameGo FuncName := "Update_" + ColumnName - TextRequest, TextRequestFieldName := create_files.FindTextProtobufRequest_ID_Type(Column1.TypeGo) + TextRequest, _, TextRequestFieldGolang := create_files.FindTextProtobufRequest_ID_Type(Table1, Column1, "Request.") + + //ColumnNameGolang := create_files.FindTextConvertGolangTypeToProtobufType(Table1, Column1, "m.") Otvet = strings.ReplaceAll(Otvet, config.Settings.TEXT_TEMPLATE_MODEL+"_Update", ModelName+"_"+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, "Request.FieldName", "Request."+TextRequestFieldName) + Otvet = strings.ReplaceAll(Otvet, "Request.FieldName", TextRequestFieldGolang) Otvet = strings.ReplaceAll(Otvet, "Model.ColumnName", "Model."+ColumnName) Otvet = strings.ReplaceAll(Otvet, "ColumnName", ColumnName) Otvet = strings.ReplaceAll(Otvet, "Model.Update()", "Model."+FuncName+"()") @@ -484,7 +489,8 @@ func CreateTestFilesUpdateEveryColumn(Table1 *types.Table) error { } TextGRPCServerUpdateFunc := string(bytes) - TextGRPCServer := "package " + config.Settings.PREFIX_CLIENT_GRPC + TableName + "\n\n" + PackageName := micro.LastWord(config.Settings.TEMPLATE_FOLDERNAME_GRPC_SERVER) + TextGRPCServer := "package " + PackageName + "\n\n" TextGRPCServer = TextGRPCServer + `import ( "context" "github.com/ManyakRus/starter/config_main" @@ -500,8 +506,8 @@ func CreateTestFilesUpdateEveryColumn(Table1 *types.Table) error { ProtoURL := create_files.FindProtoURL() TextGRPCServer = create_files.AddImport(TextGRPCServer, ProtoURL) - ModelURL := create_files.FindModelURL() - TextGRPCServer = create_files.AddImport(TextGRPCServer, ModelURL) + //ModelURL := create_files.FindModelURL() + //TextGRPCServer = create_files.AddImport(TextGRPCServer, ModelURL) CrudStarterURL := create_files.FindCrudStarterURL() TextGRPCServer = create_files.AddImport(TextGRPCServer, CrudStarterURL) @@ -549,7 +555,7 @@ func FindTextUpdateEveryColumnTest(TextGRPCServerUpdateFunc string, Table1 *type if ok == false { log.Panic("FindTextProtoTable1_UpdateEveryColumn() Table1.MapColumns[key1] = false") } - if create_files.Is_Common_Сolumn(Column1) == true { + if create_files.Is_NotNeedUpdate_Сolumn(Column1) == true { continue } @@ -568,13 +574,13 @@ func FindTextUpdateEveryColumnTest1(TextGRPCServerUpdateFunc string, Table1 *typ ModelName := Table1.NameGo ColumnName := Column1.NameGo FuncName := "Update_" + ColumnName - TextRequest, TextRequestFieldName := create_files.FindTextProtobufRequest_ID_Type(Column1.TypeGo) + TextRequest, TextRequestFieldName, _ := create_files.FindTextProtobufRequest_ID_Type(Table1, Column1, "Model.") Otvet = strings.ReplaceAll(Otvet, config.Settings.TEXT_TEMPLATE_MODEL+"_Update(", ModelName+"_"+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.RequestString", "grpc_proto."+TextRequest) - Otvet = strings.ReplaceAll(Otvet, "Model.ColumnName", "Model."+TextRequestFieldName) + Otvet = strings.ReplaceAll(Otvet, "Model.ColumnName", TextRequestFieldName) Otvet = strings.ReplaceAll(Otvet, "ColumnName", ColumnName) Otvet = strings.ReplaceAll(Otvet, "ColumnName", ColumnName) diff --git a/internal/create_files/model_tables/model_tables.go b/internal/create_files/model_tables/model_tables.go index 3c1ad06..f5648d6 100644 --- a/internal/create_files/model_tables/model_tables.go +++ b/internal/create_files/model_tables/model_tables.go @@ -581,13 +581,19 @@ func CreateFilesUpdateEveryColumn(Table1 *types.Table) error { if ok == false { log.Panic("CreateFilesUpdateEveryColumn() Table1.MapColumns[key1] = false") } - if create_files.Is_Common_Сolumn(Column1) == true { + if create_files.Is_NotNeedUpdate_Сolumn(Column1) == true { continue } TextNew1 := FindTextUpdateEveryColumn(Table1, Column1) TextNew = TextNew + TextNew1 } + // пустой файл не нужен + if TextNew == "" { + return err + } + + // TextModel = TextModel + TextNew //запись файла @@ -635,7 +641,7 @@ func AddInterfaceUpdateEveryColumn(TextModel string, Table1 *types.Table) string if ok == false { log.Panic("CreateFilesUpdateEveryColumn() Table1.MapColumns[key1] = false") } - if create_files.Is_Common_Сolumn(Column1) == true { + if create_files.Is_NotNeedUpdate_Сolumn(Column1) == true { continue } TextNew1 := FindTextInterfaceUpdateEveryColumn(Table1, Column1) diff --git a/internal/create_files/nrpc_client/nrpc_client.go b/internal/create_files/nrpc_client/nrpc_client.go index d8b13bc..21e7479 100644 --- a/internal/create_files/nrpc_client/nrpc_client.go +++ b/internal/create_files/nrpc_client/nrpc_client.go @@ -69,12 +69,15 @@ func CreateNRPCClient() error { ProtoURL := create_files.FindProtoURL() TextNRPCClient = create_files.AddImport(TextNRPCClient, ProtoURL) - GRPC_NRPC_URL := create_files.Find_GRPC_NRPC_URL() - TextNRPCClient = create_files.AddImport(TextNRPCClient, GRPC_NRPC_URL) + //GRPC_NRPC_URL := create_files.Find_GRPC_NRPC_URL() + //TextNRPCClient = create_files.AddImport(TextNRPCClient, GRPC_NRPC_URL) DBConstantsURL := create_files.FindDBConstantsURL() TextNRPCClient = create_files.AddImport(TextNRPCClient, DBConstantsURL) + NRPCConstantsURL := create_files.FindNRPCConstantsURL() + TextNRPCClient = create_files.AddImport(TextNRPCClient, NRPCConstantsURL) + } //заменим имя сервиса на новое diff --git a/internal/create_files/protobuf/protobuf.go b/internal/create_files/protobuf/protobuf.go index e4d969f..d9eb378 100644 --- a/internal/create_files/protobuf/protobuf.go +++ b/internal/create_files/protobuf/protobuf.go @@ -329,7 +329,7 @@ func FindTextProtoTable1_UpdateEveryColumn(TextProto string, Table1 *types.Table if ok == false { log.Panic("FindTextProtoTable1_UpdateEveryColumn() Table1.MapColumns[key1] = false") } - if create_files.Is_Common_Сolumn(Column1) == true { + if create_files.Is_NotNeedUpdate_Сolumn(Column1) == true { continue } @@ -369,9 +369,9 @@ func TextUpdateEveryColumn(Table1 *types.Table, Column1 *types.Column) string { ModelName := Table1.NameGo - TextRequest := "RequestID" - TypeGo := Column1.TypeGo - TextRequest, _ = create_files.FindTextProtobufRequest(TypeGo) + TextRequest := "" + //TypeGo := Column1.TypeGo + TextRequest, _, _ = create_files.FindTextProtobufRequest_ID_Type(Table1, Column1, "") ColumnName := Column1.NameGo Otvet = "rpc " + ModelName + "_Update_" + ColumnName + "(" + TextRequest + ") returns (ResponseEmpty) {}"