Skip to content

Commit

Permalink
added entity setts, bumped version
Browse files Browse the repository at this point in the history
  • Loading branch information
adranwit committed Jul 12, 2024
1 parent 0ca353b commit b0bbf61
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 4 deletions.
2 changes: 1 addition & 1 deletion Version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v0.8.10
v0.8.11
1 change: 1 addition & 0 deletions cmd/datly/datly.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ func main() {
log.Fatal(err)
}
}()

err := cmd.RunApp(datly.Version, os.Args[1:])
if err != nil {
fmt.Printf("ERROR: %v\n", err)
Expand Down
2 changes: 0 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -1115,8 +1115,6 @@ github.com/viant/structology v0.5.6-0.20231127181208-736f8ad06193 h1:wKs4BXSTV0V
github.com/viant/structology v0.5.6-0.20231127181208-736f8ad06193/go.mod h1:oGgckfRCArsyzFpRqem+U0EEyzxjoNx3o21MXO43uh0=
github.com/viant/structql v0.4.2-0.20240712002135-b1ef22dd834f h1:B9+Qhjh0Owb2SzNwrRBYSGvAp1kNRDgZoVKPXmcsKP0=
github.com/viant/structql v0.4.2-0.20240712002135-b1ef22dd834f/go.mod h1:1ko0M6tIUv2nafHo94cnUGG65GmAXYmkEcgeUU/+kCM=
github.com/viant/structql v0.4.2 h1:rwdh8t3GRvB6B8bXvQDygeFgcB/x10uoinQPpeFT7/I=
github.com/viant/structql v0.4.2/go.mod h1:1ko0M6tIUv2nafHo94cnUGG65GmAXYmkEcgeUU/+kCM=
github.com/viant/tagly v0.2.1-0.20240521205717-55de744e893c h1:j16wc8v05VpZXLaBDqbLZOAjSyN/XrmzjqgcPm6K2FI=
github.com/viant/tagly v0.2.1-0.20240521205717-55de744e893c/go.mod h1:vV8QgJkhug+X+qyKds8av0fhjD+4u7IhNtowL1KGQ5A=
github.com/viant/toolbox v0.24.0/go.mod h1:OxMCG57V0PXuIP2HNQrtJf2CjqdmbrOx5EkMILuUhzM=
Expand Down
29 changes: 28 additions & 1 deletion internal/codegen/entity.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import (
"github.com/viant/datly/view/state"
"github.com/viant/xreflect"
"go/format"
"reflect"
"strings"
)

Expand Down Expand Up @@ -49,10 +50,36 @@ func (t *Template) GenerateEntity(ctx context.Context, pkg string, info *plugin.
initSnippet = strings.Replace(initSnippet, "$Package", pkg+"/"+t.FileMethodFragment(), 1)
initSnippet = strings.Replace(initSnippet, "$GlobalDeclaration", globalDeclaration, 1)

recv := strings.ToLower(t.TypeDef.Name[:1])

afterSnippet := strings.Builder{}
for i := 0; i < rType.NumField(); i++ {
field := rType.Field(i)
isPtr := field.Type.Kind() == reflect.Ptr
rawType := field.Type
if isPtr {
rawType = field.Type.Elem()
}
if rawType.Name() == "" || strings.Contains(string(field.Tag), `json:"-\"`) {
continue
}

afterSnippet.WriteString(fmt.Sprintf("\nfunc (%v *%v) Set%v(value %v) {", recv, t.TypeDef.Name, field.Name, rawType.String()))
if isPtr {
afterSnippet.WriteString(fmt.Sprintf("\n\t%v.%v = &value", recv, field.Name))
} else {
afterSnippet.WriteString(fmt.Sprintf("\n\t%v.%v = value", recv, field.Name))
}
afterSnippet.WriteString(fmt.Sprintf("\n\t%v.Has.%v = true", recv, field.Name))
afterSnippet.WriteString("\n}\n\n")
}

generatedStruct := xreflect.GenerateStruct(t.TypeDef.Name, rType,
xreflect.WithPackage(pkg),
xreflect.WithImports(imps.Packages),
xreflect.WithSnippetBefore(initSnippet))
xreflect.WithSnippetBefore(initSnippet),
xreflect.WithSnippetAfter(afterSnippet.String()),
)
formatted, err := format.Source([]byte(generatedStruct))
if err != nil {
return "", err
Expand Down

0 comments on commit b0bbf61

Please sign in to comment.