Documentation ¶
Index ¶
- Constants
- Variables
- func WithAuth(ctx context.Context, auth Authorization) context.Context
- func WithAuthFailure(ctx context.Context, err error) context.Context
- type APIKeyCursor
- type APIKeyInfo
- type APIKeyOrder
- type APIKeyPage
- type APIKeys
- type Authorization
- type BucketUsage
- type BucketUsageCursor
- type BucketUsagePage
- type BucketUsageRollup
- type CreateCredit
- type CreateUser
- type CreditType
- type DB
- type DBTx
- type OrderDirection
- type PaymentsService
- func (payments PaymentsService) AccountBalance(ctx context.Context) (balance int64, err error)
- func (payments PaymentsService) AddCreditCard(ctx context.Context, creditCardToken string) (err error)
- func (payments PaymentsService) ListCreditCards(ctx context.Context) (_ []payments.CreditCard, err error)
- func (payments PaymentsService) MakeCreditCardDefault(ctx context.Context, cardID string) (err error)
- func (payments PaymentsService) RemoveCreditCard(ctx context.Context, cardID string) (err error)
- func (payments PaymentsService) SetupAccount(ctx context.Context) (err error)
- type Project
- type ProjectInfo
- type ProjectMember
- type ProjectMemberOrder
- type ProjectMembers
- type ProjectMembersCursor
- type ProjectMembersPage
- type ProjectUsage
- type Projects
- type RegistrationSecret
- type RegistrationToken
- type RegistrationTokens
- type ResetPasswordSecret
- type ResetPasswordToken
- type ResetPasswordTokens
- type Service
- func (s *Service) ActivateAccount(ctx context.Context, activationToken string) (err error)
- func (s *Service) AddProjectMembers(ctx context.Context, projectID uuid.UUID, emails []string) (users []*User, err error)
- func (s *Service) Authorize(ctx context.Context) (a Authorization, err error)
- func (s *Service) ChangePassword(ctx context.Context, pass, newPass string) (err error)
- func (s *Service) CreateAPIKey(ctx context.Context, projectID uuid.UUID, name string) (_ *APIKeyInfo, _ *macaroon.APIKey, err error)
- func (s *Service) CreateProject(ctx context.Context, projectInfo ProjectInfo) (p *Project, err error)
- func (s *Service) CreateRegToken(ctx context.Context, projLimit int) (_ *RegistrationToken, err error)
- func (s *Service) CreateUser(ctx context.Context, user CreateUser, tokenSecret RegistrationSecret, ...) (u *User, err error)
- func (s *Service) DeleteAPIKeys(ctx context.Context, ids []uuid.UUID) (err error)
- func (s *Service) DeleteAccount(ctx context.Context, password string) (err error)
- func (s *Service) DeleteProject(ctx context.Context, projectID uuid.UUID) (err error)
- func (s *Service) DeleteProjectMembers(ctx context.Context, projectID uuid.UUID, emails []string) (err error)
- func (s *Service) GenerateActivationToken(ctx context.Context, id uuid.UUID, email string) (token string, err error)
- func (s *Service) GeneratePasswordRecoveryToken(ctx context.Context, id uuid.UUID) (token string, err error)
- func (s *Service) GetAPIKeyInfo(ctx context.Context, id uuid.UUID) (_ *APIKeyInfo, err error)
- func (s *Service) GetAPIKeys(ctx context.Context, projectID uuid.UUID, cursor APIKeyCursor) (page *APIKeyPage, err error)
- func (s *Service) GetBucketTotals(ctx context.Context, projectID uuid.UUID, cursor BucketUsageCursor, ...) (_ *BucketUsagePage, err error)
- func (s *Service) GetBucketUsageRollups(ctx context.Context, projectID uuid.UUID, since, before time.Time) (_ []BucketUsageRollup, err error)
- func (s *Service) GetCurrentRewardByType(ctx context.Context, offerType rewards.OfferType) (offer *rewards.Offer, err error)
- func (s *Service) GetProject(ctx context.Context, projectID uuid.UUID) (p *Project, err error)
- func (s *Service) GetProjectMembers(ctx context.Context, projectID uuid.UUID, cursor ProjectMembersCursor) (pmp *ProjectMembersPage, err error)
- func (s *Service) GetProjectUsage(ctx context.Context, projectID uuid.UUID, since, before time.Time) (_ *ProjectUsage, err error)
- func (s *Service) GetUser(ctx context.Context, id uuid.UUID) (u *User, err error)
- func (s *Service) GetUserByEmail(ctx context.Context, email string) (u *User, err error)
- func (s *Service) GetUserCreditUsage(ctx context.Context) (usage *UserCreditUsage, err error)
- func (s *Service) GetUsersProjects(ctx context.Context) (ps []Project, err error)
- func (s *Service) Payments() PaymentsService
- func (s *Service) ResetPassword(ctx context.Context, resetPasswordToken, password string) (err error)
- func (s *Service) RevokeResetPasswordToken(ctx context.Context, resetPasswordToken string) (err error)
- func (s *Service) Token(ctx context.Context, email, password string) (token string, err error)
- func (s *Service) UpdateAccount(ctx context.Context, info UserInfo) (err error)
- func (s *Service) UpdateProject(ctx context.Context, projectID uuid.UUID, description string) (p *Project, err error)
- type Signer
- type UsageRollups
- type User
- type UserCredit
- type UserCreditUsage
- type UserCredits
- type UserInfo
- type UserStatus
- type Users
Constants ¶
const ( // DefaultPasswordCost is the hashing complexity DefaultPasswordCost = bcrypt.DefaultCost // TestPasswordCost is the hashing complexity to use for testing TestPasswordCost = bcrypt.MinCost )
Variables ¶
var ErrConsoleInternal = errs.Class("internal error")
ErrConsoleInternal describes internal console error
var ErrNoMembership = errs.Class("no membership error")
ErrNoMembership is error type of not belonging to a specific project
ErrUnauthorized is error class for authorization related errors
var ErrValidation = errs.Class("validation error")
ErrValidation validation related error class
var NoCreditForUpdateErr = errs.Class("no credit found to update")
NoCreditForUpdateErr is a error message used when no credits are found for update when new users sign up
Functions ¶
Types ¶
type APIKeyCursor ¶ added in v0.21.0
type APIKeyCursor struct { Search string Limit uint Page uint Order APIKeyOrder OrderDirection OrderDirection }
APIKeyCursor holds info for api keys cursor pagination
type APIKeyInfo ¶
type APIKeyInfo struct { ID uuid.UUID `json:"id"` ProjectID uuid.UUID `json:"projectId"` PartnerID uuid.UUID `json:"partnerId"` Name string `json:"name"` Secret []byte `json:"-"` CreatedAt time.Time `json:"createdAt"` }
APIKeyInfo describing api key model in the database
type APIKeyOrder ¶ added in v0.21.0
type APIKeyOrder uint8
APIKeyOrder is used for querying api keys in specified order
const ( // KeyName indicates that we should order by key name KeyName APIKeyOrder = 1 // CreationDate indicates that we should order by creation date CreationDate APIKeyOrder = 2 )
type APIKeyPage ¶ added in v0.21.0
type APIKeyPage struct { APIKeys []APIKeyInfo Search string Limit uint Order APIKeyOrder OrderDirection OrderDirection Offset uint64 PageCount uint CurrentPage uint TotalCount uint64 }
APIKeyPage represent api key page result
type APIKeys ¶
type APIKeys interface { // GetPagedByProjectID is a method for querying API keys from the database by projectID and cursor GetPagedByProjectID(ctx context.Context, projectID uuid.UUID, cursor APIKeyCursor) (akp *APIKeyPage, err error) // Get retrieves APIKeyInfo with given ID Get(ctx context.Context, id uuid.UUID) (*APIKeyInfo, error) // GetByHead retrieves APIKeyInfo for given key head GetByHead(ctx context.Context, head []byte) (*APIKeyInfo, error) // GetByNameAndProjectID retrieves APIKeyInfo for given key name and projectID GetByNameAndProjectID(ctx context.Context, name string, projectID uuid.UUID) (*APIKeyInfo, error) // Create creates and stores new APIKeyInfo Create(ctx context.Context, head []byte, info APIKeyInfo) (*APIKeyInfo, error) // Update updates APIKeyInfo in store Update(ctx context.Context, key APIKeyInfo) error // Delete deletes APIKeyInfo from store Delete(ctx context.Context, id uuid.UUID) error }
APIKeys is interface for working with api keys store
architecture: Database
type Authorization ¶
type Authorization struct { User User Claims consoleauth.Claims }
Authorization contains auth info of authorized User
type BucketUsage ¶ added in v0.12.0
type BucketUsage struct { ProjectID uuid.UUID BucketName string Storage float64 Egress float64 ObjectCount int64 Since time.Time Before time.Time }
BucketUsage consist of total bucket usage for period
type BucketUsageCursor ¶ added in v0.12.0
BucketUsageCursor holds info for bucket usage cursor pagination
type BucketUsagePage ¶ added in v0.12.0
type BucketUsagePage struct { BucketUsages []BucketUsage Search string Limit uint Offset uint64 PageCount uint CurrentPage uint TotalCount uint64 }
BucketUsagePage represents bucket usage page result
type BucketUsageRollup ¶ added in v0.9.0
type BucketUsageRollup struct { ProjectID uuid.UUID BucketName []byte RemoteStoredData float64 InlineStoredData float64 RemoteSegments float64 InlineSegments float64 ObjectCount float64 MetadataSize float64 RepairEgress float64 GetEgress float64 AuditEgress float64 Since time.Time Before time.Time }
BucketUsageRollup is total bucket usage info for certain period
type CreateCredit ¶ added in v0.18.0
type CreateCredit struct { OfferInfo rewards.RedeemOffer UserID uuid.UUID OfferID int Type CreditType ReferredBy *uuid.UUID CreditsEarned currency.USD ExpiresAt time.Time }
CreateCredit holds information that's needed when create a new record of user credit
type CreateUser ¶
CreateUser struct holds info for User creation.
func (*CreateUser) IsValid ¶
func (user *CreateUser) IsValid() error
IsValid checks CreateUser validity and returns error describing whats wrong.
type CreditType ¶ added in v0.17.0
type CreditType string
CreditType indicates a type of a credit
const ( // Invitee is a type of credits earned by invitee Invitee CreditType = "invitee" // Referrer is a type of credits earned by referrer Referrer CreditType = "referrer" )
type DB ¶
type DB interface { // Users is a getter for Users repository Users() Users // Projects is a getter for Projects repository Projects() Projects // ProjectMembers is a getter for ProjectMembers repository ProjectMembers() ProjectMembers // APIKeys is a getter for APIKeys repository APIKeys() APIKeys // BucketUsage is a getter for accounting.BucketUsage repository BucketUsage() accounting.BucketUsage // RegistrationTokens is a getter for RegistrationTokens repository RegistrationTokens() RegistrationTokens // ResetPasswordTokens is a getter for ResetPasswordTokens repository ResetPasswordTokens() ResetPasswordTokens // UsageRollups is a getter for UsageRollups repository UsageRollups() UsageRollups // UserCredits is a getter for UserCredits repository UserCredits() UserCredits // BeginTransaction is a method for opening transaction BeginTx(ctx context.Context) (DBTx, error) }
DB contains access to different satellite databases
architecture: Database
type DBTx ¶
type DBTx interface { DB // CommitTransaction is a method for committing and closing transaction Commit() error // RollbackTransaction is a method for rollback and closing transaction Rollback() error }
DBTx extends Database with transaction scope
type OrderDirection ¶ added in v0.21.0
type OrderDirection uint8
OrderDirection is used for members in specific order direction
const ( // Ascending indicates that we should order ascending Ascending OrderDirection = 1 // Descending indicates that we should order descending Descending OrderDirection = 2 )
type PaymentsService ¶ added in v0.24.0
type PaymentsService struct {
// contains filtered or unexported fields
}
PaymentsService separates all payment related functionality
func (PaymentsService) AccountBalance ¶ added in v0.24.0
func (payments PaymentsService) AccountBalance(ctx context.Context) (balance int64, err error)
AccountBalance return account balance.
func (PaymentsService) AddCreditCard ¶ added in v0.24.0
func (payments PaymentsService) AddCreditCard(ctx context.Context, creditCardToken string) (err error)
AddCreditCard is used to save new credit card and attach it to payment account.
func (PaymentsService) ListCreditCards ¶ added in v0.24.0
func (payments PaymentsService) ListCreditCards(ctx context.Context) (_ []payments.CreditCard, err error)
ListCreditCards returns a list of credit cards for a given payment account.
func (PaymentsService) MakeCreditCardDefault ¶ added in v0.24.0
func (payments PaymentsService) MakeCreditCardDefault(ctx context.Context, cardID string) (err error)
MakeCreditCardDefault makes a credit card default payment method.
func (PaymentsService) RemoveCreditCard ¶ added in v0.24.0
func (payments PaymentsService) RemoveCreditCard(ctx context.Context, cardID string) (err error)
RemoveCreditCard is used to detach a credit card from payment account.
func (PaymentsService) SetupAccount ¶ added in v0.24.0
func (payments PaymentsService) SetupAccount(ctx context.Context) (err error)
SetupAccount creates payment account for authorized user.
type Project ¶
type Project struct { ID uuid.UUID `json:"id"` Name string `json:"name"` Description string `json:"description"` UsageLimit int64 `json:"usageLimit"` PartnerID uuid.UUID `json:"partnerId"` OwnerID uuid.UUID `json:"ownerId"` CreatedAt time.Time `json:"createdAt"` }
Project is a database object that describes Project entity
type ProjectInfo ¶
type ProjectInfo struct { Name string `json:"name"` Description string `json:"description"` CreatedAt time.Time `json:"createdAt"` }
ProjectInfo holds data needed to create/update Project
type ProjectMember ¶
type ProjectMember struct { // FK on Users table. MemberID uuid.UUID // FK on Projects table. ProjectID uuid.UUID CreatedAt time.Time }
ProjectMember is a database object that describes ProjectMember entity.
type ProjectMemberOrder ¶
type ProjectMemberOrder int8
ProjectMemberOrder is used for querying project members in specified order
const ( // Name indicates that we should order by full name Name ProjectMemberOrder = 1 // Email indicates that we should order by email Email ProjectMemberOrder = 2 // Created indicates that we should order by created date Created ProjectMemberOrder = 3 )
type ProjectMembers ¶
type ProjectMembers interface { // GetByMemberID is a method for querying project members from the database by memberID. GetByMemberID(ctx context.Context, memberID uuid.UUID) ([]ProjectMember, error) // GetPagedByProjectID is a method for querying project members from the database by projectID and cursor GetPagedByProjectID(ctx context.Context, projectID uuid.UUID, cursor ProjectMembersCursor) (*ProjectMembersPage, error) // Insert is a method for inserting project member into the database. Insert(ctx context.Context, memberID, projectID uuid.UUID) (*ProjectMember, error) // Delete is a method for deleting project member by memberID and projectID from the database. Delete(ctx context.Context, memberID, projectID uuid.UUID) error }
ProjectMembers exposes methods to manage ProjectMembers table in database.
architecture: Database
type ProjectMembersCursor ¶ added in v0.17.0
type ProjectMembersCursor struct { Search string Limit uint Page uint Order ProjectMemberOrder OrderDirection OrderDirection }
ProjectMembersCursor holds info for project members cursor pagination
type ProjectMembersPage ¶ added in v0.17.0
type ProjectMembersPage struct { ProjectMembers []ProjectMember Search string Limit uint Order ProjectMemberOrder OrderDirection OrderDirection Offset uint64 PageCount uint CurrentPage uint TotalCount uint64 }
ProjectMembersPage represent project members page result
type ProjectUsage ¶ added in v0.9.0
type ProjectUsage struct { Storage float64 Egress float64 ObjectCount float64 Since time.Time Before time.Time }
ProjectUsage consist of period total storage, egress and objects count per hour for certain Project
type Projects ¶
type Projects interface { // GetAll is a method for querying all projects from the database. GetAll(ctx context.Context) ([]Project, error) // GetCreatedBefore retrieves all projects created before provided date GetCreatedBefore(ctx context.Context, before time.Time) ([]Project, error) // GetByUserID is a method for querying all projects from the database by userID. GetByUserID(ctx context.Context, userID uuid.UUID) ([]Project, error) // Get is a method for querying project from the database by id. Get(ctx context.Context, id uuid.UUID) (*Project, error) // Insert is a method for inserting project into the database. Insert(ctx context.Context, project *Project) (*Project, error) // Delete is a method for deleting project by Id from the database. Delete(ctx context.Context, id uuid.UUID) error // Update is a method for updating project entity. Update(ctx context.Context, project *Project) error }
Projects exposes methods to manage Project table in database.
architecture: Database
type RegistrationSecret ¶
type RegistrationSecret [32]byte
RegistrationSecret stores secret of registration token
func NewRegistrationSecret ¶
func NewRegistrationSecret() (RegistrationSecret, error)
NewRegistrationSecret creates new registration secret
func RegistrationSecretFromBase64 ¶
func RegistrationSecretFromBase64(s string) (RegistrationSecret, error)
RegistrationSecretFromBase64 creates new registration secret from base64 string
func (RegistrationSecret) String ¶
func (secret RegistrationSecret) String() string
String implements Stringer
type RegistrationToken ¶
type RegistrationToken struct { // Secret is PK of the table and keeps unique value forRegToken Secret RegistrationSecret // OwnerID stores current token owner ID OwnerID *uuid.UUID // ProjectLimit defines how many projects user is able to create ProjectLimit int `json:"projectLimit"` CreatedAt time.Time `json:"createdAt"` }
RegistrationToken describing api key model in the database
type RegistrationTokens ¶
type RegistrationTokens interface { // Create creates new registration token Create(ctx context.Context, projectLimit int) (*RegistrationToken, error) // GetBySecret retrieves RegTokenInfo with given Secret GetBySecret(ctx context.Context, secret RegistrationSecret) (*RegistrationToken, error) // GetByOwnerID retrieves RegTokenInfo by ownerID GetByOwnerID(ctx context.Context, ownerID uuid.UUID) (*RegistrationToken, error) // UpdateOwner updates registration token's owner UpdateOwner(ctx context.Context, secret RegistrationSecret, ownerID uuid.UUID) error }
RegistrationTokens is interface for working with registration tokens
architecture: Database
type ResetPasswordSecret ¶ added in v0.12.0
type ResetPasswordSecret [32]byte
ResetPasswordSecret stores secret of registration token
func NewResetPasswordSecret ¶ added in v0.12.0
func NewResetPasswordSecret() (ResetPasswordSecret, error)
NewResetPasswordSecret creates new reset password secret
func ResetPasswordSecretFromBase64 ¶ added in v0.12.0
func ResetPasswordSecretFromBase64(s string) (ResetPasswordSecret, error)
ResetPasswordSecretFromBase64 creates new reset password secret from base64 string
func (ResetPasswordSecret) String ¶ added in v0.12.0
func (secret ResetPasswordSecret) String() string
String implements Stringer
type ResetPasswordToken ¶ added in v0.12.0
type ResetPasswordToken struct { // Secret is PK of the table and keeps unique value for reset password token Secret ResetPasswordSecret // OwnerID stores current token owner ID OwnerID *uuid.UUID CreatedAt time.Time `json:"createdAt"` }
ResetPasswordToken describing reset password model in the database
type ResetPasswordTokens ¶ added in v0.12.0
type ResetPasswordTokens interface { // Create creates new reset password token Create(ctx context.Context, ownerID uuid.UUID) (*ResetPasswordToken, error) // GetBySecret retrieves ResetPasswordToken with given secret GetBySecret(ctx context.Context, secret ResetPasswordSecret) (*ResetPasswordToken, error) // GetByOwnerID retrieves ResetPasswordToken by ownerID GetByOwnerID(ctx context.Context, ownerID uuid.UUID) (*ResetPasswordToken, error) // Delete deletes ResetPasswordToken by ResetPasswordSecret Delete(ctx context.Context, secret ResetPasswordSecret) error }
ResetPasswordTokens is interface for working with reset password tokens
architecture: Database
type Service ¶
type Service struct { Signer // contains filtered or unexported fields }
Service is handling accounts related logic
architecture: Service
func NewService ¶
func NewService(log *zap.Logger, signer Signer, store DB, rewards rewards.DB, accounts payments.Accounts, passwordCost int) (*Service, error)
NewService returns new instance of Service
func (*Service) ActivateAccount ¶
ActivateAccount - is a method for activating user account after registration
func (*Service) AddProjectMembers ¶
func (s *Service) AddProjectMembers(ctx context.Context, projectID uuid.UUID, emails []string) (users []*User, err error)
AddProjectMembers adds users by email to given project
func (*Service) Authorize ¶
func (s *Service) Authorize(ctx context.Context) (a Authorization, err error)
Authorize validates token from context and returns authorized Authorization
func (*Service) ChangePassword ¶
ChangePassword updates password for a given user
func (*Service) CreateAPIKey ¶
func (s *Service) CreateAPIKey(ctx context.Context, projectID uuid.UUID, name string) (_ *APIKeyInfo, _ *macaroon.APIKey, err error)
CreateAPIKey creates new api key
func (*Service) CreateProject ¶
func (s *Service) CreateProject(ctx context.Context, projectInfo ProjectInfo) (p *Project, err error)
CreateProject is a method for creating new project
func (*Service) CreateRegToken ¶
func (s *Service) CreateRegToken(ctx context.Context, projLimit int) (_ *RegistrationToken, err error)
CreateRegToken creates new registration token. Needed for testing
func (*Service) CreateUser ¶
func (s *Service) CreateUser(ctx context.Context, user CreateUser, tokenSecret RegistrationSecret, refUserID string) (u *User, err error)
CreateUser gets password hash value and creates new inactive User
func (*Service) DeleteAPIKeys ¶
DeleteAPIKeys deletes api key by id
func (*Service) DeleteAccount ¶
DeleteAccount deletes User
func (*Service) DeleteProject ¶
DeleteProject is a method for deleting project by id
func (*Service) DeleteProjectMembers ¶
func (s *Service) DeleteProjectMembers(ctx context.Context, projectID uuid.UUID, emails []string) (err error)
DeleteProjectMembers removes users by email from given project
func (*Service) GenerateActivationToken ¶
func (s *Service) GenerateActivationToken(ctx context.Context, id uuid.UUID, email string) (token string, err error)
GenerateActivationToken - is a method for generating activation token
func (*Service) GeneratePasswordRecoveryToken ¶ added in v0.10.0
func (s *Service) GeneratePasswordRecoveryToken(ctx context.Context, id uuid.UUID) (token string, err error)
GeneratePasswordRecoveryToken - is a method for generating password recovery token
func (*Service) GetAPIKeyInfo ¶
GetAPIKeyInfo retrieves api key by id
func (*Service) GetAPIKeys ¶ added in v0.21.0
func (s *Service) GetAPIKeys(ctx context.Context, projectID uuid.UUID, cursor APIKeyCursor) (page *APIKeyPage, err error)
GetAPIKeys returns paged api key list for given Project
func (*Service) GetBucketTotals ¶ added in v0.12.0
func (s *Service) GetBucketTotals(ctx context.Context, projectID uuid.UUID, cursor BucketUsageCursor, before time.Time) (_ *BucketUsagePage, err error)
GetBucketTotals retrieves paged bucket total usages since project creation
func (*Service) GetBucketUsageRollups ¶ added in v0.9.0
func (s *Service) GetBucketUsageRollups(ctx context.Context, projectID uuid.UUID, since, before time.Time) (_ []BucketUsageRollup, err error)
GetBucketUsageRollups retrieves summed usage rollups for every bucket of particular project for a given period
func (*Service) GetCurrentRewardByType ¶ added in v0.15.0
func (s *Service) GetCurrentRewardByType(ctx context.Context, offerType rewards.OfferType) (offer *rewards.Offer, err error)
GetCurrentRewardByType is a method for querying current active reward offer based on its type
func (*Service) GetProject ¶
GetProject is a method for querying project by id
func (*Service) GetProjectMembers ¶
func (s *Service) GetProjectMembers(ctx context.Context, projectID uuid.UUID, cursor ProjectMembersCursor) (pmp *ProjectMembersPage, err error)
GetProjectMembers returns ProjectMembers for given Project
func (*Service) GetProjectUsage ¶ added in v0.9.0
func (s *Service) GetProjectUsage(ctx context.Context, projectID uuid.UUID, since, before time.Time) (_ *ProjectUsage, err error)
GetProjectUsage retrieves project usage for a given period
func (*Service) GetUserByEmail ¶ added in v0.10.0
GetUserByEmail returns User by email
func (*Service) GetUserCreditUsage ¶ added in v0.14.0
func (s *Service) GetUserCreditUsage(ctx context.Context) (usage *UserCreditUsage, err error)
GetUserCreditUsage is a method for querying users' credit information up until now
func (*Service) GetUsersProjects ¶
GetUsersProjects is a method for querying all projects
func (*Service) Payments ¶ added in v0.24.0
func (s *Service) Payments() PaymentsService
Payments separates all payment related functionality
func (*Service) ResetPassword ¶ added in v0.10.0
func (s *Service) ResetPassword(ctx context.Context, resetPasswordToken, password string) (err error)
ResetPassword - is a method for reseting user password
func (*Service) RevokeResetPasswordToken ¶ added in v0.12.0
func (s *Service) RevokeResetPasswordToken(ctx context.Context, resetPasswordToken string) (err error)
RevokeResetPasswordToken - is a method to revoke reset password token
func (*Service) UpdateAccount ¶
UpdateAccount updates User
type UsageRollups ¶ added in v0.9.0
type UsageRollups interface { GetProjectTotal(ctx context.Context, projectID uuid.UUID, since, before time.Time) (*ProjectUsage, error) GetBucketUsageRollups(ctx context.Context, projectID uuid.UUID, since, before time.Time) ([]BucketUsageRollup, error) GetBucketTotals(ctx context.Context, projectID uuid.UUID, cursor BucketUsageCursor, since, before time.Time) (*BucketUsagePage, error) }
UsageRollups defines how console works with usage rollups
architecture: Database
type User ¶
type User struct { ID uuid.UUID `json:"id"` FullName string `json:"fullName"` ShortName string `json:"shortName"` Email string `json:"email"` PasswordHash []byte `json:"passwordHash"` Status UserStatus `json:"status"` PartnerID uuid.UUID `json:"partnerId"` CreatedAt time.Time `json:"createdAt"` }
User is a database object that describes User entity.
type UserCredit ¶ added in v0.14.0
type UserCredit struct { ID int UserID uuid.UUID OfferID int ReferredBy *uuid.UUID Type CreditType CreditsEarned currency.USD CreditsUsed currency.USD ExpiresAt time.Time CreatedAt time.Time }
UserCredit holds information about an user's credit
type UserCreditUsage ¶ added in v0.14.0
type UserCreditUsage struct { Referred int64 AvailableCredits currency.USD UsedCredits currency.USD }
UserCreditUsage holds information about credit usage information
type UserCredits ¶ added in v0.14.0
type UserCredits interface { GetCreditUsage(ctx context.Context, userID uuid.UUID, expirationEndDate time.Time) (*UserCreditUsage, error) Create(ctx context.Context, userCredit CreateCredit) error UpdateEarnedCredits(ctx context.Context, userID uuid.UUID) error UpdateAvailableCredits(ctx context.Context, creditsToCharge int, id uuid.UUID, billingStartDate time.Time) (remainingCharge int, err error) }
UserCredits holds information to interact with database
architecture: Database
type UserInfo ¶
type UserInfo struct { FullName string `json:"fullName"` ShortName string `json:"shortName"` Email string `json:"email"` PartnerID string `json:"partnerId"` }
UserInfo holds User updatable data.
type UserStatus ¶
type UserStatus int
UserStatus - is used to indicate status of the users account
const ( // Inactive is a user status that he receives after registration Inactive UserStatus = 0 // Active is a user status that he receives after account activation Active UserStatus = 1 // Deleted is a user status that he receives after deleting account Deleted UserStatus = 2 )
type Users ¶
type Users interface { // Get is a method for querying user from the database by id. Get(ctx context.Context, id uuid.UUID) (*User, error) // GetByEmail is a method for querying user by email from the database. GetByEmail(ctx context.Context, email string) (*User, error) // Insert is a method for inserting user into the database. Insert(ctx context.Context, user *User) (*User, error) // Delete is a method for deleting user by Id from the database. Delete(ctx context.Context, id uuid.UUID) error // Update is a method for updating user entity. Update(ctx context.Context, user *User) error }
Users exposes methods to manage User table in database.
architecture: Database