yt-gen-app/lib/templ/find-source-data.go

148 lines
3.7 KiB
Go

package templ
import (
"strings"
"git.ymnuktech.ru/ymnuk/yt-gen-app/structs"
uuid "github.com/satori/go.uuid"
)
// Найти таблицу по имени
func FindSourceDataInDBByName(project *structs.Project, name string) *structs.Table /*uuid.UUID*/ {
if len(project.DB.Tables) == 0 {
//return uuid.Nil
return nil
}
for i := range project.DB.Tables {
if project.DB.Tables[i].Name == name {
//return project.DB.Tables[i].ID
return &project.DB.Tables[i]
}
}
//return uuid.Nil
return nil
}
// Найти ID поля по имени
func FindFieldIdInDBByName(project *structs.Project, tblID uuid.UUID, fldName string) uuid.UUID {
if len(project.DB.Tables) == 0 {
return uuid.Nil
}
for i := range project.DB.Tables {
if project.DB.Tables[i].ID == tblID {
for j := range project.DB.Tables[i].Fields {
if project.DB.Tables[i].Fields[j].Name == strings.ToLower(fldName) {
return project.DB.Tables[i].Fields[j].ID
}
}
}
}
return uuid.Nil
}
// Найти таблицу по ID
func FindSourceDataInDBByID(project *structs.Project, id uuid.UUID) *structs.Table {
if len(project.DB.Tables) == 0 {
return nil
}
for i := range project.DB.Tables {
if project.DB.Tables[i].ID == id {
//return project.DB.Tables[i].Name
return &project.DB.Tables[i]
}
}
return nil
}
// Найти имя поля в таблице по ID
func FindFieldNameInDBById(project *structs.Project, tblID uuid.UUID, fldId uuid.UUID) string {
if len(project.DB.Tables) == 0 {
return ""
}
for i := range project.DB.Tables {
if project.DB.Tables[i].ID == tblID {
for j := range project.DB.Tables[i].Fields {
if project.DB.Tables[i].Fields[j].ID == fldId {
return project.DB.Tables[i].Fields[j].Name
}
}
}
}
return ""
}
func FindSourceDataInInterfaceByName(project *structs.Project, name string) *structs.Interface {
if len(project.Interfaces) == 0 {
return nil
}
for i := range project.Interfaces {
if project.Interfaces[i].Name == FieldNamePrepare(name) {
return &project.Interfaces[i]
}
}
return nil
}
func FindSourceDataInInterfaceByID(project *structs.Project, id uuid.UUID) *structs.Interface {
if len(project.Interfaces) == 0 {
return nil
}
for i := range project.Interfaces {
if project.Interfaces[i].ID == id {
return &project.Interfaces[i]
}
}
return nil
}
// Найти ID поля по имени
func FindFieldIdInInterfaceByName(project *structs.Project, interfaceID uuid.UUID, fldName string) uuid.UUID {
if len(project.Interfaces) == 0 {
return uuid.Nil
}
for i := range project.Interfaces {
if project.Interfaces[i].ID == interfaceID {
for j := range project.Interfaces[i].Fields {
if project.Interfaces[i].Fields[j].Name == strings.ToLower(fldName) {
return project.Interfaces[i].Fields[j].ID
}
}
}
}
return uuid.Nil
}
// Найти имя поля в интерфейсе по ID
func FindFieldNameInTableById(project *structs.Project, tblID uuid.UUID, fldId uuid.UUID) string {
if len(project.DB.Tables) == 0 {
return ""
}
for i := range project.DB.Tables {
if project.DB.Tables[i].ID == tblID {
for j := range project.DB.Tables[i].Fields {
if project.DB.Tables[i].Fields[j].ID == fldId {
return project.DB.Tables[i].Fields[j].Name
}
}
}
}
return ""
}
// Найти имя поля в интерфейсе по ID
func FindFieldNameInInterfaceById(project *structs.Project, interfaceID uuid.UUID, fldId uuid.UUID) string {
if len(project.DB.Tables) == 0 {
return ""
}
for i := range project.Interfaces {
if project.Interfaces[i].ID == interfaceID {
for j := range project.Interfaces[i].Fields {
if project.Interfaces[i].Fields[j].ID == fldId {
return project.Interfaces[i].Fields[j].Name
}
}
}
}
return ""
}