github.com/chnsz/golangsdk@v0.0.0-20240506093406-85a3fbfa605b/openstack/vpn/v5/connections/requests.go (about)

     1  package connections
     2  
     3  import (
     4  	"github.com/chnsz/golangsdk"
     5  	"github.com/chnsz/golangsdk/pagination"
     6  )
     7  
     8  type ListOpts struct {
     9  	Limit  int    `q:"limit"`
    10  	Marker string `q:"marker"`
    11  }
    12  
    13  func List(c *golangsdk.ServiceClient, opts ListOpts) ([]Connections, error) {
    14  	url := listURL(c)
    15  	query, err := golangsdk.BuildQueryString(opts)
    16  	if err != nil {
    17  		return nil, err
    18  	}
    19  	url += query.String()
    20  
    21  	pages, err := pagination.NewPager(c, url, func(r pagination.PageResult) pagination.Page {
    22  		p := ConnectionsPage{pagination.MarkerPageBase{PageResult: r}}
    23  		p.MarkerPageBase.Owner = p
    24  		return p
    25  	}).AllPages()
    26  
    27  	if err != nil {
    28  		return nil, err
    29  	}
    30  	return extractConnections(pages)
    31  }