Skip to content

Commit

Permalink
patched exclusion with explicit output parameter
Browse files Browse the repository at this point in the history
  • Loading branch information
adranwit committed Aug 18, 2024
1 parent 94e34b1 commit 56eaa2a
Show file tree
Hide file tree
Showing 5 changed files with 18 additions and 12 deletions.
5 changes: 2 additions & 3 deletions internal/translator/rule.go
Original file line number Diff line number Diff line change
Expand Up @@ -316,9 +316,6 @@ func (r *Rule) RootView() *View {
}

func (r *Rule) updateExclude(n *Viewlet) {
if len(n.Exclude) == 0 {
return
}
prefix := ""
r.updateViewExclude(n, prefix)
}
Expand All @@ -327,6 +324,8 @@ func (r *Rule) updateViewExclude(n *Viewlet, prefix string) {
if n.Holder != "" {
prefix += n.Holder + "."
}
fmt.Printf("updating exclude: %v %v\n", n.Name, n.Holder)

for _, exclude := range n.View.Exclude { //Todo convert to field name
field := n.Spec.Type.ByColumn(exclude)
r.Route.Output.Exclude = append(r.Route.Output.Exclude, prefix+field.Name)
Expand Down
17 changes: 9 additions & 8 deletions internal/translator/service.go
Original file line number Diff line number Diff line change
Expand Up @@ -191,30 +191,32 @@ func (s *Service) translateReaderDSQL(ctx context.Context, resource *Resource, d
if err = root.buildView(resource.Rule, view.ModeQuery); err != nil {
return err
}
resource.Rule.updateExclude(resource.Rule.RootViewlet())
rootViewlet := resource.Rule.RootViewlet()

if err = s.updateExplicitInputType(resource, resource.Rule.RootViewlet()); err != nil {
return err
}
componentColumns := discover.Columns{Items: make(map[string]view.Columns)}
if err = s.detectColumns(resource, componentColumns); err != nil {
return err
}

s.detectComponentViewType(componentColumns, resource)
rootViewlet := resource.Rule.RootViewlet()

if err = s.updateOutputParameters(resource, rootViewlet); err != nil {
return err
}
if err = s.updateExplicitOutputType(resource, resource.Rule.RootViewlet(), resource.OutputState.Parameters()); err != nil {
return err
}
if viewParameter := resource.OutputState.Parameters().LookupByLocation(state.KindOutput, "view"); viewParameter != nil && !viewParameter.IsAnonymous() {
rootViewlet.Holder = viewParameter.Name
}
resource.Rule.updateExclude(rootViewlet)

if err = resource.Rule.Viewlets.Each(func(viewlet *Viewlet) error {
return s.adjustView(viewlet, resource, view.ModeQuery)
}); err != nil {
return err
}

if err = s.persistRouterRule(ctx, resource, service.TypeReader); err != nil {
return err
}
Expand Down Expand Up @@ -369,9 +371,7 @@ func extractTypeNameWithPackage(outputName string) (string, string) {
}

func (s *Service) adjustView(viewlet *Viewlet, resource *Resource, mode view.Mode) error {
if mode == view.ModeQuery {
resource.Rule.updateExclude(viewlet)
}

viewlet.applyOutputShorthands()
if viewlet.IsMetaView() {
return nil
Expand Down Expand Up @@ -415,6 +415,7 @@ func (s *Service) adjustView(viewlet *Viewlet, resource *Resource, mode view.Mod
}
resource.AppendTypeDefinition(viewlet.TypeDefinition)
}

return nil
}

Expand Down
3 changes: 3 additions & 0 deletions view/relation.go
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,9 @@ func (r *Relation) inheritType() {
if r.Of.Schema != nil && r.Of.Schema.Type() != nil {
return
}
if r.Of.Schema == nil {
r.Of.Schema = &state.Schema{}
}
r.Of.Schema.InheritType(r.holderField.Type)
}

Expand Down
4 changes: 4 additions & 0 deletions view/state/parameter.go
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,10 @@ func (p *Parameter) SetTypeNameTag() {
p.Tag += " " + xreflect.TagTypeName + `:"` + schema.Name + `"`
}

func (p *Parameter) IsAnonymous() bool {
return strings.Contains(p.Tag, "anonymous:")
}

func (p *Parameter) IsCacheable() bool {
if p.Cacheable == nil {
return p.In.Kind != KindState
Expand Down
1 change: 0 additions & 1 deletion view/state/schema.go
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,6 @@ func (s *Schema) SetType(rType reflect.Type) {
s.Name = compType.Name()
}
}

if s.Cardinality == "" {
s.Cardinality = One
}
Expand Down

0 comments on commit 56eaa2a

Please sign in to comment.