flamingo.me/flamingo-commerce/v3@v3.11.0/search/interfaces/graphql/resolver.go (about)

     1  package graphql
     2  
     3  import (
     4  	"context"
     5  
     6  	"flamingo.me/flamingo-commerce/v3/search/domain"
     7  	"flamingo.me/flamingo-commerce/v3/search/interfaces/graphql/searchdto"
     8  )
     9  
    10  // CommerceSearchQueryResolver is a commerce search query resolver
    11  type CommerceSearchQueryResolver struct{}
    12  
    13  // SortOptions remaps search meta options to graphql structure
    14  func (r *CommerceSearchQueryResolver) SortOptions(ctx context.Context, searchMeta *domain.SearchMeta) ([]*searchdto.CommerceSearchSortOption, error) {
    15  	var options = make([]*searchdto.CommerceSearchSortOption, 0)
    16  	for _, option := range searchMeta.SortOptions {
    17  		if option.Asc != "" {
    18  			options = append(options, &searchdto.CommerceSearchSortOption{
    19  				Label:    option.Label + " (asc)",
    20  				Field:    option.Asc,
    21  				Selected: option.SelectedAsc,
    22  			})
    23  		}
    24  		if option.Desc != "" {
    25  			options = append(options, &searchdto.CommerceSearchSortOption{
    26  				Label:    option.Label + " (desc)",
    27  				Field:    option.Desc,
    28  				Selected: option.SelectedDesc,
    29  			})
    30  		}
    31  	}
    32  
    33  	return options, nil
    34  }