mirror of
https://github.com/ManyakRus/crud_generator.git
synced 2025-01-04 13:23:00 +02:00
сделал grpc_client_func.go
This commit is contained in:
parent
a4a9e58bb0
commit
6f4d3f077d
@ -8,16 +8,16 @@ import (
|
||||
"github.com/ManyakRus/starter/port_checker"
|
||||
"github.com/ManyakRus/starter/stopapp"
|
||||
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/api/grpc_proto"
|
||||
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/crud_starter"
|
||||
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/network/grpc/grpc_client_func"
|
||||
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/network/grpc/grpc_constants"
|
||||
"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/db/db_constants"
|
||||
"google.golang.org/grpc"
|
||||
"google.golang.org/grpc/credentials/insecure"
|
||||
"os"
|
||||
"strings"
|
||||
"sync"
|
||||
"time"
|
||||
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/network/grpc_nrpc"
|
||||
)
|
||||
|
||||
// SettingsINI - тип структуры для хранения настроек подключени
|
||||
@ -32,15 +32,16 @@ var Settings SettingsINI
|
||||
// Conn - подключение к серверу GRPC
|
||||
var Conn *grpc.ClientConn
|
||||
|
||||
// Client - подключение к клиенту GRPC
|
||||
var Client grpc_proto.SyncServiceClient
|
||||
|
||||
// mutex_Connect - защита от многопоточности Reconnect()
|
||||
var mutex_Connect = &sync.Mutex{}
|
||||
|
||||
// NeedReconnect - флаг необходимости переподключения
|
||||
var NeedReconnect bool
|
||||
|
||||
// Объект с функцией Connect_GRPC_NRPC()
|
||||
type Object_Connect_GRPC_NRPC struct {
|
||||
}
|
||||
|
||||
// Connect - подключается к серверу GRPC, при ошибке вызывает панику
|
||||
func Connect() {
|
||||
var err error
|
||||
@ -64,6 +65,10 @@ func Connect_err() error {
|
||||
mutex_Connect.Lock()
|
||||
defer mutex_Connect.Unlock()
|
||||
|
||||
//
|
||||
grpc_client_func.Func_Connect_GRPC_NRPC = Object_Connect_GRPC_NRPC{}
|
||||
crud_starter.InitCrudTransport_GRPC()
|
||||
|
||||
//
|
||||
if Settings.SYNC_SERVICE_HOST == "" {
|
||||
err = FillSettings()
|
||||
@ -78,7 +83,7 @@ func Connect_err() error {
|
||||
return err
|
||||
}
|
||||
|
||||
Client = grpc_proto.NewSyncServiceClient(Conn)
|
||||
grpc_client_func.Client = grpc_proto.NewSyncServiceClient(Conn)
|
||||
|
||||
grpc_nrpc.NeedNRPC = false
|
||||
|
||||
@ -176,23 +181,6 @@ func CloseConnection_err() error {
|
||||
return err
|
||||
}
|
||||
|
||||
// IsRecordNotFound - возвращает true если ошибка = "record not found"
|
||||
func IsRecordNotFound(err error) bool {
|
||||
Otvet := false
|
||||
|
||||
if err == nil {
|
||||
return Otvet
|
||||
}
|
||||
|
||||
TextErr := err.Error()
|
||||
pos1 := strings.Index(TextErr, db_constants.TEXT_RECORD_NOT_FOUND)
|
||||
if pos1 >= 0 {
|
||||
Otvet = true
|
||||
}
|
||||
|
||||
return Otvet
|
||||
}
|
||||
|
||||
// ping_go - делает пинг каждые 60 секунд, и реконнект
|
||||
func ping_go() {
|
||||
|
||||
@ -242,26 +230,14 @@ func SetTimeoutSeconds(seconds int) {
|
||||
}
|
||||
|
||||
// Connect_GRPC_NRPC - подключается к серверу GRPC или NRPC, при ошибке вызывает панику
|
||||
func Connect_GRPC_NRPC() {
|
||||
func (Object_Connect_GRPC_NRPC) Connect_GRPC_NRPC() {
|
||||
if grpc_nrpc.NeedNRPC == true {
|
||||
if nrpc_client.Client == nil {
|
||||
nrpc_client.Connect()
|
||||
}
|
||||
} else {
|
||||
if Client == nil {
|
||||
if grpc_client_func.Client == nil {
|
||||
Connect()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 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
|
||||
}
|
||||
|
@ -1,23 +1,14 @@
|
||||
package grpc_client
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/db/db_constants"
|
||||
"github.com/ManyakRus/starter/config_main"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestIsRecordNotFound(t *testing.T) {
|
||||
|
||||
err := errors.New(db_constants.TEXT_RECORD_NOT_FOUND + " !")
|
||||
Otvet := IsRecordNotFound(err)
|
||||
if Otvet != true {
|
||||
t.Error("TestIsRecordNotFound() error: false")
|
||||
func TestFillSettings(t *testing.T) {
|
||||
config_main.LoadEnvTest()
|
||||
err := FillSettings()
|
||||
if err != nil {
|
||||
t.Error("FillSettings() error: ", err)
|
||||
}
|
||||
|
||||
err = errors.New("rpc error: code = Unknown desc = record not found")
|
||||
Otvet = IsRecordNotFound(err)
|
||||
if Otvet != true {
|
||||
t.Error("TestIsRecordNotFound() error: false")
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,48 @@
|
||||
package grpc_client_func
|
||||
|
||||
import (
|
||||
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/api/grpc_proto"
|
||||
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/db/db_constants"
|
||||
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/network/grpc/grpc_constants"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// Client - подключение к клиенту GRPC
|
||||
var Client grpc_proto.SyncServiceClient
|
||||
|
||||
// интерфейс для запуска функции IConnect_GRPC_NRPC
|
||||
type IConnect_GRPC_NRPC interface {
|
||||
Connect_GRPC_NRPC()
|
||||
}
|
||||
|
||||
// функция для запуска функции Connect_GRPC_NRPC()
|
||||
var Func_Connect_GRPC_NRPC IConnect_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
|
||||
}
|
||||
|
||||
// IsRecordNotFound - возвращает true если ошибка = "record not found"
|
||||
func IsRecordNotFound(err error) bool {
|
||||
Otvet := false
|
||||
|
||||
if err == nil {
|
||||
return Otvet
|
||||
}
|
||||
|
||||
TextErr := err.Error()
|
||||
pos1 := strings.Index(TextErr, db_constants.TEXT_RECORD_NOT_FOUND)
|
||||
if pos1 >= 0 {
|
||||
Otvet = true
|
||||
}
|
||||
|
||||
return Otvet
|
||||
}
|
@ -0,0 +1,23 @@
|
||||
package grpc_client_func
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/db/db_constants"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestIsRecordNotFound(t *testing.T) {
|
||||
|
||||
err := errors.New(db_constants.TEXT_RECORD_NOT_FOUND + " !")
|
||||
Otvet := IsRecordNotFound(err)
|
||||
if Otvet != true {
|
||||
t.Error("TestIsRecordNotFound() error: false")
|
||||
}
|
||||
|
||||
err = errors.New("rpc error: code = Unknown desc = record not found")
|
||||
Otvet = IsRecordNotFound(err)
|
||||
if Otvet != true {
|
||||
t.Error("TestIsRecordNotFound() error: false")
|
||||
}
|
||||
|
||||
}
|
@ -4,6 +4,9 @@
|
||||
//Файл создан автоматически кодогенератором crud_generator
|
||||
//Не изменяйте ничего здесь.
|
||||
|
||||
//Файл создан автоматически кодогенератором crud_generator
|
||||
//Не изменяйте ничего здесь.
|
||||
|
||||
package nrpc_client
|
||||
|
||||
import (
|
||||
@ -15,12 +18,12 @@ import (
|
||||
"github.com/ManyakRus/starter/stopapp"
|
||||
"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/db_constants"
|
||||
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/network/grpc/grpc_client_func"
|
||||
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/network/grpc_nrpc"
|
||||
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/network/nrpc/nrpc_constants"
|
||||
"sync"
|
||||
|
||||
"os"
|
||||
"strings"
|
||||
"time"
|
||||
)
|
||||
|
||||
@ -45,6 +48,10 @@ var mutex_Connect = &sync.Mutex{}
|
||||
// NeedReconnect - флаг необходимости переподключения
|
||||
var NeedReconnect bool
|
||||
|
||||
// Объект с функцией Connect_GRPC_NRPC()
|
||||
type Object_Connect_GRPC_NRPC struct {
|
||||
}
|
||||
|
||||
// Connect - подключается к серверу NRPC, при ошибке вызывает панику
|
||||
func Connect() {
|
||||
var err error
|
||||
@ -68,6 +75,8 @@ func Connect_err() error {
|
||||
mutex_Connect.Lock()
|
||||
defer mutex_Connect.Unlock()
|
||||
|
||||
grpc_client_func.Func_Connect_GRPC_NRPC = Object_Connect_GRPC_NRPC{}
|
||||
|
||||
if Settings.NATS_HOST == "" {
|
||||
FillSettings()
|
||||
}
|
||||
@ -177,25 +186,6 @@ func CloseConnection() {
|
||||
log.Info("NRPC client connection closed")
|
||||
}
|
||||
|
||||
// IsRecordNotFound - возвращает true если ошибка = "record not found"
|
||||
func IsRecordNotFound(err error) bool {
|
||||
Otvet := false
|
||||
|
||||
if err == nil {
|
||||
return Otvet
|
||||
}
|
||||
|
||||
// len1 := len(db_constants.TEXT_RECORD_NOT_FOUND)
|
||||
TextErr := err.Error()
|
||||
pos1 := strings.Index(TextErr, db_constants.TEXT_RECORD_NOT_FOUND)
|
||||
// if TextErr[0:len1] == db_constants.TEXT_RECORD_NOT_FOUND {
|
||||
if pos1 >= 0 {
|
||||
Otvet = true
|
||||
}
|
||||
|
||||
return Otvet
|
||||
}
|
||||
|
||||
// ping_go - делает пинг каждые 60 секунд, и реконнект
|
||||
func ping_go() {
|
||||
|
||||
@ -243,3 +233,16 @@ func GetTimeoutSeconds() int {
|
||||
func SetTimeoutSeconds(seconds int) {
|
||||
nrpc_constants.SetTimeoutSeconds(seconds)
|
||||
}
|
||||
|
||||
// Connect_GRPC_NRPC - подключается к серверу GRPC или NRPC, при ошибке вызывает панику
|
||||
func (Object_Connect_GRPC_NRPC) Connect_GRPC_NRPC() {
|
||||
if grpc_nrpc.NeedNRPC == true {
|
||||
if Client == nil {
|
||||
Connect()
|
||||
}
|
||||
} else {
|
||||
if grpc_client_func.Client == nil {
|
||||
Connect()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,3 +1,6 @@
|
||||
//Файл создан автоматически кодогенератором crud_generator
|
||||
//Не изменяйте ничего здесь.
|
||||
|
||||
package nrpc_client
|
||||
|
||||
import (
|
||||
|
@ -195,7 +195,7 @@ func CreateFilesTest(Table1 *types.Table) error {
|
||||
|
||||
FilenameTemplateGRPCClient := DirTemplatesGRPCClient + "grpc_client_table_test.go_"
|
||||
TableName := strings.ToLower(Table1.Name)
|
||||
DirReadyTable := DirReadyGRPCClient + "grpc_" + TableName + micro.SeparatorFile()
|
||||
DirReadyTable := DirReadyGRPCClient + "grpc_" + TableName + micro.SeparatorFile() + "tests" + micro.SeparatorFile()
|
||||
FilenameReadyGRPCClient := DirReadyTable + "grpc_" + TableName + "_test.go"
|
||||
|
||||
//создадим папку готовых файлов
|
||||
@ -563,7 +563,7 @@ func CreateFilesUpdateEveryColumnTest(Table1 *types.Table) error {
|
||||
DirReadyGRPC_Client := DirReady + config.Settings.TEMPLATE_FOLDERNAME_GRPC_CLIENT + micro.SeparatorFile() + config.Settings.PREFIX_CLIENT_GRPC + TableName + micro.SeparatorFile()
|
||||
|
||||
FilenameTemplateGRPC_ClientFunc := DirTemplatesGRPC_Client + constants.GRPC_CLIENT_TABLE_UPDATE_FUNC_TEST_FILENAME
|
||||
DirReadyTable := DirReadyGRPC_Client
|
||||
DirReadyTable := DirReadyGRPC_Client + "tests" + micro.SeparatorFile()
|
||||
FilenameReadyGRPC_ClientUpdate := DirReadyTable + config.Settings.PREFIX_CLIENT_GRPC + TableName + "_update_test.go"
|
||||
|
||||
//создадим папку готовых файлов
|
||||
@ -819,7 +819,7 @@ func CreateFiles_GRPC_Client_Cache_Test(Table1 *types.Table) error {
|
||||
|
||||
FilenameTemplateCache := DirTemplatesCache + config.Settings.TEMPLATES_GRPC_CLIENT_TABLES_CACHE_TEST_FILENAME
|
||||
TableName := strings.ToLower(Table1.Name)
|
||||
DirReadyTable := DirReadyCache + "grpc_" + TableName + micro.SeparatorFile()
|
||||
DirReadyTable := DirReadyCache + "grpc_" + TableName + micro.SeparatorFile() + "tests" + micro.SeparatorFile()
|
||||
FilenameReadyCache := DirReadyTable + "grpc_" + TableName + "_cache_test.go"
|
||||
|
||||
//создадим папку готовых файлов
|
||||
|
Loading…
Reference in New Issue
Block a user