Skip to content

Commit 4d2e7b8

Browse files
authored
feat(account/v2): support multiple captcha providers during account creation (#1626)
1 parent 58109fd commit 4d2e7b8

File tree

1 file changed

+59
-0
lines changed

1 file changed

+59
-0
lines changed

api/account/v2/account_sdk.go

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,38 @@ func NewAPI(client *scw.Client) *API {
5252
}
5353
}
5454

55+
type CaptchaProviderName string
56+
57+
const (
58+
CaptchaProviderNameUnknownName = CaptchaProviderName("unknown_name")
59+
CaptchaProviderNameRecaptchaV2 = CaptchaProviderName("recaptcha_v2")
60+
CaptchaProviderNameFriendlyCaptcha = CaptchaProviderName("friendly_captcha")
61+
CaptchaProviderNameHcaptcha = CaptchaProviderName("hcaptcha")
62+
)
63+
64+
func (enum CaptchaProviderName) String() string {
65+
if enum == "" {
66+
// return default value if empty
67+
return "unknown_name"
68+
}
69+
return string(enum)
70+
}
71+
72+
func (enum CaptchaProviderName) MarshalJSON() ([]byte, error) {
73+
return []byte(fmt.Sprintf(`"%s"`, enum)), nil
74+
}
75+
76+
func (enum *CaptchaProviderName) UnmarshalJSON(data []byte) error {
77+
tmp := ""
78+
79+
if err := json.Unmarshal(data, &tmp); err != nil {
80+
return err
81+
}
82+
83+
*enum = CaptchaProviderName(CaptchaProviderName(tmp).String())
84+
return nil
85+
}
86+
5587
type ListProjectsRequestOrderBy string
5688

5789
const (
@@ -84,6 +116,11 @@ func (enum *ListProjectsRequestOrderBy) UnmarshalJSON(data []byte) error {
84116
return nil
85117
}
86118

119+
type CaptchaProvider struct {
120+
// Name: default value: unknown_name
121+
Name CaptchaProviderName `json:"name"`
122+
}
123+
87124
// ListProjectsResponse: list projects response.
88125
type ListProjectsResponse struct {
89126
// TotalCount: total number of Projects.
@@ -313,6 +350,28 @@ func (s *API) UpdateProject(req *UpdateProjectRequest, opts ...scw.RequestOption
313350
return &resp, nil
314351
}
315352

353+
type GetCaptchaProviderRequest struct {
354+
}
355+
356+
// GetCaptchaProvider: get a Captcha provider.
357+
func (s *API) GetCaptchaProvider(req *GetCaptchaProviderRequest, opts ...scw.RequestOption) (*CaptchaProvider, error) {
358+
var err error
359+
360+
scwReq := &scw.ScalewayRequest{
361+
Method: "GET",
362+
Path: "/account/v2/captcha-provider",
363+
Headers: http.Header{},
364+
}
365+
366+
var resp CaptchaProvider
367+
368+
err = s.client.Do(scwReq, &resp, opts...)
369+
if err != nil {
370+
return nil, err
371+
}
372+
return &resp, nil
373+
}
374+
316375
// UnsafeGetTotalCount should not be used
317376
// Internal usage only
318377
func (r *ListProjectsResponse) UnsafeGetTotalCount() uint32 {

0 commit comments

Comments
 (0)