Documentation ¶
Index ¶
- Constants
- Variables
- type Admin
- func (a *Admin) CreateUser(ctx context.Context, params AdminUserParams) (*AdminUser, error)
- func (a *Admin) GenerateLink(ctx context.Context, params GenerateLinkParams) (*GenerateLinkResponse, error)
- func (a *Admin) GetUser(ctx context.Context, userID string) (*AdminUser, error)
- func (a *Admin) UpdateUser(ctx context.Context, userID string, params AdminUserParams) (*AdminUser, error)
- type AdminUser
- type AdminUserParams
- type Auth
- func (a *Auth) ExchangeCode(ctx context.Context, opts ExchangeCodeOpts) (*AuthenticatedDetails, error)
- func (a *Auth) InviteUserByEmail(ctx context.Context, email string) (*User, error)
- func (a *Auth) InviteUserByEmailWithData(ctx context.Context, email string, data map[string]interface{}, ...) (*User, error)
- func (a *Auth) RefreshUser(ctx context.Context, userToken string, refreshToken string) (*AuthenticatedDetails, error)
- func (a *Auth) ResetPasswordForEmail(ctx context.Context, email string) error
- func (a *Auth) SendMagicLink(ctx context.Context, email string) error
- func (a *Auth) SignIn(ctx context.Context, credentials UserCredentials) (*AuthenticatedDetails, error)
- func (a *Auth) SignInWithProvider(opts ProviderSignInOptions) (*ProviderSignInDetails, error)
- func (a *Auth) SignOut(ctx context.Context, userToken string) error
- func (a *Auth) SignUp(ctx context.Context, credentials UserCredentials) (*User, error)
- func (a *Auth) UpdateUser(ctx context.Context, userToken string, updateData map[string]interface{}) (*User, error)
- func (a *Auth) User(ctx context.Context, userToken string) (*User, error)
- type AuthenticatedDetails
- type BucketOption
- type Channel
- type Client
- type ErrorResponse
- type ExchangeCodeOpts
- type Factor
- type FileErrorResponse
- type FileObject
- type FileResponse
- type FileSearchOptions
- type FileUploadOptions
- type FlowType
- type GenerateLinkParams
- type GenerateLinkResponse
- type Identity
- type JSONMap
- type ListFileRequest
- type Listener
- type Message
- type PKCEParams
- type ProviderSignInDetails
- type ProviderSignInOptions
- type Realtime
- type SignedUrlResponse
- type SortBy
- type Storage
- func (s *Storage) CreateBucket(ctx context.Context, option BucketOption) (*bucket, error)
- func (s *Storage) DeleteBucket(ctx context.Context, id string) (*bucketResponse, error)
- func (s *Storage) EmptyBucket(ctx context.Context, id string) (*bucketMessage, error)
- func (s *Storage) From(bucketId string) *file
- func (s *Storage) GetBucket(ctx context.Context, id string) (*bucketResponse, error)
- func (s *Storage) ListBuckets(ctx context.Context) (*[]bucketResponse, error)
- func (s *Storage) UpdateBucket(ctx context.Context, id string, option BucketOption) (*bucketMessage, error)
- type User
- type UserCredentials
Constants ¶
const ( AuthEndpoint = "auth/v1" AdminEndpoint = "auth/v1/admin" RestEndpoint = "rest/v1" StorageEndpoint = "storage/v1" RealtimeEndpoint = "realtime/v1" )
Variables ¶
var ErrNotFound = errors.New("file not found")
Functions ¶
This section is empty.
Types ¶
type Admin ¶
type Admin struct {
// contains filtered or unexported fields
}
func (*Admin) CreateUser ¶
Create a user
func (*Admin) GenerateLink ¶
func (a *Admin) GenerateLink(ctx context.Context, params GenerateLinkParams) (*GenerateLinkResponse, error)
Update a user
func (*Admin) UpdateUser ¶
func (a *Admin) UpdateUser(ctx context.Context, userID string, params AdminUserParams) (*AdminUser, error)
Update a user
type AdminUser ¶
type AdminUser struct { ID string `json:"id" db:"id"` Aud string `json:"aud" db:"aud"` Role string `json:"role" db:"role"` Email string `json:"email" db:"email"` EmailConfirmedAt *time.Time `json:"email_confirmed_at,omitempty" db:"email_confirmed_at"` InvitedAt *time.Time `json:"invited_at,omitempty" db:"invited_at"` Phone string `json:"phone" db:"phone"` PhoneConfirmedAt *time.Time `json:"phone_confirmed_at,omitempty" db:"phone_confirmed_at"` ConfirmationSentAt *time.Time `json:"confirmation_sent_at,omitempty" db:"confirmation_sent_at"` RecoverySentAt *time.Time `json:"recovery_sent_at,omitempty" db:"recovery_sent_at"` EmailChange string `json:"new_email,omitempty" db:"email_change"` EmailChangeSentAt *time.Time `json:"email_change_sent_at,omitempty" db:"email_change_sent_at"` PhoneChange string `json:"new_phone,omitempty" db:"phone_change"` PhoneChangeSentAt *time.Time `json:"phone_change_sent_at,omitempty" db:"phone_change_sent_at"` ReauthenticationSentAt *time.Time `json:"reauthentication_sent_at,omitempty" db:"reauthentication_sent_at"` LastSignInAt *time.Time `json:"last_sign_in_at,omitempty" db:"last_sign_in_at"` AppMetaData JSONMap `json:"app_metadata" db:"raw_app_meta_data"` UserMetaData JSONMap `json:"user_metadata" db:"raw_user_meta_data"` Factors []Factor `json:"factors,omitempty" has_many:"factors"` Identities []Identity `json:"identities" has_many:"identities"` CreatedAt time.Time `json:"created_at" db:"created_at"` UpdatedAt time.Time `json:"updated_at" db:"updated_at"` BannedUntil *time.Time `json:"banned_until,omitempty" db:"banned_until"` DeletedAt *time.Time `json:"deleted_at,omitempty" db:"deleted_at"` }
type AdminUserParams ¶
type AdminUserParams struct { Role string `json:"role"` Email string `json:"email"` Phone string `json:"phone"` Password *string `json:"password"` EmailConfirm bool `json:"email_confirm"` PhoneConfirm bool `json:"phone_confirm"` UserMetadata JSONMap `json:"user_metadata"` AppMetadata JSONMap `json:"app_metadata"` BanDuration string `json:"ban_duration"` }
type Auth ¶
type Auth struct {
// contains filtered or unexported fields
}
func (*Auth) ExchangeCode ¶
func (a *Auth) ExchangeCode(ctx context.Context, opts ExchangeCodeOpts) (*AuthenticatedDetails, error)
ExchangeCode takes an auth code and PCKE verifier and returns the current user if succeeded.
func (*Auth) InviteUserByEmail ¶
InviteUserByEmail sends an invite link to the given email. Returns a user.
func (*Auth) InviteUserByEmailWithData ¶
func (a *Auth) InviteUserByEmailWithData(ctx context.Context, email string, data map[string]interface{}, redirectTo string) (*User, error)
InviteUserByEmailWithOpts sends an invite link to the given email with metadata. Returns a user.
func (*Auth) RefreshUser ¶
func (a *Auth) RefreshUser(ctx context.Context, userToken string, refreshToken string) (*AuthenticatedDetails, error)
SignIn enters the user credentials and returns the current user if succeeded.
func (*Auth) ResetPasswordForEmail ¶
ResetPasswordForEmail sends a password recovery link to the given e-mail address.
func (*Auth) SendMagicLink ¶
SendMagicLink sends a link to a specific e-mail address for passwordless auth.
func (*Auth) SignIn ¶
func (a *Auth) SignIn(ctx context.Context, credentials UserCredentials) (*AuthenticatedDetails, error)
SignIn enters the user credentials and returns the current user if succeeded.
func (*Auth) SignInWithProvider ¶
func (a *Auth) SignInWithProvider(opts ProviderSignInOptions) (*ProviderSignInDetails, error)
SignInWithProvider returns a URL for signing in via OAuth
type AuthenticatedDetails ¶
type AuthenticatedDetails struct { AccessToken string `json:"access_token"` TokenType string `json:"token_type"` ExpiresIn int `json:"expires_in"` RefreshToken string `json:"refresh_token"` User User `json:"user"` ProviderToken string `json:"provider_token"` ProviderRefreshToken string `json:"provider_refresh_token"` }
type BucketOption ¶
type Channel ¶
type Channel struct { Topic string Url string Origin string Connected bool OnDisconnect func(*Channel) OnConnect func(*Channel) // contains filtered or unexported fields }
func (*Channel) RemoveCallbacksForEvent ¶
type Client ¶
type Client struct { BaseURL string Headers map[string]string HTTPClient *http.Client Admin *Admin Auth *Auth Storage *Storage Realtime *Realtime DB *postgrest.Client // contains filtered or unexported fields }
func CreateClient ¶
CreateClient creates a new Supabase client
type ErrorResponse ¶
func (*ErrorResponse) Error ¶
func (err *ErrorResponse) Error() string
type ExchangeCodeOpts ¶
type Factor ¶
type Factor struct { ID string `json:"id" db:"id"` CreatedAt time.Time `json:"created_at" db:"created_at"` UpdatedAt time.Time `json:"updated_at" db:"updated_at"` Status string `json:"status" db:"status"` FriendlyName string `json:"friendly_name,omitempty" db:"friendly_name"` FactorType string `json:"factor_type" db:"factor_type"` }
type FileErrorResponse ¶
type FileErrorResponse struct { Status string `json:"statusCode"` ShortError string `json:"error"` Message string `json:"message"` }
func (*FileErrorResponse) Error ¶
func (err *FileErrorResponse) Error() string
type FileObject ¶
type FileObject struct { Name string `json:"name"` BucketId string `json:"bucket_id"` Owner string `json:"owner"` Id string `json:"id"` UpdatedAt string `json:"updated_at"` CreatedAt string `json:"created_at"` LastAccessedAt string `json:"last_accessed_at"` Metadata interface{} `json:"metadata"` Buckets bucket `json:"buckets"` }
type FileResponse ¶
type FileSearchOptions ¶
type FileUploadOptions ¶
type GenerateLinkParams ¶
type GenerateLinkResponse ¶
type Identity ¶
type Identity struct { ID string `json:"id" db:"id"` UserID string `json:"user_id" db:"user_id"` IdentityData JSONMap `json:"identity_data,omitempty" db:"identity_data"` Provider string `json:"provider" db:"provider"` LastSignInAt *time.Time `json:"last_sign_in_at,omitempty" db:"last_sign_in_at"` CreatedAt time.Time `json:"created_at" db:"created_at"` UpdatedAt time.Time `json:"updated_at" db:"updated_at"` }
type ListFileRequest ¶
type PKCEParams ¶
adapted from https://go-review.googlesource.com/c/oauth2/+/463979/9/pkce.go#64
type ProviderSignInDetails ¶
type ProviderSignInOptions ¶
type SignedUrlResponse ¶
type SignedUrlResponse struct {
SignedUrl string `json:"signedURL"`
}
type Storage ¶
type Storage struct {
// contains filtered or unexported fields
}
func (*Storage) CreateBucket ¶
func (s *Storage) CreateBucket(ctx context.Context, option BucketOption) (*bucket, error)
CreateBucket creates a new storage bucket @param: option: a bucketOption with the name and id of the bucket you want to create @returns: bucket: a response with the details of the bucket of the bucket created
func (*Storage) DeleteBucket ¶
DeleteBucket deletes a bucket by its id, a bucket can't be deleted except emptied @param: id: the id of the bucket @returns bucketMessage: a successful response message or failed
func (*Storage) EmptyBucket ¶
EmptyBucket empties the object of a bucket by id @param: id: the id of the bucket @returns bucketMessage: a successful response message or failed
func (*Storage) GetBucket ¶
GetBucket retrieves a bucket by its id @param: id: the id of the bucket @returns: bucketResponse: a response with the details of the bucket
func (*Storage) ListBuckets ¶
ListBucket retrieves all buckets ina supabase storage @returns: []bucketResponse: a response with the details of all the bucket
func (*Storage) UpdateBucket ¶
func (s *Storage) UpdateBucket(ctx context.Context, id string, option BucketOption) (*bucketMessage, error)
UpdateBucket updates a bucket by its id @param: id: the id of the bucket @param: option: the options to be updated @returns bucketMessage: a successful response message or failed
type User ¶
type User struct { ID string `json:"id"` Aud string `json:"aud"` Role string `json:"role"` Email string `json:"email"` InvitedAt time.Time `json:"invited_at"` ConfirmedAt time.Time `json:"confirmed_at"` ConfirmationSentAt time.Time `json:"confirmation_sent_at"` AppMetadata struct { // contains filtered or unexported fields } `json:"app_metadata"` UserMetadata map[string]interface{} `json:"user_metadata"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` }