github.com/aacfactory/fns-contrib/databases/sql@v1.2.84/dac/tree.go (about)

     1  package dac
     2  
     3  import (
     4  	"github.com/aacfactory/errors"
     5  	"github.com/aacfactory/fns/commons/container/trees"
     6  	"github.com/aacfactory/fns/context"
     7  )
     8  
     9  func Tree[T Table](ctx context.Context, options ...QueryOption) (entry T, err error) {
    10  	entries, entriesErr := Trees[T](ctx, options...)
    11  	if entriesErr != nil {
    12  		err = entriesErr
    13  		return
    14  	}
    15  	if len(entries) > 0 {
    16  		entry = entries[0]
    17  	}
    18  	return
    19  }
    20  
    21  func Trees[T Table](ctx context.Context, options ...QueryOption) (entries []T, err error) {
    22  	entries, err = Query[T](ctx, 0, 0, options...)
    23  	if err != nil {
    24  		err = errors.Warning("sql: tree failed").WithCause(err)
    25  		return
    26  	}
    27  	entries, err = trees.ConvertListToTree[T](entries)
    28  	if err != nil {
    29  		err = errors.Warning("sql: tree failed").WithCause(err)
    30  		return
    31  	}
    32  	return
    33  }