github.com/free5gc/openapi@v1.0.8/media_type.go (about) 1 package openapi 2 3 import "regexp" 4 5 // MediaKind - represents the sets of media type 6 type MediaKind int 7 8 // MediaKind enums 9 const ( 10 MediaKindUnsupported MediaKind = iota 11 MediaKindPlaintext MediaKind = iota 12 MediaKindJSON 13 MediaKindXML 14 MediaKindMultipartRelated 15 ) 16 17 var ( 18 jsonRegex = regexp.MustCompile(`(?i:(?:application|text)/(?:[a-zA-Z0-9./-]+\+)?json)`) 19 xmlRegex = regexp.MustCompile(`(?i:(?:application|text)/xml)`) 20 multipartRelatedRegex = regexp.MustCompile("(?i:multipart/related)") 21 ) 22 23 // KindOfMediaType - returns Mediakind of the media type 24 func KindOfMediaType(mediaType string) MediaKind { 25 if jsonRegex.MatchString(mediaType) { 26 return MediaKindJSON 27 } else if xmlRegex.MatchString(mediaType) { 28 return MediaKindXML 29 } else if multipartRelatedRegex.MatchString(mediaType) { 30 return MediaKindMultipartRelated 31 } 32 return MediaKindUnsupported 33 }