package context import ( "strings" "git.supernets.org/perp/gopay/internal/jwt" ) // Get an account from token header func (ctx *Context) GetAccount() { // Get header header := ctx.GetHeader("Authorization") // Split value split := strings.Split(header, " ") // No bearer found if len(split) != 2 { ctx.Error(400, "MissingToken") return } // Decode token token, err := jwt.Decode(split[1]) if err != nil { ctx.Error(400, "InvalidToken") return } // Select account account, err := ctx.Database.Account.SelectByID(token.ID) if err != nil { ctx.Error(500, "InternalServerError") return } // Set account ctx.Account = account }