Documentation ¶
Index ¶
- func GenerateEmailVerificationKey() string
- type BillingPayment
- type BillingPaymentInformation
- type BillingState
- type BillingSubscription
- type Comment
- type EmailVerification
- type HttpHeaders
- type Notification
- type OAuthConfig
- type OriginalPost
- type Post
- type PostResponse
- type Reaction
- type ReactionCounts
- type Tag
- type Tenant
- type TenantContact
- type User
- type UserProvider
- type UserWithEmail
- type Vote
- type VoteUser
- type Webhook
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GenerateEmailVerificationKey ¶
func GenerateEmailVerificationKey() string
GenerateEmailVerificationKey returns a 64 chars key
Types ¶
type BillingPayment ¶ added in v0.22.0
type BillingPaymentInformation ¶ added in v0.20.0
type BillingState ¶ added in v0.20.0
type BillingSubscription ¶ added in v0.20.0
type BillingSubscription struct { UpdateURL string `json:"updateURL"` CancelURL string `json:"cancelURL"` PaymentInformation BillingPaymentInformation `json:"paymentInformation"` LastPayment BillingPayment `json:"lastPayment"` NextPayment BillingPayment `json:"nextPayment"` }
type Comment ¶
type Comment struct { ID int `json:"id"` Content string `json:"content"` CreatedAt time.Time `json:"createdAt"` User *User `json:"user"` Attachments []string `json:"attachments,omitempty"` EditedAt *time.Time `json:"editedAt,omitempty"` EditedBy *User `json:"editedBy,omitempty"` ReactionCounts []ReactionCounts `json:"reactionCounts,omitempty"` }
Comment represents an user comment on an post
type EmailVerification ¶
type EmailVerification struct { Email string Name string Key string UserID int Kind enum.EmailVerificationKind CreatedAt time.Time ExpiresAt time.Time VerifiedAt *time.Time }
EmailVerification is the model used by email verification process
type HttpHeaders ¶ added in v0.20.0
func (*HttpHeaders) Scan ¶ added in v0.20.0
func (h *HttpHeaders) Scan(src any) error
type Notification ¶
type Notification struct { ID int `json:"id" db:"id"` Title string `json:"title" db:"title"` Link string `json:"link" db:"link"` Read bool `json:"read" db:"read"` CreatedAt time.Time `json:"createdAt" db:"created_at"` AuthorName string `json:"authorName" db:"name"` AuthorID int `json:"-" db:"author_id"` AvatarBlobKey string `json:"-" db:"avatar_bkey"` AvatarType enum.AvatarType `json:"-" db:"avatar_type"` AvatarURL string `json:"avatarURL,omitempty"` }
Notification is the system generated notification entity
type OAuthConfig ¶
type OAuthConfig struct { ID int Provider string DisplayName string LogoBlobKey string Status int ClientID string ClientSecret string AuthorizeURL string TokenURL string ProfileURL string Scope string IsTrusted bool JSONUserIDPath string JSONUserNamePath string JSONUserEmailPath string }
OAuthConfig is the configuration of a custom OAuth provider
func (OAuthConfig) MarshalJSON ¶
func (o OAuthConfig) MarshalJSON() ([]byte, error)
MarshalJSON returns the JSON encoding of OAuthConfig
type OriginalPost ¶
type OriginalPost struct { Number int `json:"number"` Title string `json:"title"` Slug string `json:"slug"` Status enum.PostStatus `json:"status"` }
OriginalPost holds details of the original post of a duplicate
func (*OriginalPost) Url ¶ added in v0.20.0
func (i *OriginalPost) Url(baseURL string) string
type Post ¶
type Post struct { ID int `json:"id"` Number int `json:"number"` Title string `json:"title"` Slug string `json:"slug"` Description string `json:"description"` CreatedAt time.Time `json:"createdAt"` User *User `json:"user"` HasVoted bool `json:"hasVoted"` VotesCount int `json:"votesCount"` CommentsCount int `json:"commentsCount"` Status enum.PostStatus `json:"status"` Response *PostResponse `json:"response,omitempty"` Tags []string `json:"tags"` }
Post represents an post on a tenant board
func (*Post) CanBeVoted ¶
CanBeVoted returns true if this post can have its vote changed
type PostResponse ¶
type PostResponse struct { Text string `json:"text"` RespondedAt time.Time `json:"respondedAt"` User *User `json:"user"` Original *OriginalPost `json:"original"` }
PostResponse is a staff response to a given post
type Reaction ¶ added in v0.23.0
type Reaction struct { ID int `json:"id"` Emoji string `json:"emoji"` Comment *Comment `json:"-"` User *User `json:"user"` CreatedAt time.Time `json:"createdAt"` }
Reaction represents a user's emoji reaction to a comment
type ReactionCounts ¶ added in v0.23.0
type Tag ¶
type Tag struct { ID int `json:"id"` Name string `json:"name"` Slug string `json:"slug"` Color string `json:"color"` IsPublic bool `json:"isPublic"` }
Tag represents a simple tag
type Tenant ¶
type Tenant struct { ID int `json:"id"` Name string `json:"name"` Subdomain string `json:"subdomain"` Invitation string `json:"invitation"` WelcomeMessage string `json:"welcomeMessage"` CNAME string `json:"cname"` Status enum.TenantStatus `json:"status"` Locale string `json:"locale"` IsPrivate bool `json:"isPrivate"` LogoBlobKey string `json:"logoBlobKey"` CustomCSS string `json:"-"` IsEmailAuthAllowed bool `json:"isEmailAuthAllowed"` }
Tenant represents a tenant
func (*Tenant) IsDisabled ¶ added in v0.20.0
type TenantContact ¶ added in v0.20.0
type TenantContact struct { Name string `json:"name"` Email string `json:"email"` Subdomain string `json:"subdomain"` }
TenantContact is a reference to an administrator account
type User ¶
type User struct { ID int `json:"id"` Name string `json:"name"` Tenant *Tenant `json:"-"` Email string `json:"-"` Role enum.Role `json:"role"` Providers []*UserProvider `json:"-"` AvatarBlobKey string `json:"-"` AvatarType enum.AvatarType `json:"-"` AvatarURL string `json:"avatarURL,omitempty"` Status enum.UserStatus `json:"status"` }
User represents an user inside our application
func (*User) HasProvider ¶
HasProvider returns true if current user has registered with given provider
func (*User) IsAdministrator ¶
IsAdministrator returns true if user is administrator
func (*User) IsCollaborator ¶
IsCollaborator returns true if user has special permissions
type UserProvider ¶
UserProvider represents the relationship between an User and an Authentication provide
type UserWithEmail ¶ added in v0.22.0
type UserWithEmail struct {
*User
}
UserWithEmail is a wrapper around User that includes the email field when marshaling to JSON
func (UserWithEmail) MarshalJSON ¶ added in v0.22.0
func (umc UserWithEmail) MarshalJSON() ([]byte, error)
type VoteUser ¶
type VoteUser struct { ID int `json:"id"` Name string `json:"name"` Email string `json:"email,omitempty"` AvatarURL string `json:"avatarURL,omitempty"` }
VoteUser represents a user that voted on a post
type Webhook ¶ added in v0.20.0
type Webhook struct { ID int `json:"id" db:"id"` Name string `json:"name" db:"name"` Type enum.WebhookType `json:"type" db:"type"` Status enum.WebhookStatus `json:"status" db:"status"` Url string `json:"url" db:"url"` Content string `json:"content" db:"content"` HttpMethod string `json:"http_method" db:"http_method"` HttpHeaders HttpHeaders `json:"http_headers" db:"http_headers"` }
Webhook represents a webhook