Advertisement
Guest User

Untitled

a guest
Mar 3rd, 2019
243
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. exports.addUser = async function addUser(name, email, password) {
  2.   const client = await db.loadUsersCollection();
  3.   const validatedName = validateAuth.validateName(name);
  4.   const validatedEmail = validateAuth.validateEmail(email);
  5.   const validatedPassword = validateAuth.validatePassword(password);
  6.   const session = client.startSession();
  7.   session.startTransaction();
  8.   const userCollection = client.db('recruitment').collection('recruitment');
  9.   try{
  10.     const opts = { session, returnOriginal: false };
  11.     const result = await userCollection.insertOne({ name: validatedName, email: validatedEmail, password: validatedPassword, role: 'applicant' }, opts);
  12.     await session.commitTransaction().then((data) => console.log(data));
  13.     session.endSession();
  14.     return result.ops[0]._id;
  15.   }catch(error){
  16.     await session.abortTransaction().then((data) => {
  17.       console.log("Transaction error: " + data);
  18.     }).catch((error) => {
  19.       console.log("Transaction error: " + error);
  20.     });
  21.     session.endSession();
  22.     if(error.code == 11000){
  23.       console.log("Duplicate user: " + error);
  24.     }
  25.   }
  26. }
  27.  
  28. #####DB#####
  29. exports.loadUsersCollection = async function loadUsersCollection() {
  30.   const fn = async function () {
  31.     const client = await mongodb.MongoClient.connect(' mongodb://IV1201:IV1201@recruitment-shard-00-00-gxbqo.mongodb.net:27017,recruitment-shard-00-01-gxbqo.mongodb.net:27017,recruitment-shard-00-02-gxbqo.mongodb.net:27017/test?ssl=true&replicaSet=recruitment-shard-0&authSource=admin&retryWrites=true', {
  32.       useNewUrlParser: true,
  33.       replicaSet: 'recruitment-shard-0'
  34.     });
  35.     //const db = client.db('recruitment');
  36.     return client;
  37.   }
  38.   return await retry(fn, MAX_RETRIES, MONGO_NETWORK_ERROR, ERROR_MESSAGE);
  39. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement