From d9465d93302853e17cbce5dc4347869ec5b89d4c Mon Sep 17 00:00:00 2001 From: Lukas Bachschwell Date: Thu, 15 Nov 2018 18:10:24 +0100 Subject: [PATCH] More context data for api calls --- controllers/baseAPI.go | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/controllers/baseAPI.go b/controllers/baseAPI.go index 461b2c8..5d49b28 100644 --- a/controllers/baseAPI.go +++ b/controllers/baseAPI.go @@ -3,10 +3,11 @@ package controllers import ( "database/sql" "fmt" + "multitenantStack/models" companydb "multitenantStack/services/companydb" + "time" "github.com/astaxie/beego/orm" - jwt "github.com/dgrijalva/jwt-go" ) // BaseAPIController operations for APIs @@ -14,7 +15,15 @@ type BaseAPIController struct { BaseController } -var jwtSession jwt.MapClaims +type SessionData struct { + Email string + CompanyName string + CompanyUserID int + Exp time.Time +} + +var jwtSession SessionData +var currentUser *models.CompanyUser var companyDB *sql.DB var o orm.Ormer @@ -36,7 +45,18 @@ func (c *BaseAPIController) Prepare() { return } - jwtSession = token + jwtSession.Email = token["email"].(string) + jwtSession.CompanyName = token["companyName"].(string) + jwtSession.CompanyUserID = token["companyUserID"].(int) + jwtSession.Exp = token["exp"].(time.Time) + + companyUser, err := models.GetCompanyUserById(o, int(jwtSession.CompanyUserID)) + if err != nil { + c.ServeJSONError("Error retrieving Company User") + return + } + currentUser = companyUser + companyDB = db o, err = orm.NewOrmWithDB("postgres", "company", companyDB) if err != nil {