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, &params)
    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, &params)
    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  }