github.com/ravendb/ravendb-go-client@v0.0.0-20240229102137-4474ee7aa0fa/json_extensions.go (about)

     1  package ravendb
     2  
     3  func jsonExtensionsWriteIndexQuery(conventions *DocumentConventions, query *IndexQuery) map[string]interface{} {
     4  	res := map[string]interface{}{}
     5  	res["Query"] = query.query
     6  	if query.pageSize > 0 {
     7  		res["PageSize"] = query.pageSize
     8  	}
     9  
    10  	if query.waitForNonStaleResults {
    11  		res["WaitForNonStaleResults"] = query.waitForNonStaleResults
    12  	}
    13  
    14  	if query.start > 0 {
    15  		res["Start"] = query.start
    16  	}
    17  
    18  	if query.waitForNonStaleResultsTimeout != 0 {
    19  		s := durationToTimeSpan(query.waitForNonStaleResultsTimeout)
    20  		res["WaitForNonStaleResultsTimeout"] = s
    21  	}
    22  
    23  	if query.disableCaching {
    24  		res["DisableCaching"] = query.disableCaching
    25  	}
    26  
    27  	if query.skipDuplicateChecking {
    28  		res["SkipDuplicateChecking"] = query.skipDuplicateChecking
    29  	}
    30  	params := query.queryParameters
    31  	if params != nil {
    32  		res["QueryParameters"] = convertEntityToJSON(params, nil)
    33  	} else {
    34  		res["QueryParameters"] = nil
    35  	}
    36  	return res
    37  }
    38  
    39  func tryGetConflict(metadata map[string]interface{}) bool {
    40  	v, ok := metadata[MetadataConflict]
    41  	if !ok {
    42  		return false
    43  	}
    44  	b, ok := v.(bool)
    45  	if !ok {
    46  		return false
    47  	}
    48  	return b
    49  }