is-registered-1
This commit is contained in:
parent
58a91814ae
commit
dd4b41674a
|
@ -610,6 +610,7 @@ input GetUserRequest {
|
||||||
}
|
}
|
||||||
|
|
||||||
type Mutation {
|
type Mutation {
|
||||||
|
is_registered(email: String): AuthResponse! # custom api
|
||||||
signup(params: SignUpInput!): AuthResponse!
|
signup(params: SignUpInput!): AuthResponse!
|
||||||
# Deprecated from v1.2.0
|
# Deprecated from v1.2.0
|
||||||
mobile_signup(params: MobileSignUpInput): AuthResponse!
|
mobile_signup(params: MobileSignUpInput): AuthResponse!
|
||||||
|
|
|
@ -12,6 +12,11 @@ import (
|
||||||
"github.com/authorizerdev/authorizer/server/resolvers"
|
"github.com/authorizerdev/authorizer/server/resolvers"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Signup is the resolver for the signup field.
|
||||||
|
func (r *queryResolver) IsRegistered(ctx context.Context, email string) (*model.AuthResponse, error) {
|
||||||
|
return resolvers.IsRegisteredResolver(ctx, email)
|
||||||
|
}
|
||||||
|
|
||||||
// Signup is the resolver for the signup field.
|
// Signup is the resolver for the signup field.
|
||||||
func (r *mutationResolver) Signup(ctx context.Context, params model.SignUpInput) (*model.AuthResponse, error) {
|
func (r *mutationResolver) Signup(ctx context.Context, params model.SignUpInput) (*model.AuthResponse, error) {
|
||||||
return resolvers.SignupResolver(ctx, params)
|
return resolvers.SignupResolver(ctx, params)
|
||||||
|
|
44
server/resolvers/is_registered.go
Normal file
44
server/resolvers/is_registered.go
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
package resolvers
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"fmt"
|
||||||
|
"github.com/authorizerdev/authorizer/server/db"
|
||||||
|
"github.com/authorizerdev/authorizer/server/graph/model"
|
||||||
|
"github.com/authorizerdev/authorizer/server/refs"
|
||||||
|
log "github.com/sirupsen/logrus"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
|
// IsRegisteredResolver is a resolver for registered checkup query
|
||||||
|
func IsRegisteredResolver(ctx context.Context, email string) (*model.AuthResponse, error) {
|
||||||
|
var res *model.AuthResponse
|
||||||
|
email = strings.TrimSpace(refs.StringValue(&email))
|
||||||
|
if email == "" {
|
||||||
|
log.Debug("Email is required")
|
||||||
|
return res, fmt.Errorf(`email is required`)
|
||||||
|
}
|
||||||
|
|
||||||
|
log := log.WithField("email", email)
|
||||||
|
|
||||||
|
// find user with email
|
||||||
|
existingUser, err := db.Provider.GetUserByEmail(ctx, email)
|
||||||
|
if err != nil {
|
||||||
|
log.Debug("Failed to get user by email: ", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if existingUser != nil {
|
||||||
|
res.Message = "registered"
|
||||||
|
if existingUser.EmailVerifiedAt != nil {
|
||||||
|
res.Message = "verified"
|
||||||
|
log.Debug("Email is already verified and signed up.")
|
||||||
|
return res, fmt.Errorf(`%s has already signed up`, email)
|
||||||
|
} else if existingUser.ID != "" && existingUser.EmailVerifiedAt == nil {
|
||||||
|
res.Message = "not verified"
|
||||||
|
log.Debug("Email is already signed up. Verification pending...")
|
||||||
|
return res, fmt.Errorf("%s has already signed up. please complete the email verification process or reset the password", email)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return res, nil
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user