github.com/altipla-consulting/ravendb-go-client@v0.1.3/group_by_key_token.go (about)

     1  package ravendb
     2  
     3  import "strings"
     4  
     5  var _ queryToken = &groupByKeyToken{}
     6  
     7  type groupByKeyToken struct {
     8  	fieldName     string
     9  	projectedName string
    10  }
    11  
    12  func newGroupByKeyToken(fieldName string, projectedName string) *groupByKeyToken {
    13  	return &groupByKeyToken{
    14  		fieldName:     fieldName,
    15  		projectedName: projectedName,
    16  	}
    17  }
    18  
    19  func createGroupByKeyToken(fieldName string, projectedName string) *groupByKeyToken {
    20  	return newGroupByKeyToken(fieldName, projectedName)
    21  }
    22  
    23  func (t *groupByKeyToken) writeTo(writer *strings.Builder) error {
    24  	writeQueryTokenField(writer, firstNonEmptyString(t.fieldName, "key()"))
    25  
    26  	if t.projectedName == "" || t.projectedName == t.fieldName {
    27  		return nil
    28  	}
    29  
    30  	writer.WriteString(" as ")
    31  	writer.WriteString(t.projectedName)
    32  
    33  	return nil
    34  }