package workos
import (
"context"
"fmt"
"net/url"
)
type FeatureFlagService struct {
client *Client
}
type FeatureFlagsListParams struct {
PaginationParams
}
func (s *FeatureFlagService ) List (ctx context .Context , params *FeatureFlagsListParams , opts ...RequestOption ) *Iterator [Flag ] {
return newIterator [Flag ](ctx , s .client , "GET" , "/feature-flags" , params , "after" , "data" , opts , map [string ]string {"limit" : "10" , "order" : "desc" })
}
func (s *FeatureFlagService ) Get (ctx context .Context , slug string , opts ...RequestOption ) (*Flag , error ) {
var result Flag
_ , err := s .client .request (ctx , "GET" , fmt .Sprintf ("/feature-flags/%s" , url .PathEscape (slug )), nil , nil , &result , opts )
if err != nil {
return nil , err
}
return &result , nil
}
func (s *FeatureFlagService ) Disable (ctx context .Context , slug string , opts ...RequestOption ) (*FeatureFlag , error ) {
var result FeatureFlag
_ , err := s .client .request (ctx , "PUT" , fmt .Sprintf ("/feature-flags/%s/disable" , url .PathEscape (slug )), nil , nil , &result , opts )
if err != nil {
return nil , err
}
return &result , nil
}
func (s *FeatureFlagService ) Enable (ctx context .Context , slug string , opts ...RequestOption ) (*FeatureFlag , error ) {
var result FeatureFlag
_ , err := s .client .request (ctx , "PUT" , fmt .Sprintf ("/feature-flags/%s/enable" , url .PathEscape (slug )), nil , nil , &result , opts )
if err != nil {
return nil , err
}
return &result , nil
}
func (s *FeatureFlagService ) AddFlagTarget (ctx context .Context , slug string , resourceID string , opts ...RequestOption ) error {
_ , err := s .client .request (ctx , "POST" , fmt .Sprintf ("/feature-flags/%s/targets/%s" , url .PathEscape (slug ), url .PathEscape (resourceID )), nil , nil , nil , opts )
return err
}
func (s *FeatureFlagService ) RemoveFlagTarget (ctx context .Context , slug string , resourceID string , opts ...RequestOption ) error {
_ , err := s .client .request (ctx , "DELETE" , fmt .Sprintf ("/feature-flags/%s/targets/%s" , url .PathEscape (slug ), url .PathEscape (resourceID )), nil , nil , nil , opts )
return err
}
type FeatureFlagsListOrganizationFeatureFlagsParams struct {
PaginationParams
}
func (s *FeatureFlagService ) ListOrganizationFeatureFlags (ctx context .Context , organizationID string , params *FeatureFlagsListOrganizationFeatureFlagsParams , opts ...RequestOption ) *Iterator [Flag ] {
return newIterator [Flag ](ctx , s .client , "GET" , fmt .Sprintf ("/organizations/%s/feature-flags" , url .PathEscape (organizationID )), params , "after" , "data" , opts , map [string ]string {"limit" : "10" , "order" : "desc" })
}
type FeatureFlagsListUserFeatureFlagsParams struct {
PaginationParams
}
func (s *FeatureFlagService ) ListUserFeatureFlags (ctx context .Context , userID string , params *FeatureFlagsListUserFeatureFlagsParams , opts ...RequestOption ) *Iterator [Flag ] {
return newIterator [Flag ](ctx , s .client , "GET" , fmt .Sprintf ("/user_management/users/%s/feature-flags" , url .PathEscape (userID )), params , "after" , "data" , opts , map [string ]string {"limit" : "10" , "order" : "desc" })
}
The pages are generated with Golds v0.8.2 . (GOOS=linux GOARCH=amd64)
Golds is a Go 101 project developed by Tapir Liu .
PR and bug reports are welcome and can be submitted to the issue list .
Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds .