github.com/johnnyeven/libtools@v0.0.0-20191126065708-61829c1adf46/courier/client/gen/common/utils.go (about)

     1  package common
     2  
     3  import (
     4  	"regexp"
     5  	"strings"
     6  
     7  	"github.com/johnnyeven/libtools/codegen"
     8  )
     9  
    10  func RequestOf(id string) string {
    11  	return id + "Request"
    12  }
    13  
    14  func ResponseOf(id string) string {
    15  	return id + "Response"
    16  }
    17  
    18  func PathFromSwaggerPath(str string) string {
    19  	r := regexp.MustCompile(`/\{([^/\\}]+)\}`)
    20  	result := r.ReplaceAllString(str, "/:$1")
    21  	return result
    22  }
    23  
    24  func RefName(str string) string {
    25  	parts := strings.Split(str, "/")
    26  	return parts[len(parts)-1]
    27  }
    28  
    29  func BasicType(schemaType string, format string, importer *codegen.Importer) string {
    30  	switch format {
    31  	case "binary":
    32  		return importer.Use("mime/multipart.FileHeader")
    33  	case "byte", "int", "int8", "int16", "int32", "int64", "rune", "uint", "uint8", "uint16", "uint32", "uint64", "uintptr", "float32", "float64":
    34  		return format
    35  	case "float":
    36  		return "float32"
    37  	case "double":
    38  		return "float64"
    39  	default:
    40  		switch schemaType {
    41  		case "boolean":
    42  			return "bool"
    43  		default:
    44  			return "string"
    45  		}
    46  	}
    47  }