models

package
v0.7.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 31, 2017 License: GPL-3.0 Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	//IdeaNew is the default status
	IdeaNew = 0
	//IdeaStarted is used when the idea has been accepted and work is in progress
	IdeaStarted = 1
	//IdeaCompleted is used when the idea has been accepted and already implemented
	IdeaCompleted = 2
	//IdeaDeclined is used when organizers decide to decline an idea
	IdeaDeclined = 3
)
View Source
var (
	//TenantActive is the default status for most tenants
	TenantActive = 1
	//TenantInactive is used for signup via e-mail that requires user confirmation
	TenantInactive = 2
)

Functions

This section is empty.

Types

type AppSettings

type AppSettings struct {
	Mode            string `json:"mode"`
	BuildTime       string `json:"buildTime"`
	Version         string `json:"version"`
	Environment     string `json:"environment"`
	GoogleAnalytics string `json:"googleAnalytics"`
	Compiler        string `json:"compiler"`
	Domain          string `json:"domain"`
}

AppSettings is an application-wide settings

type ChangeUserRole added in v0.7.0

type ChangeUserRole struct {
	UserID int  `route:"user_id"`
	Role   Role `json:"role"`
}

ChangeUserRole is the input model change role of an user

type Comment

type Comment struct {
	ID        int       `json:"id"`
	Content   string    `json:"content"`
	CreatedOn time.Time `json:"createdOn"`
	User      *User     `json:"user"`
}

Comment represents an user comment on an idea

type CompleteProfile added in v0.6.0

type CompleteProfile struct {
	Key   string `json:"key"`
	Name  string `json:"name"`
	Email string
}

CompleteProfile is the model used to complete user profile during e-mail sign in

type CreateTenant added in v0.5.0

type CreateTenant struct {
	Token           string `json:"token"`
	Name            string `json:"name"`
	Email           string `json:"email" format:"lower"`
	VerificationKey string
	TenantName      string `json:"tenantName"`
	Subdomain       string `json:"subdomain" format:"lower"`
	UserClaims      *OAuthClaims
}

CreateTenant is the input model used to create a tenant

type FiderClaims

type FiderClaims struct {
	UserID    int    `json:"user/id"`
	UserName  string `json:"user/name"`
	UserEmail string `json:"user/email"`
	jwt.StandardClaims
}

FiderClaims represents what goes into JWT tokens

type Idea

type Idea struct {
	ID              int           `json:"id"`
	Number          int           `json:"number"`
	Title           string        `json:"title"`
	Slug            string        `json:"slug"`
	Description     string        `json:"description"`
	CreatedOn       time.Time     `json:"createdOn"`
	User            *User         `json:"user"`
	TotalSupporters int           `json:"totalSupporters"`
	TotalComments   int           `json:"totalComments"`
	Status          int           `json:"status"`
	Response        *IdeaResponse `json:"response"`
}

Idea represents an idea on a tenant board

func (*Idea) CanBeChangedBy added in v0.4.0

func (i *Idea) CanBeChangedBy(user *User) bool

CanBeChangedBy returns true if given user can change this idea

type IdeaResponse

type IdeaResponse struct {
	Text        string    `json:"text"`
	RespondedOn time.Time `json:"respondedOn"`
	User        *User     `json:"user"`
}

IdeaResponse is a staff response to a given idea

type NewComment added in v0.5.0

type NewComment struct {
	Number  int    `route:"number"`
	Content string `json:"content"`
}

NewComment represents a new comment

type NewIdea added in v0.5.0

type NewIdea struct {
	Title       string `json:"title"`
	Description string `json:"description"`
}

NewIdea represents a new idea

type OAuthClaims

type OAuthClaims struct {
	OAuthID       string `json:"oauth/id"`
	OAuthProvider string `json:"oauth/provider"`
	OAuthName     string `json:"oauth/name"`
	OAuthEmail    string `json:"oauth/email"`
	jwt.StandardClaims
}

OAuthClaims represents what goes into temporary OAuth JWT tokens

type Role added in v0.7.0

type Role int

Role is the role of a user inside a tenant

const (
	//RoleVisitor is the basic role for every user
	RoleVisitor Role = 1
	//RoleCollaborator has limited access to administrative console
	RoleCollaborator Role = 2
	//RoleAdministrator has full access to administrative console
	RoleAdministrator Role = 3
)

type SetResponse added in v0.5.0

type SetResponse struct {
	Number int    `route:"number"`
	Status int    `json:"status"`
	Text   string `json:"text"`
}

SetResponse represents the action to update an idea response

type SignInByEmail added in v0.6.0

type SignInByEmail struct {
	Email           string `json:"email" format:"lower"`
	VerificationKey string
}

SignInByEmail is the input model when user request to sign in by email

type SignInRequest added in v0.6.0

type SignInRequest struct {
	Email      string
	Name       string
	Key        string
	CreatedOn  time.Time
	ExpiresOn  time.Time
	VerifiedOn *time.Time
}

SignInRequest is the model used by e-mail verification process

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         int    `json:"-"`
}

Tenant represents a tenant

type UpdateTenantSettings added in v0.5.0

type UpdateTenantSettings struct {
	Title          string `json:"title"`
	Invitation     string `json:"invitation"`
	WelcomeMessage string `json:"welcomeMessage"`
	UserClaims     *OAuthClaims
}

UpdateTenantSettings is the input model used to update tenant settings

type UpdateUserSettings added in v0.6.0

type UpdateUserSettings struct {
	Name string `json:"name"`
}

UpdateUserSettings is the model used to update user's settings

type User

type User struct {
	ID        int             `json:"id"`
	Name      string          `json:"name"`
	Email     string          `json:"-"`
	Gravatar  string          `json:"gravatar"`
	Tenant    *Tenant         `json:"-"`
	Role      Role            `json:"role"`
	Providers []*UserProvider `json:"-"`
}

User represents an user inside our application

func (*User) HasProvider

func (u *User) HasProvider(provider string) bool

HasProvider returns true if current user has registered with given provider

func (*User) IsAdministrator added in v0.7.0

func (u *User) IsAdministrator() bool

IsAdministrator returns true if user is administrator

func (*User) IsCollaborator added in v0.7.0

func (u *User) IsCollaborator() bool

IsCollaborator returns true if user has special permissions

type UserProvider

type UserProvider struct {
	Name string
	UID  string
}

UserProvider represents the relashionship between an User and an Authentication provide

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL