package nf import ( "fmt" "strings" ) func verifyHandlers(path string, handlers ...HandlerFunc) { if len(handlers) == 0 { panic(fmt.Sprintf("missing handler in route: %s", path)) } for _, handler := range handlers { if handler == nil { panic(fmt.Sprintf("nil handler found in route: %s", path)) } } } // parseVendorSpecificContentType check if content type is vendor specific and // if it is parsable to any known types. If it's not vendor specific then returns // the original content type. func parseVendorSpecificContentType(cType string) string { plusIndex := strings.Index(cType, "+") if plusIndex == -1 { return cType } var parsableType string if semiColonIndex := strings.Index(cType, ";"); semiColonIndex == -1 { parsableType = cType[plusIndex+1:] } else if plusIndex < semiColonIndex { parsableType = cType[plusIndex+1 : semiColonIndex] } else { return cType[:semiColonIndex] } slashIndex := strings.Index(cType, "/") if slashIndex == -1 { return cType } return cType[0:slashIndex+1] + parsableType }