github.com/clerkinc/clerk-sdk-go@v1.49.1/clerk/phone_numbers.go (about) 1 package clerk 2 3 import "fmt" 4 5 type PhoneNumbersService service 6 7 type PhoneNumber struct { 8 ID string `json:"id"` 9 Object string `json:"object"` 10 PhoneNumber string `json:"phone_number"` 11 ReservedForSecondFactor bool `json:"reserved_for_second_factor"` 12 DefaultSecondFactor bool `json:"default_second_factor"` 13 Reserved bool `json:"reserved"` 14 Verification *Verification `json:"verification"` 15 LinkedTo []IdentificationLink `json:"linked_to"` 16 BackupCodes []string `json:"backup_codes"` 17 } 18 19 type CreatePhoneNumberParams struct { 20 UserID string `json:"user_id"` 21 PhoneNumber string `json:"phone_number"` 22 Verified *bool `json:"verified"` 23 Primary *bool `json:"primary"` 24 } 25 26 type UpdatePhoneNumberParams struct { 27 Verified *bool `json:"verified"` 28 Primary *bool `json:"primary"` 29 } 30 31 func (s *PhoneNumbersService) Create(params CreatePhoneNumberParams) (*PhoneNumber, error) { 32 req, _ := s.client.NewRequest("POST", PhoneNumbersURL, ¶ms) 33 34 var response PhoneNumber 35 _, err := s.client.Do(req, &response) 36 if err != nil { 37 return nil, err 38 } 39 return &response, nil 40 } 41 42 func (s *PhoneNumbersService) Read(phoneNumberID string) (*PhoneNumber, error) { 43 phoneNumberURL := fmt.Sprintf("%s/%s", PhoneNumbersURL, phoneNumberID) 44 req, _ := s.client.NewRequest("GET", phoneNumberURL) 45 46 var phoneNumber PhoneNumber 47 _, err := s.client.Do(req, &phoneNumber) 48 if err != nil { 49 return nil, err 50 } 51 return &phoneNumber, nil 52 } 53 54 func (s *PhoneNumbersService) Update(phoneNumberID string, params UpdatePhoneNumberParams) (*PhoneNumber, error) { 55 phoneNumberURL := fmt.Sprintf("%s/%s", PhoneNumbersURL, phoneNumberID) 56 req, _ := s.client.NewRequest("PATCH", phoneNumberURL, ¶ms) 57 58 var phoneNumber PhoneNumber 59 _, err := s.client.Do(req, &phoneNumber) 60 if err != nil { 61 return nil, err 62 } 63 return &phoneNumber, nil 64 } 65 66 func (s *PhoneNumbersService) Delete(phoneNumberID string) (*DeleteResponse, error) { 67 phoneNumberURL := fmt.Sprintf("%s/%s", PhoneNumbersURL, phoneNumberID) 68 req, _ := s.client.NewRequest("DELETE", phoneNumberURL) 69 70 var delResponse DeleteResponse 71 if _, err := s.client.Do(req, &delResponse); err != nil { 72 return nil, err 73 } 74 return &delResponse, nil 75 }