‫So before moving on to implementing
‫some more API features, let's now very quickly import
‫the rest of our development data.
‫So data on users, and on reviews.
‫So, in our dev data folder,
‫we already imported all the tours, right?
‫But, we also have a users, and we also have reviews, okay?
‫So, I have created a bunch of users for us to work with
‫throughout the rest of the course,
‫so all of these, I think it's about 20 users,
‫and then also a bunch of reviews, okay.
‫And so, all we need to do now is to basically update
‫or import dev data script, so basically duplicate this here.
‫So, tours will become users,
‫and here tours will become reviews.
‫Then, we also need to import the other two models,
‫so review, and here as well.
‫Now all right, and now then here,
‫also, basically duplicate this, user,
‫and review.
‫All right.
‫And that should probably do with the job, all right.
‫So, let's go to our other terminal window here, clear this,
‫and actually the last operation that we did was this one.
‫So, we need to start by deleting everything we have.
‫Oh, and I see now that we actually only deleted the tours.
‫All right, and so we also want to get rid
‫of all the current users that we have right now
‫because they are really all just test users, all right.
‫And the same of course goes for reviews.
‫So, a gift is a save,
‫and now deleting all of them,
‫just taking a quick look into Compass,
‫and so you see that, indeed, all the users are gone,
‫and so the same should be true for the other collections.
‫All right, and so now let's go ahead
‫and import all of the data.
‫That's gonna take a little bit of time,
‫and now, we get this validation error here.
‫Okay, so please confirm your password.
‫And so, that's basically because we're creating a new user
‫without specifying the password confirm property.
‫So, the solution to that is to actually explicitly turn off
‫the validation in this case, okay?
‫And, I'm not sure if we have done that before,
‫but it's actually very easy.
‫Okay, so all we need to do is to pass in
‫an additional object with some options,
‫and actually in this case, just one.
‫And, the option that we want is validateBeforeSave,
‫and set it to false.
‫Okay, and so with this, all of the validation that we do
‫in the model will basically just be skipped, okay?
‫Also, another thing that we need to do
‫in the model is to turn off the password encryption
‫because the users that we provide already have
‫an encrypted password here, all right.
‫And so, here in our user model,
‫we now basically just need to comment out
‫all of these (mumbles).
‫Okay, and so now,
‫the password encryption step is also gonna be skipped.
‫So, we'll give this a save,
‫and now lets, actually, first of all, delete the data again,
‫just so we don't create any duplicates,
‫and now let's try it again with import, and yeah.
‫This time we didn't get any error,
‫and so let's take a look at that in Compass,
‫so we have all the users,
‫we should have all natours as well.
‫And, indeed, here they are, and also a couple of reviews.
‫And, you'll see 60 reviews actually I created, okay?
‫And let's just confirm
‫that the passwords for users were not encrypted,
‫so I'm just copying this one here, just this entire line.
‫Oh, that doesn't work.
‫So, let's just copy this string here
‫and then compare with the one we have in our adjacent file.
‫So, just the first one here,
‫and yeah, indeed, you see that it looks
‫exactly the same as this one, right?
‫And so, just as we wanted,
‫the passwords were not encrypted this time.
‫Okay, so let's close all of this,
‫make sure to remove the comments that we now put here,
‫so that in the future of course,
‫new users will then get their passwords encrypted properly.
‫So, save this, and now I want to quickly take a look
‫at the data here.
‫So, in Postman, and the first thing
‫that I want to do is to actually log in as an administrator.
‫All right, so let's take a look at the email address,
‫and so you see it's actually admin@natours.io, okay?
‫And, of course the password, we cannot retrieve from here,
‫but I know, of course, what password I specified,
‫and so we can use that.
‫And so, the password
‫for all of the users here is always test1234, okay?
‫So, that worked.
‫So, again for all of the 20 users that I created,
‫the password is always the same, always test1234.
‫Great, now let's quickly get all tours here as well.
‫And so, let's actually just remove this filter here.
‫Okay, and so we get all our natours,
‫and now you see that all of them now will have guides.
‫Okay, so this is a lead guide and a normal guide,
‫and also all of them will have a bunch of reviews.
‫Somewhere, so that should be here,
‫but I believe we only populated the reviews
‫when we get just one tour,
‫so that's try that here with the (mumbles).
‫So, I copied the ID so that I can now put it in here.
‫Let's send that,
‫so the guides' locations,
‫and indeed, now we get all of the reviews.
‫And of course, just like we configured before
‫here then the user also gets populated,
‫and the tour does not.
‫So, everything still works the same,
‫but now we have a bunch of more real world data
‫that we can now start working with
‫throughout the rest of the course.