Jamie Hannaford | 4721abc | 2014-09-16 16:29:04 +0200 | [diff] [blame^] | 1 | package extensions |
| 2 | |
| 3 | import ( |
| 4 | "github.com/mitchellh/mapstructure" |
| 5 | "github.com/rackspace/gophercloud" |
| 6 | ) |
Jamie Hannaford | 1ce30f2 | 2014-09-16 11:23:34 +0200 | [diff] [blame] | 7 | |
| 8 | type Extension struct { |
| 9 | Updated string `json:"updated"` |
| 10 | Name string `json:"name"` |
| 11 | Links []interface{} `json:"links"` |
| 12 | Namespace string `json:"namespace"` |
| 13 | Alias string `json:"alias"` |
| 14 | Description string `json:"description"` |
| 15 | } |
Jamie Hannaford | 4721abc | 2014-09-16 16:29:04 +0200 | [diff] [blame^] | 16 | |
| 17 | func ExtractExtensions(page gophercloud.Page) ([]Extension, error) { |
| 18 | var resp struct { |
| 19 | Extensions []Extension `mapstructure:"extensions"` |
| 20 | } |
| 21 | |
| 22 | err := mapstructure.Decode(page.(gophercloud.LinkedPage).Body, &resp) |
| 23 | if err != nil { |
| 24 | return nil, err |
| 25 | } |
| 26 | |
| 27 | return resp.Extensions, nil |
| 28 | } |