func toVars()

in pkg/adapter/route.go [64:97]


func toVars(r *mem.Route) [][]*string {
	result := make([][]*string, 0)
	for _, m := range r.Match {
		// args
		matchArgs := m["args"]
		switch reflect.TypeOf(matchArgs).Kind() {
		case reflect.Slice:
			s := reflect.ValueOf(matchArgs)
			if slice, ok := s.Interface().([]map[string]map[string]string); ok {
				for _, s := range slice {
					tmp := make([]*string, 0)
					for p, value := range s {
						tmp = append(tmp, &p)
						for k, v := range value {
							switch k {
							case "greater":
								greater := ">"
								tmp = append(tmp, &greater)
								tmp = append(tmp, &v)
							case "exact":
								equals := "=="
								tmp = append(tmp, &equals)
								tmp = append(tmp, &v)
							}
						}
						result = append(result, tmp)
					}

				}
			}
		}
	}
	return result
}