github.com/s7techlab/cckit@v0.10.5/gateway/protoc-gen-cc-gateway/generator/opts.go (about) 1 package generator 2 3 import ( 4 "strings" 5 ) 6 7 const ( 8 ParamPaths = `paths` 9 ParamPathsSourceRelative = `source_relative` 10 ParamEmbedSwagger = `embed_swagger` 11 ParamChaincodeMethodServicePrefix = `service_name_method_prefix` 12 ParamServiceChaincodeResolver = `service_resolver` 13 ) 14 15 // Opts by default all opts are disabled 16 type Opts struct { 17 PathsSourceRelative bool 18 EmbedSwagger bool // generate var with embed annotation to include generated swagger fie 19 ChaincodeMethodServicePrefix bool // add prefix with service name to chaincode methdod 20 ServiceChaincodeResolver bool 21 } 22 23 func isOptEnabled(paramValue string) bool { 24 if paramValue == `0` || paramValue == `false` { 25 return false 26 } 27 28 return true 29 } 30 31 func OptsFromParams(params string) Opts { 32 opts := Opts{} 33 for _, param := range strings.Split(params, ",") { 34 var value string 35 if i := strings.Index(param, "="); i >= 0 { 36 value = param[i+1:] 37 param = param[0:i] 38 } 39 switch param { 40 case ParamPaths: 41 switch value { 42 case ParamPathsSourceRelative: 43 opts.PathsSourceRelative = true 44 } 45 46 case ParamEmbedSwagger: 47 opts.EmbedSwagger = isOptEnabled(value) 48 49 case ParamChaincodeMethodServicePrefix: 50 opts.ChaincodeMethodServicePrefix = isOptEnabled(value) 51 52 case ParamServiceChaincodeResolver: 53 opts.ServiceChaincodeResolver = isOptEnabled(value) 54 } 55 56 } 57 58 return opts 59 }