package resolvers import ( "context" log "github.com/sirupsen/logrus" "github.com/authorizerdev/authorizer/server/constants" "github.com/authorizerdev/authorizer/server/graph/model" "github.com/authorizerdev/authorizer/server/memorystore" ) // MetaResolver is a resolver for meta query func MetaResolver(ctx context.Context) (*model.Meta, error) { clientID, err := memorystore.Provider.GetStringStoreEnvVariable(constants.EnvKeyClientID) if err != nil { return nil, err } googleClientID, err := memorystore.Provider.GetStringStoreEnvVariable(constants.EnvKeyGoogleClientID) if err != nil { log.Debug("Failed to get Google Client ID from environment variable", err) googleClientID = "" } googleClientSecret, err := memorystore.Provider.GetStringStoreEnvVariable(constants.EnvKeyGoogleClientSecret) if err != nil { log.Debug("Failed to get Google Client Secret from environment variable", err) googleClientSecret = "" } facebookClientID, err := memorystore.Provider.GetStringStoreEnvVariable(constants.EnvKeyFacebookClientID) if err != nil { log.Debug("Failed to get Facebook Client ID from environment variable", err) facebookClientID = "" } facebookClientSecret, err := memorystore.Provider.GetStringStoreEnvVariable(constants.EnvKeyFacebookClientSecret) if err != nil { log.Debug("Failed to get Facebook Client Secret from environment variable", err) facebookClientSecret = "" } linkedClientID, err := memorystore.Provider.GetStringStoreEnvVariable(constants.EnvKeyLinkedInClientID) if err != nil { log.Debug("Failed to get Facebook Client ID from environment variable", err) linkedClientID = "" } linkedInClientSecret, err := memorystore.Provider.GetStringStoreEnvVariable(constants.EnvKeyLinkedInClientSecret) if err != nil { log.Debug("Failed to get Facebook Client Secret from environment variable", err) linkedInClientSecret = "" } githubClientID, err := memorystore.Provider.GetStringStoreEnvVariable(constants.EnvKeyGithubClientID) if err != nil { log.Debug("Failed to get Github Client ID from environment variable", err) githubClientID = "" } githubClientSecret, err := memorystore.Provider.GetStringStoreEnvVariable(constants.EnvKeyGithubClientSecret) if err != nil { log.Debug("Failed to get Github Client Secret from environment variable", err) githubClientSecret = "" } isBasicAuthDisabled, err := memorystore.Provider.GetBoolStoreEnvVariable(constants.EnvKeyDisableBasicAuthentication) if err != nil { log.Debug("Failed to get Disable Basic Authentication from environment variable", err) isBasicAuthDisabled = true } isEmailVerificationDisabled, err := memorystore.Provider.GetBoolStoreEnvVariable(constants.EnvKeyDisableEmailVerification) if err != nil { log.Debug("Failed to get Disable Email Verification from environment variable", err) isEmailVerificationDisabled = true } isMagicLinkLoginDisabled, err := memorystore.Provider.GetBoolStoreEnvVariable(constants.EnvKeyDisableMagicLinkLogin) if err != nil { log.Debug("Failed to get Disable Magic Link Login from environment variable", err) isMagicLinkLoginDisabled = true } isSignUpDisabled, err := memorystore.Provider.GetBoolStoreEnvVariable(constants.EnvKeyDisableSignUp) if err != nil { log.Debug("Failed to get Disable Signup from environment variable", err) isSignUpDisabled = true } metaInfo := model.Meta{ Version: constants.VERSION, ClientID: clientID, IsGoogleLoginEnabled: googleClientID != "" && googleClientSecret != "", IsGithubLoginEnabled: githubClientID != "" && githubClientSecret != "", IsFacebookLoginEnabled: facebookClientID != "" && facebookClientSecret != "", IsLinkedinLoginEnabled: linkedClientID != "" && linkedInClientSecret != "", IsBasicAuthenticationEnabled: !isBasicAuthDisabled, IsEmailVerificationEnabled: !isEmailVerificationDisabled, IsMagicLinkLoginEnabled: !isMagicLinkLoginDisabled, IsSignUpEnabled: !isSignUpDisabled, } return &metaInfo, nil }