github.com/chnsz/golangsdk@v0.0.0-20240506093406-85a3fbfa605b/openstack/rds/v3/flavors/requests.go (about) 1 package flavors 2 3 import ( 4 "github.com/chnsz/golangsdk" 5 "github.com/chnsz/golangsdk/pagination" 6 ) 7 8 type DbFlavorsOpts struct { 9 Versionname string `q:"version_name"` 10 SpecCode string `q:"spec_code"` 11 } 12 13 type DbFlavorsBuilder interface { 14 ToDbFlavorsListQuery() (string, error) 15 } 16 17 func (opts DbFlavorsOpts) ToDbFlavorsListQuery() (string, error) { 18 q, err := golangsdk.BuildQueryString(opts) 19 if err != nil { 20 return "", err 21 } 22 return q.String(), err 23 } 24 25 func List(client *golangsdk.ServiceClient, opts DbFlavorsBuilder, databasename string) pagination.Pager { 26 url := listURL(client, databasename) 27 if opts != nil { 28 query, err := opts.ToDbFlavorsListQuery() 29 30 if err != nil { 31 return pagination.Pager{Err: err} 32 } 33 url += query 34 } 35 36 pageRdsList := pagination.NewPager(client, url, func(r pagination.PageResult) pagination.Page { 37 return DbFlavorsPage{pagination.SinglePageBase(r)} 38 }) 39 40 rdsheader := map[string]string{"Content-Type": "application/json"} 41 pageRdsList.Headers = rdsheader 42 return pageRdsList 43 }