Auth Resolvers

Auth

File Name: auth.js

File Path: enatega-multivendor-api/graphql/resolvers/auth.js

Auth Resolver handles queries related to User it handles creating user, login, updating location, updating user, uploading user profile picture, handling user profile, handling admin login, getting all users, forgot password functionality and password reset functionality.

createUser

  • GraphQL Type: Mutation

  • Input Type or Parameters: userInput

Name

Type

Required

phone

String

false

email

String

true

password

String

false

name

String

false

picture

String

false

  • Description: Creates a new User with above mentioned parameters. Once a user is registered an account creation email is sent to the user. A token is also sent as a response with user id and user information.

  • Response Input Type or Response: AuthData

Name

Type

userId

ID

token

String

name

String

phone

String

email

String

picture

String

location

Location

  • Location Input Type: Location

Name

Type

longitude

String

latitude

String

delivery_address

String

login

  • GraphQL Type: Mutation

  • Input Type or Parameters

Name

Type

Required

email

String

true

password

String

false

type

String

true

  • Description: Logins a User with email and password. type flag is used to check if the user is using social auth for authentication for example google or facebook. The response is sent with AuthData input type.

  • Response Input Type or Response: AuthData

Name

Type

userId

ID

token

String

name

String

phone

String

email

String

picture

String

location

Location

  • Location Input Type: Location

Name

Type

longitude

String

latitude

String

delivery_address

String

updateLocation

  • GraphQL Type: Mutation

  • Input Type or Parameters: Location

Name

Type

Required

longitude

String

true

latitude

String

true

  • Description: Updates location of the user called when user resets app as a response user information is sent with location. User information is sent because update location is called every time app restarts. You might be wondering how did we get user data with this input parameters the reason is the app is configured with header parameters where a middleware is written to get user object from header authentication token. This middleware can be found at food-delivery-api/middleware/is-auth.js

  • Response Input Type or Response: User data and input type Location

Name

Type

_id

String

name

String

phone

String

email

String

location

Location

picture

String

  • Location Input Type: Location

Name

Type

longitude

String

latitude

String

delivery_address

String

updateUser

  • GraphQL Type: Mutation

  • Input Type or Parameters

Name

Type

Required

name

String

true

phone

String

true

delivery_address

String

true

  • Description: Updates User information

  • Response Input Type or Response: AuthData

Name

Type

name

ID

phone

String

delivery_address

Location

  • Location Input Type: Location

Name

Type

Required

longitude

String

true

latitude

String

true

delivery_address

String

false

uploadPicture

  • GraphQL Type: Mutation

  • Input Type or Parameters

Name

Type

Required

Upload

Scalar

true

  • Description: Uploads User profile picture in the settings screen the type for Upload is Scalar you can learn more about it by clicking here.

  • Response Input Type or Response: Input type User only picture field is queried from User

Name

Type

picture

String

profile

  • GraphQL Type: Query

  • Input Type or Parameters: No user parameters is needed as auth token is sent on every request

  • Description: Gets User profile.

  • Response Input Type or Response: AuthData

Name

Type

name

ID

phone

String

email

String

location

Location

picture

String

  • Location Input Type: Location

Name

Type

Required

longitude

String

true

latitude

String

true

delivery_address

String

false

adminLogin

  • GraphQL Type: Mutation

  • Input Type or Parameters

Name

Type

Required

email

String

true

password

String

true

  • Description: Login resolver for admin dashboard

  • Response Input Type or Response: Type Admin

Name

Type

userId

ID

name

String

email

String

token

String

pushToken

  • GraphQL Type: Mutation

  • Input Type or Parameters

Name

Type

Required

token

String

true

  • Description: When a token is sent user data can be queried

  • Response Input Type or Response: User

Name

Type

_id

ID

name

String

phone

String!

email

String!

password

String

payment_type

PaymentType!

card_information

CardInformation

location

Location

picture

String

likes

[Food!]!

orders

[Order!]!

is_active

Boolean!

createdAt

String!

updatedAt

String!

users

  • GraphQL Type: Query

  • Input Type or Parameters:

  • Description: All the users are retrieved queried from admin panel

  • Response Input Type or Response: [User]

Name

Type

_id

ID

name

String

phone

String

email

String

password

String

payment_type

PaymentType

card_information

CardInformation

location

Location

picture

String

likes

[Food!]!

orders

[Order!]!

is_active

Boolean

forgotPassword

  • GraphQL Type: Mutation

  • Input Type or Parameters

Name

Type

Required

email

String

true

  • Description: Sends a link with forgot password token in email to user

resetPassword

  • GraphQL Type: Mutation

  • Input Type or Parameters

Name

Type

Required

password

String

true

token

String

true

  • Description: Changes user password by verifying the token first

Last updated