feat: many2many relations check
This commit is contained in:
@@ -3,6 +3,7 @@ package common
|
||||
import (
|
||||
"go/ast"
|
||||
"go/token"
|
||||
"strings"
|
||||
)
|
||||
|
||||
type Field struct {
|
||||
@@ -21,3 +22,50 @@ type Model struct {
|
||||
Pos token.Pos
|
||||
Comment string
|
||||
}
|
||||
|
||||
type Param struct {
|
||||
Name string
|
||||
Value string
|
||||
}
|
||||
|
||||
func (model *Model) GetParam(name string) *Param {
|
||||
for _, field := range model.Fields {
|
||||
for _, param := range field.Params {
|
||||
pair := strings.SplitN(param, ":", 2)
|
||||
if len(pair) != 2 {
|
||||
return nil
|
||||
}
|
||||
if strings.ToLower(pair[0]) == strings.ToLower(name) {
|
||||
return &Param{
|
||||
Name: pair[0],
|
||||
Value: pair[1],
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (model *Model) HasParam(name string) bool {
|
||||
return model.GetParam(name) != nil
|
||||
}
|
||||
|
||||
func (field *Field) HasParam(name string) bool {
|
||||
return field.GetParam(name) != nil
|
||||
}
|
||||
|
||||
func (field *Field) GetParam(name string) *Param {
|
||||
for _, param := range field.Params {
|
||||
pair := strings.SplitN(param, ":", 2)
|
||||
if len(pair) != 2 {
|
||||
return nil
|
||||
}
|
||||
if strings.ToLower(pair[0]) == strings.ToLower(name) {
|
||||
return &Param{
|
||||
Name: pair[0],
|
||||
Value: pair[1],
|
||||
}
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user