mirror of
https://github.com/ManyakRus/crud_generator.git
synced 2024-12-22 00:36:41 +02:00
сделал Read_ctx(ctx context.Context, db *gorm.DB, m *calendars.Calendar)
This commit is contained in:
parent
75692e5ca5
commit
3e053a45eb
@ -151,23 +151,35 @@ message Request_ID_String {
|
|||||||
string StringFind = 3; // строка поиска
|
string StringFind = 3; // строка поиска
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Request_Model_MassString - модель и массив строк
|
||||||
|
message Request_Model_MassString {
|
||||||
|
uint32 VersionModel= 1; //версия структуры модели
|
||||||
|
string ModelString = 2; //объект-модель в формате json
|
||||||
|
repeated string MassNames = 3; //массив строк
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// -------------------------- Response ----------------------------------------------
|
// -------------------------- Response ----------------------------------------------
|
||||||
|
|
||||||
// Response - возвращает строка json Модель
|
// Response - возвращает строка json Модель
|
||||||
message Response {
|
message Response {
|
||||||
string ModelString = 1; //объект-модель в формате json
|
string ModelString = 1; //объект-модель в формате json
|
||||||
}
|
}
|
||||||
|
|
||||||
// ResponseFloat64 - возвращает float64
|
// ResponseFloat64 - возвращает float64
|
||||||
message ResponseFloat64 {
|
message ResponseFloat64 {
|
||||||
double Otvet = 1; //Ответ - число
|
double Otvet = 1; //Ответ - число
|
||||||
}
|
}
|
||||||
|
|
||||||
// ResponseInt64 - возвращает int64
|
// ResponseInt64 - возвращает int64
|
||||||
message ResponseInt64 {
|
message ResponseInt64 {
|
||||||
int64 Otvet = 1; //Ответ - число
|
int64 Otvet = 1; //Ответ - число
|
||||||
}
|
}
|
||||||
|
|
||||||
// Response - параметры ответа на клиент
|
// Response - параметры ответа на клиент
|
||||||
message ResponseEmpty {
|
message ResponseEmpty {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Response - параметры ответа на клиент
|
// Response - параметры ответа на клиент
|
||||||
message ResponseMass {
|
message ResponseMass {
|
||||||
repeated string MassModelString = 1; //массив объект-модель в формате json
|
repeated string MassModelString = 1; //массив объект-модель в формате json
|
||||||
|
@ -2,10 +2,49 @@ package server_grpc
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"time"
|
|
||||||
"github.com/ManyakRus/starter/micro"
|
"github.com/ManyakRus/starter/micro"
|
||||||
"github.com/ManyakRus/starter/contextmain"
|
"github.com/ManyakRus/starter/contextmain"
|
||||||
|
"github.com/ManyakRus/starter/postgres_gorm"
|
||||||
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/api/grpc_proto"
|
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/api/grpc_proto"
|
||||||
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/object_model/entities/lawsuit_status_types"
|
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/object_model/entities/lawsuit_status_types"
|
||||||
"github.com/ManyakRus/starter/postgres_gorm"
|
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/db/constants"
|
||||||
|
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/db/crud/crud_lawsuit_status_types"
|
||||||
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// LawsuitStatusType_UpdateManyFields - изменяет только нужные колонки в базе данных
|
||||||
|
func (s *ServerGRPC) LawsuitStatusType_UpdateManyFields(ctx context.Context, Request *grpc_proto.Request_Model_MassString) (*grpc_proto.ResponseEmpty, error) {
|
||||||
|
var Otvet grpc_proto.ResponseEmpty
|
||||||
|
var err error
|
||||||
|
|
||||||
|
//проверим контекст уже отменён
|
||||||
|
if micro.ContextDone(ctx) == true {
|
||||||
|
err = context.Canceled
|
||||||
|
return &Otvet, err
|
||||||
|
}
|
||||||
|
|
||||||
|
//проверим совпадения версии модели
|
||||||
|
VersionServer := lawsuit_status_types.LawsuitStatusType{}.GetStructVersion()
|
||||||
|
VersionClient := Request.VersionModel
|
||||||
|
if VersionServer != VersionClient {
|
||||||
|
err = ErrorModelVersion(lawsuit_status_types.LawsuitStatusType{})
|
||||||
|
return &Otvet, err
|
||||||
|
}
|
||||||
|
|
||||||
|
//получим модель из строки JSON
|
||||||
|
Model := lawsuit_status_types.LawsuitStatusType{}
|
||||||
|
err = Model.GetModelFromJSON(Request.ModelString)
|
||||||
|
if err != nil {
|
||||||
|
return &Otvet, err
|
||||||
|
}
|
||||||
|
|
||||||
|
//запрос в БД
|
||||||
|
db := postgres_gorm.GetConnection()
|
||||||
|
err = crud_lawsuit_status_types.UpdateManyFields_ctx(ctx, db, &Model, Request.MassNames)
|
||||||
|
if err != nil {
|
||||||
|
return &Otvet, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return &Otvet, err
|
||||||
|
}
|
||||||
|
|
||||||
|
@ -8,3 +8,36 @@ import (
|
|||||||
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/object_model/entities/lawsuit_status_types"
|
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/object_model/entities/lawsuit_status_types"
|
||||||
"testing"
|
"testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func TestServerGRPC_LawsuitStatusType_UpdateManyFields(t *testing.T) {
|
||||||
|
config_main.LoadEnv()
|
||||||
|
crud_starter.InitCrudTransport_DB()
|
||||||
|
var err error
|
||||||
|
|
||||||
|
//прочитаем из БД
|
||||||
|
ctx := context.Background()
|
||||||
|
Request := grpc_proto.RequestId{}
|
||||||
|
Request.ID = LawsuitStatusType_ID_Test
|
||||||
|
Request.VersionModel = lawsuit_status_types.LawsuitStatusType{}.GetStructVersion()
|
||||||
|
|
||||||
|
server1 := &ServerGRPC{}
|
||||||
|
Response1, err := server1.LawsuitStatusType_Read(ctx, &Request)
|
||||||
|
if err != nil {
|
||||||
|
t.Error("TestServerGRPC_LawsuitStatusType_UpdateManyFields() error: ", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// запишем в БД с пустым списком полей (не запишется)
|
||||||
|
var ModelString string
|
||||||
|
ModelString = Response1.ModelString
|
||||||
|
RequestModel := grpc_proto.Request_Model_MassString{}
|
||||||
|
RequestModel.VersionModel = lawsuit_status_types.LawsuitStatusType{}.GetStructVersion()
|
||||||
|
RequestModel.ModelString = ModelString
|
||||||
|
RequestModel.MassNames = nil
|
||||||
|
|
||||||
|
_, err = server1.LawsuitStatusType_UpdateManyFields(ctx, &RequestModel)
|
||||||
|
if err != nil {
|
||||||
|
t.Error("TestServerGRPC_LawsuitStatusType_UpdateManyFields() error: ", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
@ -12,3 +12,37 @@ import (
|
|||||||
"gorm.io/gorm"
|
"gorm.io/gorm"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// UpdateManyFields - изменяет несколько полей в базе данных
|
||||||
|
// MassNeedUpdateFields - список полей структуры golang для обновления
|
||||||
|
func (crud Crud_DB) UpdateManyFields(m *lawsuit_status_types.LawsuitStatusType, MassNeedUpdateFields []string) error {
|
||||||
|
var err error
|
||||||
|
|
||||||
|
ctxMain := contextmain.GetContext()
|
||||||
|
ctx, ctxCancelFunc := context.WithTimeout(ctxMain, time.Second*time.Duration(constants.TIMEOUT_DB_SECONDS))
|
||||||
|
defer ctxCancelFunc()
|
||||||
|
|
||||||
|
db := postgres_gorm.GetConnection()
|
||||||
|
|
||||||
|
err = UpdateManyFields_ctx(ctx, db, m, MassNeedUpdateFields)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// UpdateManyFields_ctx - изменяет несколько полей в базе данных
|
||||||
|
// с учётом контекста и соединения к БД
|
||||||
|
// MassNeedUpdateFields - список полей структуры golang для обновления
|
||||||
|
func UpdateManyFields_ctx(ctx context.Context, db *gorm.DB, m *lawsuit_status_types.LawsuitStatusType, MassNeedUpdateFields []string) error {
|
||||||
|
var err error
|
||||||
|
if micro.ContextDone(ctx) == true {
|
||||||
|
err = context.Canceled
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if m.ID == 0 {
|
||||||
|
err = errors.New(m.TableNameDB() + " UpdateManyFields() error: ID=0")
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
err = create_update_ctx(ctx, db, m, false, MassNeedUpdateFields)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
@ -13,6 +13,7 @@ func (crud Crud_DB) Read(m *lawsuit_status_types.LawsuitStatusType) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Read_ctx - изменяет 1 поле ColumnName в базе данных
|
// Read_ctx - изменяет 1 поле ColumnName в базе данных
|
||||||
|
// с учётом контекста и соединения к БД
|
||||||
func Read_ctx(ctx context.Context, db *gorm.DB, m *lawsuit_status_types.LawsuitStatusType) error {
|
func Read_ctx(ctx context.Context, db *gorm.DB, m *lawsuit_status_types.LawsuitStatusType) error {
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
|
@ -6,3 +6,26 @@ import (
|
|||||||
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/object_model/entities/lawsuit_status_types"
|
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/object_model/entities/lawsuit_status_types"
|
||||||
"testing"
|
"testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
func TestUpdateManyFields(t *testing.T) {
|
||||||
|
config_main.LoadEnv()
|
||||||
|
|
||||||
|
postgres_gorm.Connect()
|
||||||
|
defer postgres_gorm.CloseConnection()
|
||||||
|
|
||||||
|
//прочитаем из БД
|
||||||
|
crud := Crud_DB{}
|
||||||
|
Model := lawsuit_status_types.LawsuitStatusType{}
|
||||||
|
Model.ID = Postgres_ID_Test
|
||||||
|
err := crud.Read(&Model)
|
||||||
|
if err != nil {
|
||||||
|
t.Error("TestUpdateManyFields() Read() error: ", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
//запишем в БД это же значение
|
||||||
|
err = crud.UpdateManyFields(&Otvet, nil)
|
||||||
|
if err != nil {
|
||||||
|
t.Error("TestUpdateManyFields() UpdateManyFields() error: ", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -78,7 +78,7 @@ func Save_ctx(ctx context.Context, db *gorm.DB, m *lawsuit_status_types.LawsuitS
|
|||||||
}
|
}
|
||||||
|
|
||||||
is_create := !micro.BoolFromInt64(int64(m.ID))
|
is_create := !micro.BoolFromInt64(int64(m.ID))
|
||||||
err = create_update_ctx(ctx, db, m, is_create)
|
err = create_update_ctx(ctx, db, m, is_create, nil)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -102,7 +102,7 @@ func Update_ctx(ctx context.Context, db *gorm.DB, m *lawsuit_status_types.Lawsui
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
err = create_update_ctx(ctx, db, m, false)
|
err = create_update_ctx(ctx, db, m, false, nil)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -126,7 +126,7 @@ func Create_ctx(ctx context.Context, db *gorm.DB, m *lawsuit_status_types.Lawsui
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
err = create_update_ctx(ctx, db, m, true)
|
err = create_update_ctx(ctx, db, m, true, nil)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -140,12 +140,12 @@ func (crud Crud_DB) create_update(m *lawsuit_status_types.LawsuitStatusType, is_
|
|||||||
|
|
||||||
db := postgres_gorm.GetConnection()
|
db := postgres_gorm.GetConnection()
|
||||||
|
|
||||||
err = create_update_ctx(ctx, db, m, is_create)
|
err = create_update_ctx(ctx, db, m, is_create, nil)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
// create_update_ctx - записывает объект в базу данных
|
// create_update_ctx - записывает объект в базу данных
|
||||||
func create_update_ctx(ctx context.Context, db *gorm.DB, m *lawsuit_status_types.LawsuitStatusType, is_create bool) error {
|
func create_update_ctx(ctx context.Context, db *gorm.DB, m *lawsuit_status_types.LawsuitStatusType, is_create bool, MassNeedUpdateFields []string) error {
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
// log.Trace("start Save() ", TableName, " id: ", int64(m.ID))
|
// log.Trace("start Save() ", TableName, " id: ", int64(m.ID))
|
||||||
@ -168,16 +168,21 @@ func create_update_ctx(ctx context.Context, db *gorm.DB, m *lawsuit_status_types
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
|
||||||
db.WithContext(ctx)
|
|
||||||
|
|
||||||
// заполним даты
|
// заполним даты
|
||||||
//Text_modified_at
|
//Text_modified_at
|
||||||
//Text_is_deleted_deleted_at
|
//Text_is_deleted_deleted_at
|
||||||
//Text_created_at
|
//Text_created_at
|
||||||
|
|
||||||
|
//
|
||||||
|
tx := db.WithContext(ctx).Model(&m)
|
||||||
|
|
||||||
|
//колонки для обновления
|
||||||
|
MassNeedFields := crud_functions.MassNeedFields_from_MassNeedUpdateFields(MassNeedUpdateFields)
|
||||||
|
if len(MassNeedUpdateFields) > 0 {
|
||||||
|
tx = tx.Select(MassNeedFields)
|
||||||
|
}
|
||||||
|
|
||||||
//колонки с null
|
//колонки с null
|
||||||
tx := db
|
|
||||||
MassOmit := make([]string, 0)
|
MassOmit := make([]string, 0)
|
||||||
var ColumnName string
|
var ColumnName string
|
||||||
|
|
||||||
@ -200,7 +205,11 @@ func create_update_ctx(ctx context.Context, db *gorm.DB, m *lawsuit_status_types
|
|||||||
|
|
||||||
//запишем NULL в пустые колонки
|
//запишем NULL в пустые колонки
|
||||||
MapOmit := crud_functions.MapOmit_from_MassOmit(MassOmit)
|
MapOmit := crud_functions.MapOmit_from_MassOmit(MassOmit)
|
||||||
tx = db.Model(&m).Updates(MapOmit)
|
tx = db.Model(&m)
|
||||||
|
if len(MassNeedUpdateFields) > 0 {
|
||||||
|
tx = tx.Select(MassNeedFields)
|
||||||
|
}
|
||||||
|
tx = tx.Updates(MapOmit)
|
||||||
err = tx.Error
|
err = tx.Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
err = fmt.Errorf(m.TableNameDB()+" Create_Update() id: %v, error: %v", m.ID, err)
|
err = fmt.Errorf(m.TableNameDB()+" Create_Update() id: %v, error: %v", m.ID, err)
|
||||||
|
@ -78,7 +78,7 @@ func Save_ctx(ctx context.Context, db *gorm.DB, m *lawsuit_status_types.LawsuitS
|
|||||||
}
|
}
|
||||||
|
|
||||||
is_create := !micro.BoolFromInt64(int64(m.ID))
|
is_create := !micro.BoolFromInt64(int64(m.ID))
|
||||||
err = create_update_ctx(ctx, db, m, is_create)
|
err = create_update_ctx(ctx, db, m, is_create, nil)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -102,7 +102,7 @@ func Update_ctx(ctx context.Context, db *gorm.DB, m *lawsuit_status_types.Lawsui
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
err = create_update_ctx(ctx, db, m, false)
|
err = create_update_ctx(ctx, db, m, false, nil)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -126,7 +126,7 @@ func Create_ctx(ctx context.Context, db *gorm.DB, m *lawsuit_status_types.Lawsui
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
err = create_update_ctx(ctx, db, m, true)
|
err = create_update_ctx(ctx, db, m, true, nil)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -140,12 +140,12 @@ func (crud Crud_DB) create_update(m *lawsuit_status_types.LawsuitStatusType, is_
|
|||||||
|
|
||||||
db := postgres_gorm.GetConnection()
|
db := postgres_gorm.GetConnection()
|
||||||
|
|
||||||
err = create_update_ctx(ctx, db, m, is_create)
|
err = create_update_ctx(ctx, db, m, is_create, nil)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
// create_update_ctx - записывает объект в базу данных
|
// create_update_ctx - записывает объект в базу данных
|
||||||
func create_update_ctx(ctx context.Context, db *gorm.DB, m *lawsuit_status_types.LawsuitStatusType, is_create bool) error {
|
func create_update_ctx(ctx context.Context, db *gorm.DB, m *lawsuit_status_types.LawsuitStatusType, is_create bool, MassNeedUpdateFields []string) error {
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
// log.Trace("start Save() ", TableName, " id: ", int64(m.ID))
|
// log.Trace("start Save() ", TableName, " id: ", int64(m.ID))
|
||||||
@ -168,16 +168,21 @@ func create_update_ctx(ctx context.Context, db *gorm.DB, m *lawsuit_status_types
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
|
||||||
db.WithContext(ctx)
|
|
||||||
|
|
||||||
// заполним даты
|
// заполним даты
|
||||||
//Text_modified_at
|
//Text_modified_at
|
||||||
//Text_is_deleted_deleted_at
|
//Text_is_deleted_deleted_at
|
||||||
//Text_created_at
|
//Text_created_at
|
||||||
|
|
||||||
|
//
|
||||||
|
tx := db.WithContext(ctx).Model(&m)
|
||||||
|
|
||||||
|
//колонки для обновления
|
||||||
|
MassNeedFields := crud_functions.MassNeedFields_from_MassNeedUpdateFields(MassNeedUpdateFields)
|
||||||
|
if len(MassNeedUpdateFields) > 0 {
|
||||||
|
tx = tx.Select(MassNeedFields)
|
||||||
|
}
|
||||||
|
|
||||||
//колонки с null
|
//колонки с null
|
||||||
tx := db
|
|
||||||
MassOmit := make([]string, 0)
|
MassOmit := make([]string, 0)
|
||||||
var ColumnName string
|
var ColumnName string
|
||||||
|
|
||||||
@ -200,7 +205,11 @@ func create_update_ctx(ctx context.Context, db *gorm.DB, m *lawsuit_status_types
|
|||||||
|
|
||||||
//запишем NULL в пустые колонки
|
//запишем NULL в пустые колонки
|
||||||
MapOmit := crud_functions.MapOmit_from_MassOmit(MassOmit)
|
MapOmit := crud_functions.MapOmit_from_MassOmit(MassOmit)
|
||||||
tx = db.Model(&m).Updates(MapOmit)
|
tx = db.Model(&m)
|
||||||
|
if len(MassNeedUpdateFields) > 0 {
|
||||||
|
tx = tx.Select(MassNeedFields)
|
||||||
|
}
|
||||||
|
tx = tx.Updates(MapOmit)
|
||||||
err = tx.Error
|
err = tx.Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
err = fmt.Errorf(m.TableNameDB()+" Create_Update() id: %v, error: %v", m.ID, err)
|
err = fmt.Errorf(m.TableNameDB()+" Create_Update() id: %v, error: %v", m.ID, err)
|
||||||
|
@ -1,6 +1,9 @@
|
|||||||
package crud_functions
|
package crud_functions
|
||||||
|
|
||||||
import "gorm.io/gorm"
|
import (
|
||||||
|
"gorm.io/gorm"
|
||||||
|
"slices"
|
||||||
|
)
|
||||||
|
|
||||||
// MapOmit_from_MassOmit - создает MapOmit из MassOmit
|
// MapOmit_from_MassOmit - создает MapOmit из MassOmit
|
||||||
func MapOmit_from_MassOmit(MassOmit []string) map[string]interface{} {
|
func MapOmit_from_MassOmit(MassOmit []string) map[string]interface{} {
|
||||||
@ -11,3 +14,24 @@ func MapOmit_from_MassOmit(MassOmit []string) map[string]interface{} {
|
|||||||
|
|
||||||
return MapOmit
|
return MapOmit
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// MassNeedFields_from_MassNeedUpdateFields - создает MassFields из MassNeedUpdateFields
|
||||||
|
// копирует все элементты и добавляет "ModifiedAt" и др.
|
||||||
|
func MassNeedFields_from_MassNeedUpdateFields(MassNeedUpdateFields []string) []string {
|
||||||
|
//колонки для обновления
|
||||||
|
MassFields := make([]string, len(MassNeedUpdateFields))
|
||||||
|
copy(MassFields, MassNeedUpdateFields)
|
||||||
|
MassFields = append(MassFields, "ModifiedAt")
|
||||||
|
|
||||||
|
// DeletedAt вместе с IsDeleted
|
||||||
|
if slices.Contains(MassNeedUpdateFields, "IsDeleted") == true {
|
||||||
|
MassFields = append(MassFields, "DeletedAt")
|
||||||
|
}
|
||||||
|
|
||||||
|
//// CreatedAt вместе с ID=0
|
||||||
|
//if slices.Contains(MassNeedUpdateFields, "ID") == true {
|
||||||
|
// MassFields = append(MassFields, "CreatedAt")
|
||||||
|
//}
|
||||||
|
|
||||||
|
return MassFields
|
||||||
|
}
|
||||||
|
@ -1 +1,51 @@
|
|||||||
package crud_functions
|
package crud_functions
|
||||||
|
|
||||||
|
import (
|
||||||
|
"gorm.io/gorm"
|
||||||
|
"reflect"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestMapOmit_from_MassOmit(t *testing.T) {
|
||||||
|
t.Run("Empty input slice", func(t *testing.T) {
|
||||||
|
MassOmit := []string{}
|
||||||
|
result := MapOmit_from_MassOmit(MassOmit)
|
||||||
|
if len(result) != 0 {
|
||||||
|
t.Errorf("Expected an empty map, but got %v", result)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
t.Run("Non-empty input slice", func(t *testing.T) {
|
||||||
|
MassOmit := []string{"key1", "key2"}
|
||||||
|
result := MapOmit_from_MassOmit(MassOmit)
|
||||||
|
expected := map[string]interface{}{
|
||||||
|
"key1": gorm.Expr("NULL"),
|
||||||
|
"key2": gorm.Expr("NULL"),
|
||||||
|
}
|
||||||
|
if !reflect.DeepEqual(result, expected) {
|
||||||
|
t.Errorf("Expected %v, but got %v", expected, result)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestMassNeedFields_from_MassNeedUpdateFields(t *testing.T) {
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
input []string
|
||||||
|
expected []string
|
||||||
|
}{
|
||||||
|
{"Empty input", []string{}, []string{"ModifiedAt"}},
|
||||||
|
//{"Contains IsDeleted and ID", []string{"IsDeleted", "ID"}, []string{"IsDeleted", "ID", "ModifiedAt", "DeletedAt", "CreatedAt"}},
|
||||||
|
{"Contains only IsDeleted", []string{"IsDeleted"}, []string{"IsDeleted", "ModifiedAt", "DeletedAt"}},
|
||||||
|
//{"Contains only ID", []string{"ID"}, []string{"ID", "ModifiedAt", "CreatedAt"}},
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, tt := range tests {
|
||||||
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
result := MassNeedFields_from_MassNeedUpdateFields(tt.input)
|
||||||
|
if !reflect.DeepEqual(result, tt.expected) {
|
||||||
|
t.Errorf("Expected %v, but got %v", tt.expected, result)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -2,6 +2,7 @@ package grpc_lawsuit_status_types
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
"time"
|
||||||
"github.com/ManyakRus/starter/log"
|
"github.com/ManyakRus/starter/log"
|
||||||
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/api/grpc_proto"
|
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/api/grpc_proto"
|
||||||
"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"
|
||||||
@ -9,5 +10,44 @@ import (
|
|||||||
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/network/grpc_nrpc"
|
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/network/grpc_nrpc"
|
||||||
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/network/nrpc/nrpc_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/entities/lawsuit_status_types"
|
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/object_model/entities/lawsuit_status_types"
|
||||||
"time"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// UpdateManyFields - обновляет несколько полей в базе данных, по ИД
|
||||||
|
func (crud Crud_GRPC) UpdateManyFields(m *lawsuit_status_types.LawsuitStatusType, MassNeedUpdateFields []string) error {
|
||||||
|
var err error
|
||||||
|
|
||||||
|
// подключение
|
||||||
|
grpc_client.Connect_GRPC_NRPC()
|
||||||
|
|
||||||
|
// подготовка запроса
|
||||||
|
var VersionModel = crud.GetVersionModel()
|
||||||
|
|
||||||
|
ModelString, err := m.GetJSON()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
Request := &grpc_proto.Request_Model_MassString{}
|
||||||
|
Request.VersionModel = VersionModel
|
||||||
|
Request.ModelString = ModelString
|
||||||
|
Request.MassNames = MassNeedUpdateFields
|
||||||
|
|
||||||
|
ctxMain := context.Background()
|
||||||
|
ctx, ctxCancelFunc := context.WithTimeout(ctxMain, time.Second*time.Duration(grpc_constants.GetTimeoutSeconds()))
|
||||||
|
defer ctxCancelFunc()
|
||||||
|
|
||||||
|
// запрос
|
||||||
|
if grpc_nrpc.NeedNRPC == true {
|
||||||
|
_, err = nrpc_client.Client.LawsuitStatusType_UpdateManyFields(Request)
|
||||||
|
} else {
|
||||||
|
_, err = grpc_client.Client.LawsuitStatusType_UpdateManyFields(ctx, Request)
|
||||||
|
}
|
||||||
|
if err != nil {
|
||||||
|
if grpc_client.IsErrorModelVersion(err) == true {
|
||||||
|
log.Panic(err)
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
@ -6,3 +6,31 @@ import (
|
|||||||
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/object_model/entities/lawsuit_status_types"
|
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/object_model/entities/lawsuit_status_types"
|
||||||
"testing"
|
"testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func TestCrud_GRPC_UpdateManyFields(t *testing.T) {
|
||||||
|
config_main.LoadEnv()
|
||||||
|
grpc_client.Connect()
|
||||||
|
defer grpc_client.CloseConnection()
|
||||||
|
|
||||||
|
//прочитаем из БД
|
||||||
|
crud := Crud_GRPC{}
|
||||||
|
Otvet := lawsuit_status_types.LawsuitStatusType{}
|
||||||
|
Otvet.ID = Postgres_ID_Test
|
||||||
|
err := crud.Read(&Otvet)
|
||||||
|
if err != nil {
|
||||||
|
t.Error("TestCrud_GRPC_UpdateManyFields() error: ", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
//запишем в БД, пустой список полей (не изменится)
|
||||||
|
err = crud.UpdateManyFields(&Otvet, nil)
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
t.Error("TestCrud_GRPC_UpdateManyFields() error: ", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if Otvet.ID == 0 {
|
||||||
|
t.Error("TestCrud_GRPC_UpdateManyFields() error: ID =0")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@ -24,6 +24,7 @@ type ICrud_LawsuitStatusType interface {
|
|||||||
Restore(*LawsuitStatusType) error
|
Restore(*LawsuitStatusType) error
|
||||||
Find_ByExtID(*LawsuitStatusType) error
|
Find_ByExtID(*LawsuitStatusType) error
|
||||||
ReadFromCache(ID int64) (LawsuitStatusType, error)
|
ReadFromCache(ID int64) (LawsuitStatusType, error)
|
||||||
|
UpdateManyFields(*LawsuitStatusType, []string) error
|
||||||
}
|
}
|
||||||
|
|
||||||
// TableName - возвращает имя таблицы в БД
|
// TableName - возвращает имя таблицы в БД
|
||||||
@ -189,4 +190,15 @@ func (m LawsuitStatusType) SetCrudInterface(crud ICrud_LawsuitStatusType) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// UpdateManyFields - находит запись в БД по ID, и изменяет только нужные колонки
|
||||||
|
func (m *LawsuitStatusType) UpdateManyFields(MassNeedUpdateFields []string) error {
|
||||||
|
if Crud_LawsuitStatusType == nil {
|
||||||
|
return constants.ErrorCrudIsNotInit
|
||||||
|
}
|
||||||
|
|
||||||
|
err := Crud_LawsuitStatusType.UpdateManyFields(m, MassNeedUpdateFields)
|
||||||
|
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
// ---------------------------- конец CRUD операции ------------------------------------------------------------
|
// ---------------------------- конец CRUD операции ------------------------------------------------------------
|
||||||
|
@ -14,7 +14,8 @@ func main() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func StartApp() {
|
func StartApp() {
|
||||||
//ConfigMain.LoadENV_or_SettingsTXT()
|
//defer micro.ShowTimePassed(time.Now())
|
||||||
|
|
||||||
config.LoadSettingsTxt()
|
config.LoadSettingsTxt()
|
||||||
|
|
||||||
config.FillSettings()
|
config.FillSettings()
|
||||||
|
@ -474,6 +474,7 @@ func ReplaceText_created_at(s string, Table1 *types.Table) string {
|
|||||||
return Otvet
|
return Otvet
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// RenameFunctions - заменяет названия функций, на названия из файла
|
||||||
func RenameFunctions(TextDB string, Table1 *types.Table) string {
|
func RenameFunctions(TextDB string, Table1 *types.Table) string {
|
||||||
Otvet := TextDB
|
Otvet := TextDB
|
||||||
|
|
||||||
@ -528,6 +529,8 @@ func CreateFilesUpdateEveryColumn(Table1 *types.Table) error {
|
|||||||
|
|
||||||
//заменим имя пакета на новое
|
//заменим имя пакета на новое
|
||||||
TextCrud = create_files.ReplacePackageName(TextCrud, DirReadyTable)
|
TextCrud = create_files.ReplacePackageName(TextCrud, DirReadyTable)
|
||||||
|
TextCrud = strings.ReplaceAll(TextCrud, config.Settings.TEXT_TEMPLATE_MODEL, Table1.NameGo)
|
||||||
|
TextCrud = strings.ReplaceAll(TextCrud, config.Settings.TEXT_TEMPLATE_TABLENAME, Table1.Name)
|
||||||
|
|
||||||
//заменим импорты
|
//заменим импорты
|
||||||
if config.Settings.USE_DEFAULT_TEMPLATE == true {
|
if config.Settings.USE_DEFAULT_TEMPLATE == true {
|
||||||
@ -558,6 +561,9 @@ func CreateFilesUpdateEveryColumn(Table1 *types.Table) error {
|
|||||||
TextCrud = strings.ReplaceAll(TextCrud, `//`+constants.TEXT_CACHE_REMOVE, constants.TEXT_CACHE_REMOVE)
|
TextCrud = strings.ReplaceAll(TextCrud, `//`+constants.TEXT_CACHE_REMOVE, constants.TEXT_CACHE_REMOVE)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//переименование функций
|
||||||
|
TextCrud = RenameFunctions(TextCrud, Table1)
|
||||||
|
|
||||||
//удаление пустого импорта
|
//удаление пустого импорта
|
||||||
TextCrud = create_files.DeleteEmptyImport(TextCrud)
|
TextCrud = create_files.DeleteEmptyImport(TextCrud)
|
||||||
|
|
||||||
@ -675,15 +681,8 @@ func CreateFilesUpdateEveryColumnTest(Table1 *types.Table) error {
|
|||||||
|
|
||||||
//заменим имя пакета на новое
|
//заменим имя пакета на новое
|
||||||
TextCrud = create_files.ReplacePackageName(TextCrud, DirReadyTable)
|
TextCrud = create_files.ReplacePackageName(TextCrud, DirReadyTable)
|
||||||
|
TextCrud = strings.ReplaceAll(TextCrud, config.Settings.TEXT_TEMPLATE_MODEL, Table1.NameGo)
|
||||||
// TextCrud := "package " + config.Settings.PREFIX_CRUD + TableName + "\n\n"
|
TextCrud = strings.ReplaceAll(TextCrud, config.Settings.TEXT_TEMPLATE_TABLENAME, Table1.Name)
|
||||||
// TextCrud = TextCrud + `import (
|
|
||||||
// "testing"
|
|
||||||
// "github.com/ManyakRus/starter/config_main"
|
|
||||||
// "github.com/ManyakRus/starter/postgres_gorm"
|
|
||||||
//)
|
|
||||||
//
|
|
||||||
//`
|
|
||||||
|
|
||||||
//заменим импорты
|
//заменим импорты
|
||||||
if config.Settings.USE_DEFAULT_TEMPLATE == true {
|
if config.Settings.USE_DEFAULT_TEMPLATE == true {
|
||||||
@ -701,9 +700,6 @@ func CreateFilesUpdateEveryColumnTest(Table1 *types.Table) error {
|
|||||||
if TextUpdateEveryColumn == "" {
|
if TextUpdateEveryColumn == "" {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
//ModelName := Table1.NameGo
|
|
||||||
//TextCrud = strings.ReplaceAll(TextCrud, config.Settings.TEXT_TEMPLATE_MODEL, ModelName)
|
|
||||||
//TextCrud = strings.ReplaceAll(TextCrud, config.Settings.TEXT_TEMPLATE_TABLENAME, Table1.Name)
|
|
||||||
TextCrud = TextCrud + TextUpdateEveryColumn
|
TextCrud = TextCrud + TextUpdateEveryColumn
|
||||||
|
|
||||||
TextCrud = config.Settings.TEXT_MODULE_GENERATED + TextCrud
|
TextCrud = config.Settings.TEXT_MODULE_GENERATED + TextCrud
|
||||||
|
@ -397,19 +397,12 @@ func CreateFilesUpdateEveryColumn(Table1 *types.Table) error {
|
|||||||
}
|
}
|
||||||
TextGRPC_Client := string(bytes)
|
TextGRPC_Client := string(bytes)
|
||||||
TextGRPC_Client = TextGRPC_Client + "\n"
|
TextGRPC_Client = TextGRPC_Client + "\n"
|
||||||
|
TextGRPC_Client = strings.ReplaceAll(TextGRPC_Client, config.Settings.TEXT_TEMPLATE_MODEL, Table1.NameGo)
|
||||||
|
TextGRPC_Client = strings.ReplaceAll(TextGRPC_Client, config.Settings.TEXT_TEMPLATE_TABLENAME, Table1.Name)
|
||||||
|
|
||||||
//заменим имя пакета на новое
|
//заменим имя пакета на новое
|
||||||
TextGRPC_Client = create_files.ReplacePackageName(TextGRPC_Client, DirReadyTable)
|
TextGRPC_Client = create_files.ReplacePackageName(TextGRPC_Client, DirReadyTable)
|
||||||
|
|
||||||
// TextGRPC_Client := "package " + config.Settings.PREFIX_CLIENT_GRPC + TableName + "\n\n"
|
|
||||||
// TextGRPC_Client = TextGRPC_Client + `import (
|
|
||||||
// "context"
|
|
||||||
// "time"
|
|
||||||
// "github.com/ManyakRus/starter/log"
|
|
||||||
//)
|
|
||||||
//
|
|
||||||
//`
|
|
||||||
|
|
||||||
//заменим импорты
|
//заменим импорты
|
||||||
if config.Settings.USE_DEFAULT_TEMPLATE == true {
|
if config.Settings.USE_DEFAULT_TEMPLATE == true {
|
||||||
TextGRPC_Client = create_files.DeleteTemplateRepositoryImports(TextGRPC_Client)
|
TextGRPC_Client = create_files.DeleteTemplateRepositoryImports(TextGRPC_Client)
|
||||||
@ -557,6 +550,8 @@ func CreateTestFilesUpdateEveryColumn(Table1 *types.Table) error {
|
|||||||
}
|
}
|
||||||
TextGRPC_Client := string(bytes)
|
TextGRPC_Client := string(bytes)
|
||||||
TextGRPC_Client = TextGRPC_Client + "\n"
|
TextGRPC_Client = TextGRPC_Client + "\n"
|
||||||
|
TextGRPC_Client = strings.ReplaceAll(TextGRPC_Client, config.Settings.TEXT_TEMPLATE_MODEL, Table1.NameGo)
|
||||||
|
TextGRPC_Client = strings.ReplaceAll(TextGRPC_Client, config.Settings.TEXT_TEMPLATE_TABLENAME, Table1.Name)
|
||||||
|
|
||||||
//заменим имя пакета на новое
|
//заменим имя пакета на новое
|
||||||
TextGRPC_Client = create_files.ReplacePackageName(TextGRPC_Client, DirReadyTable)
|
TextGRPC_Client = create_files.ReplacePackageName(TextGRPC_Client, DirReadyTable)
|
||||||
|
@ -391,15 +391,8 @@ func CreateFilesUpdateEveryColumn(Table1 *types.Table) error {
|
|||||||
|
|
||||||
//заменим имя пакета на новое
|
//заменим имя пакета на новое
|
||||||
TextGRPCServer = create_files.ReplacePackageName(TextGRPCServer, DirReadyTable)
|
TextGRPCServer = create_files.ReplacePackageName(TextGRPCServer, DirReadyTable)
|
||||||
|
TextGRPCServer = strings.ReplaceAll(TextGRPCServer, config.Settings.TEXT_TEMPLATE_MODEL, Table1.NameGo)
|
||||||
// PackageName := micro.LastWord(config.Settings.TEMPLATE_FOLDERNAME_GRPC_SERVER)
|
TextGRPCServer = strings.ReplaceAll(TextGRPCServer, config.Settings.TEXT_TEMPLATE_TABLENAME, Table1.Name)
|
||||||
// TextGRPCServer := "package " + PackageName + "\n\n"
|
|
||||||
// TextGRPCServer = TextGRPCServer + `import (
|
|
||||||
// "context"
|
|
||||||
// "github.com/ManyakRus/starter/micro"
|
|
||||||
//)
|
|
||||||
//
|
|
||||||
//`
|
|
||||||
|
|
||||||
//заменим импорты
|
//заменим импорты
|
||||||
if config.Settings.USE_DEFAULT_TEMPLATE == true {
|
if config.Settings.USE_DEFAULT_TEMPLATE == true {
|
||||||
@ -426,9 +419,6 @@ func CreateFilesUpdateEveryColumn(Table1 *types.Table) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
//ModelName := Table1.NameGo
|
|
||||||
//TextGRPCServer = strings.ReplaceAll(TextGRPCServer, config.Settings.TEXT_TEMPLATE_MODEL, ModelName)
|
|
||||||
//TextGRPCServer = strings.ReplaceAll(TextGRPCServer, config.Settings.TEXT_TEMPLATE_TABLENAME, Table1.Name)
|
|
||||||
TextGRPCServer = TextGRPCServer + TextUpdateEveryColumn
|
TextGRPCServer = TextGRPCServer + TextUpdateEveryColumn
|
||||||
|
|
||||||
if config.Settings.USE_DEFAULT_TEMPLATE == true {
|
if config.Settings.USE_DEFAULT_TEMPLATE == true {
|
||||||
@ -538,16 +528,8 @@ func CreateTestFilesUpdateEveryColumn(Table1 *types.Table) error {
|
|||||||
|
|
||||||
//заменим имя пакета на новое
|
//заменим имя пакета на новое
|
||||||
TextGRPCServer = create_files.ReplacePackageName(TextGRPCServer, DirReadyTable)
|
TextGRPCServer = create_files.ReplacePackageName(TextGRPCServer, DirReadyTable)
|
||||||
|
TextGRPCServer = strings.ReplaceAll(TextGRPCServer, config.Settings.TEXT_TEMPLATE_MODEL, Table1.NameGo)
|
||||||
// PackageName := micro.LastWord(config.Settings.TEMPLATE_FOLDERNAME_GRPC_SERVER)
|
TextGRPCServer = strings.ReplaceAll(TextGRPCServer, config.Settings.TEXT_TEMPLATE_TABLENAME, Table1.Name)
|
||||||
// TextGRPCServer := "package " + PackageName + "\n\n"
|
|
||||||
// TextGRPCServer = TextGRPCServer + `import (
|
|
||||||
// "context"
|
|
||||||
// "testing"
|
|
||||||
// "github.com/ManyakRus/starter/config_main"
|
|
||||||
//)
|
|
||||||
//
|
|
||||||
//`
|
|
||||||
|
|
||||||
//заменим импорты
|
//заменим импорты
|
||||||
if config.Settings.USE_DEFAULT_TEMPLATE == true {
|
if config.Settings.USE_DEFAULT_TEMPLATE == true {
|
||||||
@ -570,13 +552,11 @@ func CreateTestFilesUpdateEveryColumn(Table1 *types.Table) error {
|
|||||||
|
|
||||||
//создание текста
|
//создание текста
|
||||||
TextUpdateEveryColumn := FindTextUpdateEveryColumnTest(TextGRPCServerUpdateFunc, Table1)
|
TextUpdateEveryColumn := FindTextUpdateEveryColumnTest(TextGRPCServerUpdateFunc, Table1)
|
||||||
|
|
||||||
// пустой файл не нужен
|
// пустой файл не нужен
|
||||||
if TextUpdateEveryColumn == "" {
|
if TextUpdateEveryColumn == "" {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
//ModelName := Table1.NameGo
|
|
||||||
//TextGRPCServer = strings.ReplaceAll(TextGRPCServer, config.Settings.TEXT_TEMPLATE_MODEL, ModelName)
|
|
||||||
//TextGRPCServer = strings.ReplaceAll(TextGRPCServer, config.Settings.TEXT_TEMPLATE_TABLENAME, Table1.Name)
|
|
||||||
TextGRPCServer = TextGRPCServer + TextUpdateEveryColumn
|
TextGRPCServer = TextGRPCServer + TextUpdateEveryColumn
|
||||||
|
|
||||||
TextGRPCServer = config.Settings.TEXT_MODULE_GENERATED + TextGRPCServer
|
TextGRPCServer = config.Settings.TEXT_MODULE_GENERATED + TextGRPCServer
|
||||||
|
@ -178,6 +178,7 @@ func CreateFilesModel_crud(Table1 *types.Table, DirTemplatesModel, DirReadyModel
|
|||||||
TextModel = DeleteFromInterfaceDelete(TextModel, Table1)
|
TextModel = DeleteFromInterfaceDelete(TextModel, Table1)
|
||||||
TextModel = DeleteFromInterfaceRestore(TextModel, Table1)
|
TextModel = DeleteFromInterfaceRestore(TextModel, Table1)
|
||||||
TextModel = DeleteFromInterfaceFind_ByExtID(TextModel, Table1)
|
TextModel = DeleteFromInterfaceFind_ByExtID(TextModel, Table1)
|
||||||
|
TextModel = DeleteFromInterfaceUpdateManyFields(TextModel, Table1)
|
||||||
//кэш
|
//кэш
|
||||||
if config.Settings.NEED_CREATE_CACHE_API == false {
|
if config.Settings.NEED_CREATE_CACHE_API == false {
|
||||||
//исправление Save()
|
//исправление Save()
|
||||||
@ -683,3 +684,19 @@ func DeleteFromInterfaceReadFromCache(TextModel string, Table1 *types.Table) str
|
|||||||
|
|
||||||
return Otvet
|
return Otvet
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// DeleteFromInterfaceUpdateManyFields - удаляет функцию UpdateManyFields() из интерфейса
|
||||||
|
func DeleteFromInterfaceUpdateManyFields(TextModel string, Table1 *types.Table) string {
|
||||||
|
Otvet := TextModel
|
||||||
|
|
||||||
|
//проверим есть ли колонка IsDeleted
|
||||||
|
if config.Settings.NEED_CREATE_UPDATE_EVERY_COLUMN == true {
|
||||||
|
return Otvet
|
||||||
|
}
|
||||||
|
|
||||||
|
ModelName := config.Settings.TEXT_TEMPLATE_MODEL
|
||||||
|
TextFind := "\n\tUpdateManyFields(*" + ModelName + ", []string) error"
|
||||||
|
Otvet = strings.ReplaceAll(Otvet, TextFind, "")
|
||||||
|
|
||||||
|
return Otvet
|
||||||
|
}
|
||||||
|
@ -83,6 +83,7 @@ func CreateFileProto(MapAll map[string]*types.Table) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TextProtoNew = TextProtoNew + FindTextProtoTable1(TextProto, Table1)
|
TextProtoNew = TextProtoNew + FindTextProtoTable1(TextProto, Table1)
|
||||||
|
TextProtoNew = TextProtoNew + FindTextProtoTable1_UpdateManyFields(TextProto, Table1)
|
||||||
TextProtoNew = TextProtoNew + FindTextProtoTable1_UpdateEveryColumn(TextProto, Table1)
|
TextProtoNew = TextProtoNew + FindTextProtoTable1_UpdateEveryColumn(TextProto, Table1)
|
||||||
|
|
||||||
if config.Settings.NEED_CREATE_CACHE_API == true {
|
if config.Settings.NEED_CREATE_CACHE_API == true {
|
||||||
@ -416,3 +417,36 @@ func TextReadFromCache(ModelName string) string {
|
|||||||
|
|
||||||
return Otvet
|
return Otvet
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FindTextProtoTable1_UpdateManyFields - возвращает текст функции UpdateManyFields() .proto для таблицы
|
||||||
|
func FindTextProtoTable1_UpdateManyFields(TextProto string, Table1 *types.Table) string {
|
||||||
|
Otvet := "\n" //"\n\t//\n"
|
||||||
|
|
||||||
|
ModelName := Table1.NameGo
|
||||||
|
Otvet = Otvet + FindTextUpdateManyFields(TextProto, ModelName)
|
||||||
|
|
||||||
|
return Otvet
|
||||||
|
}
|
||||||
|
|
||||||
|
// FindTextUpdateManyFields - возвращает текст .proto
|
||||||
|
func FindTextUpdateManyFields(TextProto string, ModelName string) string {
|
||||||
|
Otvet := ""
|
||||||
|
Otvet2 := TextUpdateManyFields(ModelName)
|
||||||
|
|
||||||
|
//проверка такой текст уже есть
|
||||||
|
pos1 := strings.Index(TextProto, Otvet2)
|
||||||
|
if pos1 >= 0 {
|
||||||
|
return Otvet
|
||||||
|
}
|
||||||
|
|
||||||
|
Otvet = "\t" + Otvet2 + "\n"
|
||||||
|
|
||||||
|
return Otvet
|
||||||
|
}
|
||||||
|
|
||||||
|
// TextUpdateManyFields - возвращает текст .proto
|
||||||
|
func TextUpdateManyFields(ModelName string) string {
|
||||||
|
Otvet := "rpc " + ModelName + "_UpdateManyFields(Request_Model_MassString) returns (ResponseEmpty) {}"
|
||||||
|
|
||||||
|
return Otvet
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user