web

package
v0.0.0-...-57178c3 Latest Latest
Warning

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

Go to latest
Published: Feb 10, 2021 License: ISC Imports: 23 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var CustomJaf = func(f http.HandlerFunc, v func(r *http.Request) string) http.HandlerFunc {
	return func(ja *jwtauth.JWTAuth) func(http.Handler) http.Handler {
		return func(next http.Handler) http.Handler {
			return jwtauth.Verify(ja, v)(next)
		}
	}(internal.Token.EmailVerify)(f).ServeHTTP
}

CustomJaf executes a custom function to retrieve the JWT token This is necessary when the token is in a URL parameter instead of a cookie

Functions

func AccountContext

func AccountContext(r *http.Request) (*models.Account, error)

AccountContext retrieves the account from the validated context Returns empty account if not found

func AccountFromToken

func AccountFromToken(db *gorm.DB, r *http.Request) (*models.Account, error)

AccountFromToken retrieves an account from a token

func CreateAccount

func CreateAccount(db *gorm.DB, acc *models.Account) error

CreateAccount registers a new user

func CreateClip

func CreateClip(db *gorm.DB, clip *models.Clip) error

CreateClip creates a clip with labels

func CreateLabel

func CreateLabel(db *gorm.DB, lbl models.Label) error

CreateLabel adds a new clip label

func CreateTemplate

func CreateTemplate(db *gorm.DB, accountID string, template *models.Template) error

CreateTemplate creates a template

func Db

func Db(f func(w http.ResponseWriter, r *http.Request, db *gorm.DB)) http.HandlerFunc

Db wraps a http func with a db struct

func DelTemplate

func DelTemplate(w http.ResponseWriter, r *http.Request, db *gorm.DB)

DelTemplate removes an existing template

func DeleteLabels

func DeleteLabels(db *gorm.DB, lbl models.Label) error

DeleteLabels deletes multiple labels TODO: not happy with this

func DeleteTemplate

func DeleteTemplate(db *gorm.DB, tpl *models.Template) error

DeleteTemplate deletes a template

func DeprecateTemplate

func DeprecateTemplate(db *gorm.DB, tpl *models.Template) error

DeprecateTemplate deletes a template

func GetAccount

func GetAccount(w http.ResponseWriter, r *http.Request, db *gorm.DB)

GetAccount views account information

func GetClip

func GetClip(w http.ResponseWriter, r *http.Request, db *gorm.DB)

GetClip retrieves information about a single clip

func GetClips

func GetClips(w http.ResponseWriter, r *http.Request, db *gorm.DB)

GetClips retrieves information about all user clips

func GetClipsDump

func GetClipsDump(w http.ResponseWriter, r *http.Request, db *gorm.DB)

GetClipsDump retrieves information about all clips

func GetFeedbackClip

func GetFeedbackClip(w http.ResponseWriter, r *http.Request, db *gorm.DB)

GetFeedbackClip returns an audio file for a given recording

func GetFeedbackList

func GetFeedbackList(w http.ResponseWriter, r *http.Request, db *gorm.DB)

GetFeedbackList returns an instrument and list of recordings based on user preferences

func GetPlaylist

func GetPlaylist(w http.ResponseWriter, r *http.Request, db *gorm.DB)

GetPlaylist retrieves information about a single playlist

func GetPlaylistStatus

func GetPlaylistStatus(w http.ResponseWriter, r *http.Request, db *gorm.DB)

GetPlaylistStatus retrieves information about a playlist being generated

func GetRecordingLabels

func GetRecordingLabels(db *gorm.DB, recordingID string, opener int, closer int) (interface{}, error)

GetRecordingLabels retrieves labels for a template

func GetTemplate

func GetTemplate(w http.ResponseWriter, r *http.Request, db *gorm.DB)

GetTemplate retrieves information about a single template

func GetTemplateLabel

func GetTemplateLabel(db *gorm.DB, templateID string, number int) (interface{}, error)

GetTemplateLabel retrieves labels for a template

func GetTemplates

func GetTemplates(w http.ResponseWriter, r *http.Request, db *gorm.DB)

GetTemplates retrieves information about all user templates

func IndexHandler

func IndexHandler(entrypoint string) func(w http.ResponseWriter, r *http.Request)

IndexHandler handles the main index file

func LoginAccount

func LoginAccount(w http.ResponseWriter, r *http.Request, db *gorm.DB)

LoginAccount creates a new account session

func MetricsMiddleware

func MetricsMiddleware(next http.Handler) http.Handler

MetricsMiddleware wraps http methods for instrumentation

func NewCookie

func NewCookie(acc *models.Account) (http.Cookie, error)

NewCookie generates a cookie for given account

func NewRouter

func NewRouter() *mux.Router

NewRouter returns a router

func PostClip

func PostClip(w http.ResponseWriter, r *http.Request, db *gorm.DB)

PostClip uploads a clip to the database

func PostLabels

func PostLabels(w http.ResponseWriter, r *http.Request, db *gorm.DB)

PostLabels uploads a label to the database

func PostPlaylist

func PostPlaylist(w http.ResponseWriter, r *http.Request, db *gorm.DB)

PostPlaylist creates a new playlist

func PostTemplate

func PostTemplate(w http.ResponseWriter, r *http.Request, db *gorm.DB)

PostTemplate creates a new template

func PutClip

func PutClip(w http.ResponseWriter, r *http.Request, db *gorm.DB)

PutClip updates an existing clip and its labels

func RegisterAccount

func RegisterAccount(w http.ResponseWriter, r *http.Request, db *gorm.DB)

RegisterAccount creates a new account

func SaveClip

func SaveClip(db *gorm.DB, clip *models.Clip) error

SaveClip adds a new template to the database

func SaveLabel

func SaveLabel(db *gorm.DB, lbl models.Label) error

SaveLabel adds a new clip label

func SaveTemplate

func SaveTemplate(db *gorm.DB, oldTpl, newTpl *models.Template) error

SaveTemplate updates a template

func SendVerifyEmail

func SendVerifyEmail(user *models.Account)

SendVerifyEmail sends a verification email

func SetWindows

func SetWindows(db *gorm.DB, cl *models.Clip)

SetWindows sets the labels

func Token

func Token(acc *models.Account, jwtKind *jwtauth.JWTAuth) (string, error)

Token returns a new JWT token using the specified jwt secret type

func TokenFromVerifyQuery

func TokenFromVerifyQuery(r *http.Request) string

TokenFromVerifyQuery returns the query value for the "verify" key

func UpdateClip

func UpdateClip(db *gorm.DB, clip *models.Clip) error

UpdateClip updates a clip

func UpdateTemplate

func UpdateTemplate(w http.ResponseWriter, r *http.Request, db *gorm.DB)

UpdateTemplate updates an existing playlist

func VerifyAccount

func VerifyAccount(w http.ResponseWriter, r *http.Request, db *gorm.DB)

VerifyAccount views account information

func VerifyUser

func VerifyUser(db *gorm.DB, user *models.Account) error

VerifyUser registers a new user

Types

type Routes

type Routes struct {
	Db *gorm.DB
}

Routes wraps a database connection

func (*Routes) Jaf

func (routes *Routes) Jaf(f http.HandlerFunc) http.HandlerFunc

Jaf contains the standard jawauth to retrieve the JWT token

func (*Routes) MaybeSetToken

func (routes *Routes) MaybeSetToken(r *http.Request) error

MaybeSetToken tries to set account context if a token is found and the token is valid, otherwise it does nothing.

func (*Routes) Optional

func (routes *Routes) Optional(f http.HandlerFunc) http.HandlerFunc

Optional allows auth, but doesn't require it

func (*Routes) Valid

func (routes *Routes) Valid(f http.HandlerFunc, require bool) http.HandlerFunc

Valid continues only if token is valid This does a quick inspection to ensure the basic parameters of the token are valid

Jump to

Keyboard shortcuts

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