Documentation ¶
Index ¶
- Variables
- func ErrStatus(status int, msg string) error
- func ListDiscussions(db *sqlx.DB) gin.HandlerFunc
- func ListExams(db *sqlx.DB) gin.HandlerFunc
- func ListInstructors(db *sqlx.DB) gin.HandlerFunc
- func ListLabs(db *sqlx.DB) gin.HandlerFunc
- func ListLectures(db *sqlx.DB) func(*gin.Context)
- func NewErr(msg string) error
- type App
- func (a *App) Close() error
- func (a *App) CreateUser(u *users.User, password string) (*users.User, error)
- func (a *App) GetInstructor(id interface{}) (*models.Instructor, error)
- func (a *App) GetUser(u users.User) (*users.User, error)
- func (a *App) NewJWTAuth() (*ginjwt.GinJWTMiddleware, error)
- func (a *App) PostUser(c *gin.Context)
- func (a *App) RegisterRoutes(g *gin.RouterGroup)
- func (a *App) ServeHTTP(w http.ResponseWriter, r *http.Request)
- func (a *App) SilentCreateUser(c *gin.Context)
- type Config
- type DatabaseConfig
- type Error
- type Msg
Constants ¶
This section is empty.
Variables ¶
var LoggerConfig = gin.LoggerConfig{ Formatter: func(f gin.LogFormatterParams) string { return fmt.Sprintf( "[\x1b[35m%s\x1b[0m] \"\x1b[34m%s\x1b[0m\" %6v %s %s %s%d%s %s\n", f.TimeStamp.Format(time.Stamp), f.ClientIP, f.Latency, f.Request.Proto, f.Method, statusColor(f.StatusCode), f.StatusCode, "\x1b[0m", f.Path, ) }, }
LoggerConfig is a config for gin loggers that has cleaner output
Functions ¶
func ListDiscussions ¶
func ListDiscussions(db *sqlx.DB) gin.HandlerFunc
ListDiscussions returns a handlerfunc that lists discussions. Depends on "limit" and "offset" being set from middleware.
func ListExams ¶
func ListExams(db *sqlx.DB) gin.HandlerFunc
ListExams returns a handlerfunc that lists exams. Depends on "limit" and "offset" being set from middleware.
func ListInstructors ¶
func ListInstructors(db *sqlx.DB) gin.HandlerFunc
ListInstructors returns a handler func that lists the isntructors in the database. Requires that limit and offset have been set in middleware before this is called.
func ListLabs ¶
func ListLabs(db *sqlx.DB) gin.HandlerFunc
ListLabs returns a handlerfunc that lists labs. Depends on "limit" and "offset" being set from middleware.
func ListLectures ¶
ListLectures returns a handlerfunc that lists lectures. Depends on "limit" and "offset" being set from middleware.
Types ¶
type App ¶
type App struct { DB *sqlx.DB Config *Config Engine *gin.Engine RateStore limiter.Store Protected gin.HandlerFunc // contains filtered or unexported fields }
App is the main app
func (*App) CreateUser ¶
CreateUser stores a user in the database and sets its private variables
func (*App) GetInstructor ¶
func (a *App) GetInstructor(id interface{}) (*models.Instructor, error)
GetInstructor will get an instructor by id
func (*App) NewJWTAuth ¶
func (a *App) NewJWTAuth() (*ginjwt.GinJWTMiddleware, error)
NewJWTAuth creates the default jwt auth middleware
func (*App) RegisterRoutes ¶
func (a *App) RegisterRoutes(g *gin.RouterGroup)
RegisterRoutes will setup all the app routes
func (*App) SilentCreateUser ¶
SilentCreateUser will create a new user without writing to the response body
type Config ¶
type Config struct { Host string `config:"host,shorthand=H,usage=server host" default:"0.0.0.0"` Port int64 `config:"port,shorthand=P,usage=server port" default:"8080"` Mode string `config:"mode,usage=set the gin mode ('debug'|'release')" default:"debug"` Secret string `config:"secret,notflag" env:"JWT_SECRET"` Database DatabaseConfig `config:"db" yaml:"db"` InMemoryRateStore bool `config:"in_memory_rate_store" yaml:"in_memory_rate_store" default:"true"` }
Config is the application config struct
type DatabaseConfig ¶
type DatabaseConfig struct { Driver string `config:"driver,usage=database driver name"` Host string `config:"host,shorthand=h" default:"localhost"` Port int `config:"port,shorthand=p" default:"5432" env:"POSTGRES_PORT"` User string `config:"user,shorthand=U"` Password string `config:"password" env:"POSTGRES_PASSWORD"` // Database name or database filename Name string `config:"name,shorthand=d,usage=name of the database"` SSL string `config:"ssl" default:"disable"` }
DatabaseConfig is the part of the config struct that handles database info
func (*DatabaseConfig) GetDSN ¶
func (dbc *DatabaseConfig) GetDSN() string
GetDSN builds the database dns from the database config parameters