authorizer/server/resolvers/profile.go

48 lines
997 B
Go
Raw Normal View History

package resolvers
import (
"context"
"fmt"
2021-07-23 16:27:44 +00:00
"github.com/authorizerdev/authorizer/server/db"
"github.com/authorizerdev/authorizer/server/graph/model"
"github.com/authorizerdev/authorizer/server/session"
"github.com/authorizerdev/authorizer/server/utils"
)
2022-01-17 06:02:13 +00:00
// ProfileResolver is a resolver for profile query
func ProfileResolver(ctx context.Context) (*model.User, error) {
gc, err := utils.GinContextFromContext(ctx)
var res *model.User
if err != nil {
return res, err
}
token, err := utils.GetAuthToken(gc)
if err != nil {
return res, err
}
claim, err := utils.VerifyAuthToken(token)
if err != nil {
return res, err
}
userID := fmt.Sprintf("%v", claim["id"])
email := fmt.Sprintf("%v", claim["email"])
2022-01-17 06:02:13 +00:00
sessionToken := session.GetUserSession(userID, token)
if sessionToken == "" {
return res, fmt.Errorf(`unauthorized`)
}
user, err := db.Mgr.GetUserByEmail(email)
if err != nil {
return res, err
}
2021-12-24 01:05:02 +00:00
res = utils.GetResponseUserData(user)
return res, nil
}