0

Return Status And Message Field as default fields without explicitly querying for both fields.

Hi, I have been looking through stack overflow for answers but I was unable to find any. Here is my registration model:

export const Register = objectType({
  name: 'Register',
  "nonNullDefaults": {
    output: true,
  },
  definition(t) {
    t.string('status');
    t.string('message');
    t.string('authToken');
    t.string('refreshToken');
  },
});

Below is the resolver for registration

export const RegisterMutation = extendType({
  "type": "Mutation",
  definition (objectType) {
    objectType.field(
      "register",
      {
        type: "Register",
        args: {
          name: stringArg(),
          email: stringArg(),
          password: stringArg(),
          accessToken: stringArg()
        },
        async resolve(_parent, args) {

          const { name, email, password, accessToken } = args;

          const hash = password? await bcrypt.hash(password, 5): '';
          const user = await createUser(name, email, hash, accessToken);
          const authToken = user? await createToken(user) : "";
          const refreshToken = user ? await createToken(user, tokenType.refresh) : "";
          const successPayload = {
            "status": "success",
            "message": "User created successfully",
            authToken,
            refreshToken
          }
          // console.log(user)
          return user ? successPayload : {
            "status": "failed",
            "message": "User not created",
            authToken,
            refreshToken
          }
        }
      }
    );
  }
});
Syed Huzaifa Hassan
  • 776
  • 1
  • 6
  • 22

0 Answers0