is-registered-1

This commit is contained in:
Untone 2024-01-05 14:58:16 +03:00
parent 58a91814ae
commit dd4b41674a
3 changed files with 50 additions and 0 deletions

View File

@ -610,6 +610,7 @@ input GetUserRequest {
}
type Mutation {
is_registered(email: String): AuthResponse! # custom api
signup(params: SignUpInput!): AuthResponse!
# Deprecated from v1.2.0
mobile_signup(params: MobileSignUpInput): AuthResponse!

View File

@ -12,6 +12,11 @@ import (
"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.
func (r *mutationResolver) Signup(ctx context.Context, params model.SignUpInput) (*model.AuthResponse, error) {
return resolvers.SignupResolver(ctx, params)

View 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
}