package testlocaldefinedenumasheadervalue /** * Generated by API Builder - https://www.apibuilder.io * Service version: 0.0.1 * User agent: apibuilder app.apibuilder.io/bml/test-local-defined-enum-as-header-value/0.0.1/go_1_5_client */ import ( "bytes" "encoding/json" "errors" "fmt" "html" "io" "net/http" "net/url" "strconv" "strings" ) const UserAgent = "apibuilder app.apibuilder.io/bml/test-local-defined-enum-as-header-value/0.0.1/go_1_5_client" const Version = "0.0.1" const VersionMajor = 0 type Client struct { HttpClient *http.Client Username string Password string BaseUrl string Headers http.Header } /** * An enumeration of allowed locales */ type Locale string const ( LocaleEnUS Locale = "en-US" // English language United States dialect LocaleEnGB = "en-GB" // English language Great Britain dialect LocaleUNDEFINED = "UNDEFINED" ) func LocaleFromString(value string) Locale { switch strings.TrimSpace(strings.ToLower(value)) { case "en-us": return LocaleEnUS case "en-gb": return LocaleEnGB default: return LocaleUNDEFINED } } /** * The configuration for searching one or more */ type Context struct { Id string `json:"id"` } func ContextFromMap(data interface{}) Context { b, err := json.Marshal(data) if err == nil { return ContextFromJson(bytes.NewReader(b)) } else { panic(err) } } func ContextFromJson(bytes io.Reader) Context { var context Context json.NewDecoder(bytes).Decode(&context) return context } type ContextsGetByIdParams struct { Lang Locale } type ContextsGetByIdResponse struct { StatusCode int Response *http.Response Error error Context Context } func ContextsGetById(client Client, id string, params ContextsGetByIdParams) ContextsGetByIdResponse { requestUrl := fmt.Sprintf("%s/contexts/%s", client.BaseUrl, html.EscapeString(id)) urlValues := url.Values{} if "" != params.Lang { urlValues.Add("lang", string(params.Lang)) } encodedValues := urlValues.Encode() if encodedValues != "" { requestUrl += "?" + encodedValues } request, err := buildRequest(client, "GET", requestUrl) if err != nil { return ContextsGetByIdResponse{Error: err} } resp, err := client.HttpClient.Do(request) if err != nil { return ContextsGetByIdResponse{Error: err} } defer resp.Body.Close() switch resp.StatusCode { case 200: return ContextsGetByIdResponse{StatusCode: resp.StatusCode, Response: resp, Context: ContextFromJson(resp.Body)} default: return ContextsGetByIdResponse{StatusCode: resp.StatusCode, Response: resp, Error: errors.New(resp.Status)} } } func buildRequest(client Client, method, urlStr string) (*http.Request, error) { request, err := http.NewRequest(method, urlStr, nil) if err != nil { return nil, err } request.Header.Add("User-Agent", UserAgent) request.Header.Add("X-Apidoc-Version", Version) request.Header.Add("X-Apidoc-Version-Major", strconv.Itoa(VersionMajor)) if client.Headers != nil { for key, values := range client.Headers { for _, value := range values { request.Header.Add(key, value) } } } if client.Username != "" { request.SetBasicAuth(client.Username, client.Password) } return request, nil }