github.com/clerkinc/clerk-sdk-go@v1.49.1/clerk/domains.go (about) 1 package clerk 2 3 import ( 4 "fmt" 5 "net/http" 6 ) 7 8 type DomainsService service 9 10 type DomainListResponse struct { 11 Data []Domain `json:"data"` 12 TotalCount int `json:"total_count"` 13 } 14 15 type DomainCNameTarget struct { 16 Host string `json:"host"` 17 Value string `json:"value"` 18 } 19 20 type Domain struct { 21 Object string `json:"object"` 22 ID string `json:"id"` 23 Name string `json:"name"` 24 IsSatellite bool `json:"is_satellite"` 25 FapiURL string `json:"frontend_api_url"` 26 AccountsPortalURL *string `json:"accounts_portal_url,omitempty"` 27 ProxyURL *string `json:"proxy_url,omitempty"` 28 CNameTargets []DomainCNameTarget `json:"cname_targets,omitempty"` 29 DevelopmentOrigin string `json:"development_origin"` 30 } 31 32 type CreateDomainParams struct { 33 Name string `json:"name"` 34 IsSatellite bool `json:"is_satellite"` 35 ProxyURL *string `json:"proxy_url,omitempty"` 36 } 37 38 type UpdateDomainParams struct { 39 Name *string `json:"name,omitempty"` 40 ProxyURL *string `json:"proxy_url,omitempty"` 41 } 42 43 func (s *DomainsService) ListAll() (*DomainListResponse, error) { 44 req, _ := s.client.NewRequest(http.MethodGet, DomainsURL) 45 46 var response *DomainListResponse 47 _, err := s.client.Do(req, &response) 48 if err != nil { 49 return nil, err 50 } 51 return response, nil 52 } 53 54 func (s *DomainsService) Create( 55 params CreateDomainParams, 56 ) (*Domain, error) { 57 req, _ := s.client.NewRequest(http.MethodPost, DomainsURL, ¶ms) 58 59 var domain Domain 60 _, err := s.client.Do(req, &domain) 61 if err != nil { 62 return nil, err 63 } 64 return &domain, nil 65 } 66 67 func (s *DomainsService) Update( 68 domainID string, 69 params UpdateDomainParams, 70 ) (*Domain, error) { 71 url := fmt.Sprintf("%s/%s", DomainsURL, domainID) 72 req, _ := s.client.NewRequest(http.MethodPatch, url, ¶ms) 73 74 var domain Domain 75 _, err := s.client.Do(req, &domain) 76 if err != nil { 77 return nil, err 78 } 79 return &domain, nil 80 } 81 82 func (s *DomainsService) Delete(domainID string) (*DeleteResponse, error) { 83 url := fmt.Sprintf("%s/%s", DomainsURL, domainID) 84 req, _ := s.client.NewRequest(http.MethodDelete, url) 85 86 var delResponse DeleteResponse 87 if _, err := s.client.Do(req, &delResponse); err != nil { 88 return nil, err 89 } 90 return &delResponse, nil 91 }