github.com/chnsz/golangsdk@v0.0.0-20240506093406-85a3fbfa605b/openstack/swr/v2/domains/results.go (about) 1 package domains 2 3 import ( 4 "github.com/chnsz/golangsdk" 5 "github.com/chnsz/golangsdk/pagination" 6 ) 7 8 type CreateResult struct { 9 golangsdk.ErrResult 10 } 11 12 type GetResult struct { 13 golangsdk.Result 14 } 15 16 type AccessDomain struct { 17 Organization string `json:"namespace"` 18 Repository string `json:"repository"` 19 // Name 20 AccessDomain string `json:"access_domain"` 21 Permit string `json:"permit"` 22 Deadline string `json:"deadline"` 23 Description string `json:"description"` 24 CreatorID string `json:"creator_id"` 25 CreatorName string `json:"creator_name"` 26 Created string `json:"created"` 27 Updated string `json:"updated"` 28 // Status. `true`: valid `false`: expired 29 Status bool `json:"status"` 30 } 31 32 func (r GetResult) Extract() (*AccessDomain, error) { 33 // existance check 34 var existingDomain struct { 35 Exist bool `json:"exist"` 36 } 37 if err := r.ExtractIntoStructPtr(&existingDomain, ""); err != nil { 38 return nil, err 39 } 40 if !existingDomain.Exist { 41 err404 := golangsdk.ErrDefault404{} 42 err404.DefaultErrString = "domain does not exist" 43 return nil, err404 44 } 45 46 // actual extract 47 domain := new(AccessDomain) 48 if err := r.ExtractIntoStructPtr(domain, ""); err != nil { 49 return nil, err 50 } 51 52 return domain, nil 53 } 54 55 type DeleteResult struct { 56 golangsdk.ErrResult 57 } 58 59 type UpdateResult struct { 60 golangsdk.ErrResult 61 } 62 63 type AccessDomainPage struct { 64 pagination.SinglePageBase 65 } 66 67 func ExtractAccessDomains(p pagination.Page) ([]AccessDomain, error) { 68 var domains []AccessDomain 69 err := p.(AccessDomainPage).ExtractIntoSlicePtr(&domains, "") 70 return domains, err 71 }