1 00:00:01,230 --> 00:00:04,535 So before moving on to implementing 2 00:00:04,535 --> 00:00:07,060 some more API features, let's now very quickly import 3 00:00:07,060 --> 00:00:09,120 the rest of our development data. 4 00:00:09,120 --> 00:00:11,913 So data on users, and on reviews. 5 00:00:13,520 --> 00:00:16,130 So, in our dev data folder, 6 00:00:16,130 --> 00:00:19,340 we already imported all the tours, right? 7 00:00:19,340 --> 00:00:23,920 But, we also have a users, and we also have reviews, okay? 8 00:00:23,920 --> 00:00:27,360 So, I have created a bunch of users for us to work with 9 00:00:27,360 --> 00:00:29,200 throughout the rest of the course, 10 00:00:29,200 --> 00:00:33,110 so all of these, I think it's about 20 users, 11 00:00:33,110 --> 00:00:36,400 and then also a bunch of reviews, okay. 12 00:00:36,400 --> 00:00:39,840 And so, all we need to do now is to basically update 13 00:00:39,840 --> 00:00:44,840 or import dev data script, so basically duplicate this here. 14 00:00:46,470 --> 00:00:50,200 So, tours will become users, 15 00:00:50,200 --> 00:00:54,860 and here tours will become reviews. 16 00:00:54,860 --> 00:00:57,793 Then, we also need to import the other two models, 17 00:01:01,770 --> 00:01:04,423 so review, and here as well. 18 00:01:13,290 --> 00:01:15,683 Now all right, and now then here, 19 00:01:16,750 --> 00:01:20,393 also, basically duplicate this, user, 20 00:01:23,500 --> 00:01:24,843 and review. 21 00:01:28,900 --> 00:01:29,733 All right. 22 00:01:30,960 --> 00:01:35,410 And that should probably do with the job, all right. 23 00:01:35,410 --> 00:01:39,160 So, let's go to our other terminal window here, clear this, 24 00:01:39,160 --> 00:01:42,173 and actually the last operation that we did was this one. 25 00:01:43,090 --> 00:01:45,853 So, we need to start by deleting everything we have. 26 00:01:48,070 --> 00:01:51,663 Oh, and I see now that we actually only deleted the tours. 27 00:01:52,570 --> 00:01:54,660 All right, and so we also want to get rid 28 00:01:54,660 --> 00:01:57,600 of all the current users that we have right now 29 00:01:57,600 --> 00:02:02,523 because they are really all just test users, all right. 30 00:02:03,770 --> 00:02:06,440 And the same of course goes for reviews. 31 00:02:06,440 --> 00:02:07,533 So, a gift is a save, 32 00:02:09,090 --> 00:02:11,403 and now deleting all of them, 33 00:02:12,660 --> 00:02:15,223 just taking a quick look into Compass, 34 00:02:16,680 --> 00:02:19,130 and so you see that, indeed, all the users are gone, 35 00:02:19,130 --> 00:02:22,623 and so the same should be true for the other collections. 36 00:02:24,260 --> 00:02:26,470 All right, and so now let's go ahead 37 00:02:26,470 --> 00:02:28,500 and import all of the data. 38 00:02:28,500 --> 00:02:30,500 That's gonna take a little bit of time, 39 00:02:30,500 --> 00:02:34,370 and now, we get this validation error here. 40 00:02:34,370 --> 00:02:37,470 Okay, so please confirm your password. 41 00:02:37,470 --> 00:02:40,770 And so, that's basically because we're creating a new user 42 00:02:40,770 --> 00:02:44,353 without specifying the password confirm property. 43 00:02:45,680 --> 00:02:49,140 So, the solution to that is to actually explicitly turn off 44 00:02:49,140 --> 00:02:52,420 the validation in this case, okay? 45 00:02:52,420 --> 00:02:55,160 And, I'm not sure if we have done that before, 46 00:02:55,160 --> 00:02:57,480 but it's actually very easy. 47 00:02:57,480 --> 00:02:59,730 Okay, so all we need to do is to pass in 48 00:02:59,730 --> 00:03:02,370 an additional object with some options, 49 00:03:02,370 --> 00:03:04,260 and actually in this case, just one. 50 00:03:04,260 --> 00:03:07,567 And, the option that we want is validateBeforeSave, 51 00:03:10,790 --> 00:03:13,040 and set it to false. 52 00:03:13,040 --> 00:03:16,080 Okay, and so with this, all of the validation that we do 53 00:03:16,080 --> 00:03:19,790 in the model will basically just be skipped, okay? 54 00:03:19,790 --> 00:03:21,780 Also, another thing that we need to do 55 00:03:21,780 --> 00:03:24,790 in the model is to turn off the password encryption 56 00:03:26,310 --> 00:03:29,360 because the users that we provide already have 57 00:03:29,360 --> 00:03:31,620 an encrypted password here, all right. 58 00:03:31,620 --> 00:03:34,690 And so, here in our user model, 59 00:03:34,690 --> 00:03:37,770 we now basically just need to comment out 60 00:03:37,770 --> 00:03:38,920 all of these (mumbles). 61 00:03:41,356 --> 00:03:42,340 Okay, and so now, 62 00:03:42,340 --> 00:03:46,030 the password encryption step is also gonna be skipped. 63 00:03:46,030 --> 00:03:47,380 So, we'll give this a save, 64 00:03:48,870 --> 00:03:53,573 and now lets, actually, first of all, delete the data again, 65 00:03:55,230 --> 00:03:57,990 just so we don't create any duplicates, 66 00:03:57,990 --> 00:04:02,890 and now let's try it again with import, and yeah. 67 00:04:02,890 --> 00:04:05,750 This time we didn't get any error, 68 00:04:05,750 --> 00:04:07,950 and so let's take a look at that in Compass, 69 00:04:12,620 --> 00:04:14,103 so we have all the users, 70 00:04:15,520 --> 00:04:17,853 we should have all natours as well. 71 00:04:19,490 --> 00:04:23,790 And, indeed, here they are, and also a couple of reviews. 72 00:04:23,790 --> 00:04:27,530 And, you'll see 60 reviews actually I created, okay? 73 00:04:27,530 --> 00:04:28,670 And let's just confirm 74 00:04:28,670 --> 00:04:32,150 that the passwords for users were not encrypted, 75 00:04:32,150 --> 00:04:35,780 so I'm just copying this one here, just this entire line. 76 00:04:35,780 --> 00:04:36,880 Oh, that doesn't work. 77 00:04:38,160 --> 00:04:39,960 So, let's just copy this string here 78 00:04:41,000 --> 00:04:43,950 and then compare with the one we have in our adjacent file. 79 00:04:47,600 --> 00:04:49,083 So, just the first one here, 80 00:04:50,070 --> 00:04:53,060 and yeah, indeed, you see that it looks 81 00:04:53,060 --> 00:04:56,220 exactly the same as this one, right? 82 00:04:56,220 --> 00:04:57,770 And so, just as we wanted, 83 00:04:57,770 --> 00:04:59,920 the passwords were not encrypted this time. 84 00:05:01,350 --> 00:05:04,260 Okay, so let's close all of this, 85 00:05:04,260 --> 00:05:08,010 make sure to remove the comments that we now put here, 86 00:05:08,010 --> 00:05:09,270 so that in the future of course, 87 00:05:09,270 --> 00:05:13,140 new users will then get their passwords encrypted properly. 88 00:05:13,140 --> 00:05:16,500 So, save this, and now I want to quickly take a look 89 00:05:16,500 --> 00:05:17,703 at the data here. 90 00:05:19,290 --> 00:05:21,850 So, in Postman, and the first thing 91 00:05:21,850 --> 00:05:25,323 that I want to do is to actually log in as an administrator. 92 00:05:28,740 --> 00:05:33,740 All right, so let's take a look at the email address, 93 00:05:33,820 --> 00:05:38,233 and so you see it's actually admin@natours.io, okay? 94 00:05:39,190 --> 00:05:42,650 And, of course the password, we cannot retrieve from here, 95 00:05:42,650 --> 00:05:47,460 but I know, of course, what password I specified, 96 00:05:47,460 --> 00:05:48,893 and so we can use that. 97 00:05:49,933 --> 00:05:50,766 And so, the password 98 00:05:50,766 --> 00:05:54,443 for all of the users here is always test1234, okay? 99 00:05:59,490 --> 00:06:01,320 So, that worked. 100 00:06:01,320 --> 00:06:04,530 So, again for all of the 20 users that I created, 101 00:06:04,530 --> 00:06:08,710 the password is always the same, always test1234. 102 00:06:08,710 --> 00:06:12,403 Great, now let's quickly get all tours here as well. 103 00:06:15,090 --> 00:06:20,090 And so, let's actually just remove this filter here. 104 00:06:23,560 --> 00:06:26,000 Okay, and so we get all our natours, 105 00:06:26,000 --> 00:06:29,830 and now you see that all of them now will have guides. 106 00:06:29,830 --> 00:06:33,253 Okay, so this is a lead guide and a normal guide, 107 00:06:34,820 --> 00:06:38,183 and also all of them will have a bunch of reviews. 108 00:06:39,470 --> 00:06:42,310 Somewhere, so that should be here, 109 00:06:42,310 --> 00:06:44,920 but I believe we only populated the reviews 110 00:06:44,920 --> 00:06:46,523 when we get just one tour, 111 00:06:47,460 --> 00:06:49,560 so that's try that here with the (mumbles). 112 00:06:50,510 --> 00:06:54,233 So, I copied the ID so that I can now put it in here. 113 00:06:55,640 --> 00:06:56,733 Let's send that, 114 00:06:58,110 --> 00:07:01,160 so the guides' locations, 115 00:07:01,160 --> 00:07:03,363 and indeed, now we get all of the reviews. 116 00:07:04,220 --> 00:07:06,900 And of course, just like we configured before 117 00:07:06,900 --> 00:07:09,547 here then the user also gets populated, 118 00:07:09,547 --> 00:07:10,803 and the tour does not. 119 00:07:12,100 --> 00:07:14,140 So, everything still works the same, 120 00:07:14,140 --> 00:07:17,460 but now we have a bunch of more real world data 121 00:07:17,460 --> 00:07:19,780 that we can now start working with 122 00:07:19,780 --> 00:07:21,480 throughout the rest of the course.