Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

User agent prefix #490

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
1 change: 1 addition & 0 deletions CONTRIBUTORS
Expand Up @@ -43,6 +43,7 @@ Glenn Lewis <gmlewis@google.com>
Ivan Krasin <krasin@golang.org>
Jason Hall <jasonhall@google.com>
Johan Euphrosine <proppy@google.com>
Ken Egozi <kenegozi@google.com>
Kostik Shtoyk <kostik@google.com>
Kunpei Sakai <namusyaka@gmail.com>
Matthew Dolan <dolan@lightstep.com>
Expand Down
5 changes: 3 additions & 2 deletions google-api-go-generator/gen.go
Expand Up @@ -768,14 +768,15 @@ func (a *API) GenerateCode() ([]byte, error) {
pn(" client *http.Client")
pn(" BasePath string // API endpoint base URL")
pn(" UserAgent string // optional additional User-Agent fragment")
pn(" UserAgentPrefix string // optional User-Agent prefix fragment")

for _, res := range a.doc.Resources {
pn("\n\t%s\t*%s", resourceGoField(res, nil), resourceGoType(res))
}
pn("}")
pn("\nfunc (s *%s) userAgent() string {", service)
pn(` if s.UserAgent == "" { return googleapi.UserAgent }`)
pn(` return googleapi.UserAgent + " " + s.UserAgent`)
pn(` if s.UserAgent == "" && s.UserAgentPrefix == "" { return googleapi.UserAgent }`)
pn(` return strings.Trim(s.UserAgentPrefix + " " + googleapi.UserAgent + " " + s.UserAgent)`)
pn("}\n")

for _, res := range a.doc.Resources {
Expand Down
36 changes: 22 additions & 14 deletions google-api-go-generator/gen_test.go
Expand Up @@ -100,9 +100,11 @@ func TestScope(t *testing.T) {
},
}
for _, test := range tests {
if got := scopeIdentifier(disco.Scope{ID: test[0]}); got != test[1] {
t.Errorf("scopeIdentifier(%q) got %q, want %q", test[0], got, test[1])
}
t.Run(test[1], func(t *testing.T) {
if got := scopeIdentifier(disco.Scope{ID: test[0]}); got != test[1] {
t.Errorf("scopeIdentifier(%q) got %q, want %q", test[0], got, test[1])
}
})
}
}

Expand Down Expand Up @@ -168,9 +170,11 @@ func TestDepunct(t *testing.T) {
},
}
for _, test := range tests {
if got := depunct(test.in, test.needCap); got != test.want {
t.Errorf("depunct(%q,%v) = %q; want %q", test.in, test.needCap, got, test.want)
}
t.Run(test.in, func(t *testing.T) {
if got := depunct(test.in, test.needCap); got != test.want {
t.Errorf("depunct(%q,%v) = %q; want %q", test.in, test.needCap, got, test.want)
}
})
}
}

Expand All @@ -192,9 +196,11 @@ func TestRenameVersion(t *testing.T) {
},
}
for _, test := range tests {
if got := renameVersion(test.version); got != test.want {
t.Errorf("renameVersion(%q) = %q; want %q", test.version, got, test.want)
}
t.Run(test.version, func(t *testing.T) {
if got := renameVersion(test.version); got != test.want {
t.Errorf("renameVersion(%q) = %q; want %q", test.version, got, test.want)
}
})
}
}

Expand All @@ -206,11 +212,13 @@ func TestSupportsPaging(t *testing.T) {
api.PopulateSchemas()
res := api.doc.Resources[0]
for _, meth := range api.resourceMethods(res) {
_, _, got := meth.supportsPaging()
want := strings.HasPrefix(meth.m.Name, "yes")
if got != want {
t.Errorf("method %s supports paging: got %t, want %t", meth.m.Name, got, want)
}
t.Run(meth.m.Name, func(t *testing.T) {
_, _, got := meth.supportsPaging()
want := strings.HasPrefix(meth.m.Name, "yes")
if got != want {
t.Errorf("method %s supports paging: got %t, want %t", meth.m.Name, got, want)
}
})
}
}

Expand Down
11 changes: 6 additions & 5 deletions google-api-go-generator/testdata/any.want
Expand Up @@ -119,18 +119,19 @@ func New(client *http.Client) (*Service, error) {
}

type Service struct {
client *http.Client
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
client *http.Client
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
UserAgentPrefix string // optional User-Agent prefix fragment

Projects *ProjectsService
}

func (s *Service) userAgent() string {
if s.UserAgent == "" {
if s.UserAgent == "" && s.UserAgentPrefix == "" {
return googleapi.UserAgent
}
return googleapi.UserAgent + " " + s.UserAgent
return strings.Trim(s.UserAgentPrefix + " " + googleapi.UserAgent + " " + s.UserAgent)
}

func NewProjectsService(s *Service) *ProjectsService {
Expand Down
11 changes: 6 additions & 5 deletions google-api-go-generator/testdata/arrayofarray-1.want
Expand Up @@ -105,16 +105,17 @@ func New(client *http.Client) (*Service, error) {
}

type Service struct {
client *http.Client
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
client *http.Client
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
UserAgentPrefix string // optional User-Agent prefix fragment
}

func (s *Service) userAgent() string {
if s.UserAgent == "" {
if s.UserAgent == "" && s.UserAgentPrefix == "" {
return googleapi.UserAgent
}
return googleapi.UserAgent + " " + s.UserAgent
return strings.Trim(s.UserAgentPrefix + " " + googleapi.UserAgent + " " + s.UserAgent)
}

// GeoJsonMultiPolygon: Multi Polygon
Expand Down
11 changes: 6 additions & 5 deletions google-api-go-generator/testdata/arrayofenum.want
Expand Up @@ -105,16 +105,17 @@ func New(client *http.Client) (*Service, error) {
}

type Service struct {
client *http.Client
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
client *http.Client
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
UserAgentPrefix string // optional User-Agent prefix fragment
}

func (s *Service) userAgent() string {
if s.UserAgent == "" {
if s.UserAgent == "" && s.UserAgentPrefix == "" {
return googleapi.UserAgent
}
return googleapi.UserAgent + " " + s.UserAgent
return strings.Trim(s.UserAgentPrefix + " " + googleapi.UserAgent + " " + s.UserAgent)
}

// Container: Represents a Google Tag Manager Container.
Expand Down
11 changes: 6 additions & 5 deletions google-api-go-generator/testdata/arrayofmapofobjects.want
Expand Up @@ -105,16 +105,17 @@ func New(client *http.Client) (*Service, error) {
}

type Service struct {
client *http.Client
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
client *http.Client
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
UserAgentPrefix string // optional User-Agent prefix fragment
}

func (s *Service) userAgent() string {
if s.UserAgent == "" {
if s.UserAgent == "" && s.UserAgentPrefix == "" {
return googleapi.UserAgent
}
return googleapi.UserAgent + " " + s.UserAgent
return strings.Trim(s.UserAgentPrefix + " " + googleapi.UserAgent + " " + s.UserAgent)
}

type Analyze struct {
Expand Down
11 changes: 6 additions & 5 deletions google-api-go-generator/testdata/arrayofmapofstrings.want
Expand Up @@ -105,16 +105,17 @@ func New(client *http.Client) (*Service, error) {
}

type Service struct {
client *http.Client
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
client *http.Client
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
UserAgentPrefix string // optional User-Agent prefix fragment
}

func (s *Service) userAgent() string {
if s.UserAgent == "" {
if s.UserAgent == "" && s.UserAgentPrefix == "" {
return googleapi.UserAgent
}
return googleapi.UserAgent + " " + s.UserAgent
return strings.Trim(s.UserAgentPrefix + " " + googleapi.UserAgent + " " + s.UserAgent)
}

type Analyze struct {
Expand Down
11 changes: 6 additions & 5 deletions google-api-go-generator/testdata/blogger-3.want
Expand Up @@ -134,9 +134,10 @@ func New(client *http.Client) (*Service, error) {
}

type Service struct {
client *http.Client
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
client *http.Client
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
UserAgentPrefix string // optional User-Agent prefix fragment

BlogUserInfos *BlogUserInfosService

Expand All @@ -156,10 +157,10 @@ type Service struct {
}

func (s *Service) userAgent() string {
if s.UserAgent == "" {
if s.UserAgent == "" && s.UserAgentPrefix == "" {
return googleapi.UserAgent
}
return googleapi.UserAgent + " " + s.UserAgent
return strings.Trim(s.UserAgentPrefix + " " + googleapi.UserAgent + " " + s.UserAgent)
}

func NewBlogUserInfosService(s *Service) *BlogUserInfosService {
Expand Down
11 changes: 6 additions & 5 deletions google-api-go-generator/testdata/floats.want
Expand Up @@ -107,16 +107,17 @@ func New(client *http.Client) (*Service, error) {
}

type Service struct {
client *http.Client
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
client *http.Client
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
UserAgentPrefix string // optional User-Agent prefix fragment
}

func (s *Service) userAgent() string {
if s.UserAgent == "" {
if s.UserAgent == "" && s.UserAgentPrefix == "" {
return googleapi.UserAgent
}
return googleapi.UserAgent + " " + s.UserAgent
return strings.Trim(s.UserAgentPrefix + " " + googleapi.UserAgent + " " + s.UserAgent)
}

// Utilization: CPU utilization policy.
Expand Down
11 changes: 6 additions & 5 deletions google-api-go-generator/testdata/getwithoutbody.want
Expand Up @@ -106,18 +106,19 @@ func New(client *http.Client) (*Service, error) {
}

type Service struct {
client *http.Client
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
client *http.Client
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
UserAgentPrefix string // optional User-Agent prefix fragment

MetricDescriptors *MetricDescriptorsService
}

func (s *Service) userAgent() string {
if s.UserAgent == "" {
if s.UserAgent == "" && s.UserAgentPrefix == "" {
return googleapi.UserAgent
}
return googleapi.UserAgent + " " + s.UserAgent
return strings.Trim(s.UserAgentPrefix + " " + googleapi.UserAgent + " " + s.UserAgent)
}

func NewMetricDescriptorsService(s *Service) *MetricDescriptorsService {
Expand Down
11 changes: 6 additions & 5 deletions google-api-go-generator/testdata/http-body.want
Expand Up @@ -119,18 +119,19 @@ func New(client *http.Client) (*Service, error) {
}

type Service struct {
client *http.Client
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
client *http.Client
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
UserAgentPrefix string // optional User-Agent prefix fragment

Projects *ProjectsService
}

func (s *Service) userAgent() string {
if s.UserAgent == "" {
if s.UserAgent == "" && s.UserAgentPrefix == "" {
return googleapi.UserAgent
}
return googleapi.UserAgent + " " + s.UserAgent
return strings.Trim(s.UserAgentPrefix + " " + googleapi.UserAgent + " " + s.UserAgent)
}

func NewProjectsService(s *Service) *ProjectsService {
Expand Down
11 changes: 6 additions & 5 deletions google-api-go-generator/testdata/json-body.want
Expand Up @@ -119,18 +119,19 @@ func New(client *http.Client) (*Service, error) {
}

type Service struct {
client *http.Client
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
client *http.Client
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
UserAgentPrefix string // optional User-Agent prefix fragment

Projects *ProjectsService
}

func (s *Service) userAgent() string {
if s.UserAgent == "" {
if s.UserAgent == "" && s.UserAgentPrefix == "" {
return googleapi.UserAgent
}
return googleapi.UserAgent + " " + s.UserAgent
return strings.Trim(s.UserAgentPrefix + " " + googleapi.UserAgent + " " + s.UserAgent)
}

func NewProjectsService(s *Service) *ProjectsService {
Expand Down
11 changes: 6 additions & 5 deletions google-api-go-generator/testdata/mapofany.want
Expand Up @@ -105,16 +105,17 @@ func New(client *http.Client) (*Service, error) {
}

type Service struct {
client *http.Client
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
client *http.Client
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
UserAgentPrefix string // optional User-Agent prefix fragment
}

func (s *Service) userAgent() string {
if s.UserAgent == "" {
if s.UserAgent == "" && s.UserAgentPrefix == "" {
return googleapi.UserAgent
}
return googleapi.UserAgent + " " + s.UserAgent
return strings.Trim(s.UserAgentPrefix + " " + googleapi.UserAgent + " " + s.UserAgent)
}

type JsonValue interface{}
Expand Down
11 changes: 6 additions & 5 deletions google-api-go-generator/testdata/mapofarrayofobjects.want
Expand Up @@ -106,18 +106,19 @@ func New(client *http.Client) (*Service, error) {
}

type Service struct {
client *http.Client
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
client *http.Client
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
UserAgentPrefix string // optional User-Agent prefix fragment

Atlas *AtlasService
}

func (s *Service) userAgent() string {
if s.UserAgent == "" {
if s.UserAgent == "" && s.UserAgentPrefix == "" {
return googleapi.UserAgent
}
return googleapi.UserAgent + " " + s.UserAgent
return strings.Trim(s.UserAgentPrefix + " " + googleapi.UserAgent + " " + s.UserAgent)
}

func NewAtlasService(s *Service) *AtlasService {
Expand Down