Writing a GraphQL resolver to add a user to MongoDB database

Viewed 69

I am trying to get a working GraphQL resolver in order to add a user to my MongoDB database. As it stands right now, my addUser mutation is not working, but my delete user is. I need help getting this mutation to work in a similar format as my deleteUser mutation works.

import { ObjectId } from "mongodb";
import { Database, User } from "../../../lib/types";


export const userResolvers: IResolvers = {
  Query: {
    users: async (_root: undefined, _args: {}, { db }: { db: Database }) => {
      return await db.users.find({}).toArray();
    }
  },
  Mutation: {
     addUser : async ({ db }: { db: Database },  fullName: string, email: string, phoneNumber: string, city: string  ) => {
      const user: User = 
        {
          _id: new ObjectId(),
          fullName: fullName,
          phoneNumber: phoneNumber,
          city: city,
          email:email,
  
        }
      const newUser = await db.users.insertOne(user);
      return newUser;
  },

    deleteUser: async (
      _root: undefined,
      { id }: { id: string },
      { db }: { db: Database }
    ) => {
      const deleteRes = await db.users.findOneAndDelete({
        _id: new ObjectId(id)
      });

      if (!deleteRes.value) {
        throw new Error("failed to delete user");
      }

      return deleteRes.value;
    }
  },
  User: {
    id: (user: User): string => user._id.toString()
  }
};```
0 Answers
Related