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

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