1
00:00:00,840 --> 00:00:06,180
So in the last lecture, we identified one problem, and it's actually three problems, but the first

2
00:00:06,180 --> 00:00:07,980
one, the one we identified was here.

3
00:00:07,980 --> 00:00:14,070
When I'm on the reservation calendar, if I go to a reservation, not a booking or a block or whatever,

4
00:00:14,070 --> 00:00:19,350
but I go to an actual reservation or an actual booking and I try to market has processed, it will take

5
00:00:19,350 --> 00:00:21,180
me to a page not found.

6
00:00:21,780 --> 00:00:24,710
And that's because it's taking us to a route that doesn't exist.

7
00:00:25,410 --> 00:00:33,420
If you look in the reservations handler over here and we find the post reservation when we do our redirect

8
00:00:33,420 --> 00:00:40,170
at the bottom, we're always going to it's admin's reservations, Dasch, something SIRC and the Sarsae

9
00:00:40,410 --> 00:00:45,030
is actually grabbed from this part of the URL and there is no path.

10
00:00:45,540 --> 00:00:46,940
Admin's reservations.

11
00:00:46,950 --> 00:00:53,190
Dasch count now an easy fix and not a good one, but an easy fix would be to set up a new route that

12
00:00:53,190 --> 00:00:55,200
matches admin's reservations.

13
00:00:55,200 --> 00:00:58,140
Dougall and it always takes the user back to here.

14
00:00:58,440 --> 00:01:03,120
And the only problem with that, of course, is it's great if I'm doing a reservation for the current

15
00:01:03,120 --> 00:01:09,060
month, but if I go to a different month and click on this and then click Save or Marquez processed

16
00:01:09,060 --> 00:01:13,530
and this one happens to be processed, but if I clicked on the Marquez processed button, it would actually

17
00:01:13,530 --> 00:01:18,030
take me back to the current month and year in the calendar, which isn't where I came from.

18
00:01:18,030 --> 00:01:19,260
And that's nonintuitive.

19
00:01:19,410 --> 00:01:23,280
And that's going to cause some grief for the actual user of the application.

20
00:01:23,290 --> 00:01:25,070
So that's not a great idea.

21
00:01:26,430 --> 00:01:30,300
What might be a better idea is to pass, say, some query parameters.

22
00:01:30,300 --> 00:01:38,940
So questionmark Y equals twenty twenty or twenty, twenty one and month equals twenty or 02 and that

23
00:01:38,940 --> 00:01:41,090
would take me to February of twenty twenty one.

24
00:01:41,760 --> 00:01:46,860
So that would mean that I would have to pass this early, grab the query parameters, put them in hidden

25
00:01:46,860 --> 00:01:48,720
fields in here and away we go.

26
00:01:48,900 --> 00:01:54,570
There's only one problem with this, and that is the way that we're getting this I.D., that nine in

27
00:01:54,570 --> 00:01:55,240
this case.

28
00:01:55,260 --> 00:02:00,930
So if we go back and look at the way that we're doing it on the admin show, reservation page, which

29
00:02:00,930 --> 00:02:09,690
is right here, we're actually getting the ID by exploding or splitting our request, you or I.

30
00:02:09,720 --> 00:02:11,040
And that's this entire U.

31
00:02:11,040 --> 00:02:12,420
URL up here.

32
00:02:13,110 --> 00:02:20,370
We're splitting that on the slash and we're getting the item in the fourth position as the ID and then

33
00:02:20,370 --> 00:02:21,410
converting that to an end.

34
00:02:21,520 --> 00:02:27,720
OK, so right now we have this is position zero.

35
00:02:28,080 --> 00:02:33,600
Admin is position one reservation a position to Kala's position three.

36
00:02:33,930 --> 00:02:36,930
And now all of this is position four.

37
00:02:36,930 --> 00:02:44,130
And I can't split that or can't convert that string to an end because clearly it's not it it's got letters

38
00:02:44,130 --> 00:02:45,390
and punctuation in there.

39
00:02:46,050 --> 00:02:49,290
So I need somehow to deal with this problem.

40
00:02:49,290 --> 00:02:54,300
How am I going to get both the ID and the year and the month?

41
00:02:54,300 --> 00:02:58,380
And I want the year in a month so I can redirect them back to the appropriate month on the calendar?

42
00:02:59,960 --> 00:03:02,130
Well, there's a couple of ways of doing this.

43
00:03:02,130 --> 00:03:04,560
We could first of all, one option is to change that.

44
00:03:04,560 --> 00:03:11,550
Nine, the ID from a part of the actual euro Eurail into it, another query parameter that would work

45
00:03:12,240 --> 00:03:12,900
like that one.

46
00:03:12,900 --> 00:03:19,520
But that would work or and this is a little complicated, but I could explode it as I am right now,

47
00:03:19,950 --> 00:03:25,530
then take that exploded for and check to see if it contains a question mark.

48
00:03:25,530 --> 00:03:31,440
If it does, then split exploded four on the question mark and grab position zero.

49
00:03:31,440 --> 00:03:33,120
That will be the ID again.

50
00:03:33,150 --> 00:03:33,930
Very awkward.

51
00:03:34,500 --> 00:03:42,210
It might be simpler if I just change the URL to something like this show and then year in month, because

52
00:03:42,210 --> 00:03:44,220
now position four will always be an aunt.

53
00:03:44,250 --> 00:03:47,640
I ignore position five and I still have access to my query parameters.

54
00:03:47,910 --> 00:03:48,540
Let's do that.

55
00:03:48,990 --> 00:03:55,560
So I'll go over to my roots file, which is right here, and I will change the bit where I'm showing

56
00:03:55,560 --> 00:03:58,700
a reservation just by putting a slide show after it.

57
00:03:59,130 --> 00:04:01,320
Now, of course, that means any changes in more places.

58
00:04:01,680 --> 00:04:07,500
I need changes on the reservation calendar page, so let's find that and put its slash.

59
00:04:07,710 --> 00:04:12,210
There are slash show right here at the very end and that's all I have to do.

60
00:04:12,810 --> 00:04:17,610
We also need it for this page, new reservations and for this page, all reservations.

61
00:04:17,970 --> 00:04:20,460
And we might have to do some redirects, but we'll check those out in a minute.

62
00:04:20,820 --> 00:04:22,380
So let's go to new reservations.

63
00:04:22,710 --> 00:04:33,420
And all I have to do is say show after the URL bit and all reservations and put a show here as well.

64
00:04:34,380 --> 00:04:36,900
OK, let's stop our application just in case.

65
00:04:36,900 --> 00:04:37,740
Start it up again.

66
00:04:39,030 --> 00:04:41,590
It compiles let's make sure all of that works.

67
00:04:42,240 --> 00:04:46,770
So let's go to the dashboard just to make sure we're on a new page, go to new reservations.

68
00:04:48,030 --> 00:04:48,870
OK, that worked.

69
00:04:49,620 --> 00:04:51,090
Let's go to all reservations.

70
00:04:52,670 --> 00:04:53,280
That worked.

71
00:04:53,870 --> 00:04:55,310
Let's go to the reservation calendar.

72
00:04:56,730 --> 00:04:58,150
And that worked perfect.

73
00:04:58,440 --> 00:05:04,020
Now, this last one where I came from, the reservation calendar, here's where I want the questionmark

74
00:05:04,020 --> 00:05:07,650
y equals the year and then so on and so forth, the month.

75
00:05:08,250 --> 00:05:13,110
So let's go back to our admin reservations calendar page and just add those to the URL.

76
00:05:14,070 --> 00:05:15,450
So I'll make this a little wider.

77
00:05:16,170 --> 00:05:20,880
And all I have to do is questionmark y equals Curre year.

78
00:05:23,050 --> 00:05:23,980
Ampersands.

79
00:05:25,380 --> 00:05:32,130
M equals per month because I already have current year and current month stored in variables, so I

80
00:05:32,310 --> 00:05:36,030
don't need to pull them out of the stream out there, right here so I can save this.

81
00:05:37,020 --> 00:05:37,900
Go back here.

82
00:05:38,460 --> 00:05:40,140
Let's go back to the reservation calendar.

83
00:05:40,290 --> 00:05:44,730
I shouldn't have to restart because I'm reloading the templates on every request.

84
00:05:45,480 --> 00:05:47,390
The euro looks right in the lower left.

85
00:05:47,400 --> 00:05:48,450
Let's see if it works.

86
00:05:49,200 --> 00:05:49,910
And it does.

87
00:05:50,010 --> 00:05:55,680
So now I have the year in the month, so I better put them as hidden fields on this actual page so I

88
00:05:55,680 --> 00:05:56,950
can do something with them.

89
00:05:56,970 --> 00:06:02,910
So let's go to the reservation show page or reservation handlers find that first we want to show the

90
00:06:02,910 --> 00:06:07,830
reservation and all I need to do is to grab the year in the month from the query parameters.

91
00:06:07,830 --> 00:06:11,580
So I'll do it after I declare the string maps so I can add them right to the string map.

92
00:06:11,940 --> 00:06:24,780
And I'll say here is a sign the value of our euro dot query doget and I'm looking for Y and then I'll

93
00:06:24,780 --> 00:06:36,540
duplicate this and I'll put month is equal to M and now add those to our string map string map month.

94
00:06:37,750 --> 00:06:41,100
Equals month and do the same thing for a year.

95
00:06:43,240 --> 00:06:50,170
OK, and then on the admin reservation show page, now that I have those, once I restart my application,

96
00:06:50,170 --> 00:06:50,590
I'll have them.

97
00:06:50,590 --> 00:06:52,340
Now I can put them in here, sit hidden fields.

98
00:06:52,760 --> 00:07:02,800
The input type equals hidden name equals year value equals index dot string map here.

99
00:07:04,490 --> 00:07:09,140
And close that and duplicate this and make that a month.

100
00:07:11,900 --> 00:07:18,200
And make this month and stop our application and start our application.

101
00:07:21,080 --> 00:07:25,550
And we'll go right back to the calendar page just to make sure everything's working properly, and this

102
00:07:25,550 --> 00:07:29,670
time I'll use December 20/20 and I'll try this reservation.

103
00:07:30,500 --> 00:07:34,760
OK, there's my year in my month and let's check our source code and look for the word hidden.

104
00:07:35,240 --> 00:07:36,370
And there's year in month.

105
00:07:36,380 --> 00:07:36,920
Perfect.

106
00:07:37,340 --> 00:07:38,620
OK, so I have those now.

107
00:07:39,200 --> 00:07:43,640
So now I can finally at this point determine whether or not I have to do a redirect.

108
00:07:43,640 --> 00:07:46,900
So let's go back to our handler and just look at this one more time.

109
00:07:48,230 --> 00:07:51,470
So when I grab my year in one month from my query parameters.

110
00:07:52,490 --> 00:07:57,920
If there is no query parameter, those should be empty strings, let's make sure that actually works.

111
00:07:58,340 --> 00:08:03,940
So here's a way I'm going to get to a reservation with no query parameters, no month and year.

112
00:08:03,950 --> 00:08:05,330
So this should still show it.

113
00:08:05,900 --> 00:08:11,720
And now when I view the source and look for hidden, they should be empty and they are perfect.

114
00:08:12,050 --> 00:08:13,260
So this will definitely work.

115
00:08:14,240 --> 00:08:20,630
So now that I have those things posted or available to my post, they're coming to this handler admin

116
00:08:20,630 --> 00:08:22,220
post show reservation.

117
00:08:22,220 --> 00:08:24,350
Let's just go back to the calendar and get to one.

118
00:08:25,100 --> 00:08:31,520
Those two values, year and month are now part of the post request that matches this handler.

119
00:08:32,060 --> 00:08:38,810
So when I come all the way down here, all I have to do is to see if I have a month and a year value

120
00:08:38,810 --> 00:08:42,590
that are not empty strings and I can just grab them right from the request.

121
00:08:42,920 --> 00:08:49,940
So a month is assigned the value of our not formed get em and then year.

122
00:08:51,850 --> 00:08:58,300
Is why I just have to make a determination here and I'll do it after I write to the sessions, I don't

123
00:08:58,300 --> 00:08:59,560
want to bother duplicating that.

124
00:09:00,010 --> 00:09:06,450
If a year is equal to nothing, an empty string, then just do what we've been doing right along.

125
00:09:07,030 --> 00:09:09,520
Otherwise, we'll redirect somewhere else.

126
00:09:10,240 --> 00:09:14,890
And we're we're going to take them is to the calendar page, but the correct month and year.

127
00:09:15,280 --> 00:09:17,200
So reservations dash calendar.

128
00:09:19,110 --> 00:09:25,320
Questionmark Y equals, and then a string ampersand M equals and then another string, and now I don't

129
00:09:25,320 --> 00:09:29,310
care about the source, I care about year and month.

130
00:09:31,040 --> 00:09:32,990
So in theory, this should work.

131
00:09:33,020 --> 00:09:39,830
Let's find out and if it works for here, we can use the same logic for processing a reservation and

132
00:09:39,830 --> 00:09:40,900
deleting a reservation.

133
00:09:41,330 --> 00:09:42,030
So we're running.

134
00:09:43,450 --> 00:09:49,340
Let's go back here and go to our reservations calendar and bring up a reservation and save it.

135
00:09:50,480 --> 00:09:51,410
Page not found.

136
00:09:55,510 --> 00:09:58,160
What did I do wrong, maybe I didn't reload the page.

137
00:09:58,240 --> 00:10:07,660
Let's look at this, make sure that we have our month in year, year and month 2020 and 12 admin reservations

138
00:10:07,660 --> 00:10:08,350
calendar.

139
00:10:10,000 --> 00:10:13,480
And where are we doing our redirect process reservation?

140
00:10:13,480 --> 00:10:15,910
We want to admit we want the post reservation.

141
00:10:16,600 --> 00:10:19,810
So if we're equals that are formed, I get em.

142
00:10:19,810 --> 00:10:20,440
And why?

143
00:10:20,440 --> 00:10:21,700
What did I call them in here?

144
00:10:22,240 --> 00:10:23,070
Oh, you're in month.

145
00:10:23,080 --> 00:10:23,770
That'll explain it.

146
00:10:25,210 --> 00:10:28,060
Month and year.

147
00:10:28,060 --> 00:10:30,280
I was looking for parameters that didn't exist.

148
00:10:30,820 --> 00:10:33,250
So let's stop it and try it one more time.

149
00:10:34,960 --> 00:10:40,510
So we'll close this, go back to Reservation's calendar, bring up general quarters reservation, save

150
00:10:40,510 --> 00:10:46,270
this, and they should take me back to that year and that month, December twenty twenty.

151
00:10:47,290 --> 00:10:47,960
And it does.

152
00:10:48,010 --> 00:10:49,570
Let's try one in the future.

153
00:10:50,410 --> 00:10:51,150
So here's one.

154
00:10:52,360 --> 00:10:53,320
Let's save that one.

155
00:10:53,320 --> 00:10:55,720
That should take me back to January of twenty twenty one.

156
00:10:56,530 --> 00:10:57,340
And it does.

157
00:10:57,370 --> 00:11:01,380
Now what about going the old way directly from, not from the calendar.

158
00:11:01,390 --> 00:11:07,300
Let's bring up this pennyworth reservation that should take me back to reservations new because that's

159
00:11:07,300 --> 00:11:11,800
what they have in my URL is new save and it takes me to reservations.

160
00:11:11,800 --> 00:11:12,880
New perfect.

161
00:11:12,910 --> 00:11:13,890
Well that seems to work.

162
00:11:14,500 --> 00:11:20,050
So now we can do the same thing or use the same logic for making a reservation as processed.

163
00:11:20,530 --> 00:11:27,940
So let's go back to our code and our terminal window and find the reservation show page.

164
00:11:28,000 --> 00:11:34,840
So this is the part when I bring up a reservation this way, if I want to mark this is processed, what

165
00:11:34,840 --> 00:11:35,730
is it actually doing?

166
00:11:35,780 --> 00:11:43,210
Well, if you recall on this page showing a reservation at the very bottom, we have this process reservation

167
00:11:43,660 --> 00:11:50,340
and that is calling the your admin process reservation, whatever the sources of the ID.

168
00:11:51,610 --> 00:11:54,370
And now I need to actually pass some query parameters.

169
00:11:54,400 --> 00:11:55,880
So how am I going to do that?

170
00:11:56,260 --> 00:11:58,900
Well, let's go to look at this actual handler.

171
00:11:58,900 --> 00:11:59,920
Let's find the roots.

172
00:12:00,760 --> 00:12:05,920
Let's find the process reservation, which is right here, and bring that up.

173
00:12:06,490 --> 00:12:10,810
So that's getting the URL the same way or getting the ID from the world the same way that we did in

174
00:12:10,810 --> 00:12:11,440
the last one.

175
00:12:11,440 --> 00:12:14,410
And it's using the key rooters, Eurail, Perram.

176
00:12:14,890 --> 00:12:19,430
I suspect that that works pretty much the same way that we've been doing it by hand.

177
00:12:19,780 --> 00:12:26,020
So what I'm going to do is actually change the route for deleting or deleting a reservation and for

178
00:12:26,020 --> 00:12:27,170
processing a reservation.

179
00:12:27,610 --> 00:12:31,150
So, again, I'll just put this something at the end of it.

180
00:12:31,150 --> 00:12:37,540
And what I'll put here is processed reservation process, Dasch reservation, whatever the source is,

181
00:12:37,930 --> 00:12:43,270
whatever the ID is, and then I'll just put a word here do and that'll do it for our purposes.

182
00:12:43,570 --> 00:12:49,930
So let's go back to the admin reservation show page and change this URL to do.

183
00:12:51,380 --> 00:12:52,130
And.

184
00:12:54,060 --> 00:12:56,640
That would come after this, move this down here.

185
00:12:58,850 --> 00:13:02,660
Plus, do you do?

186
00:13:04,500 --> 00:13:11,220
Questionmark and then Y equals I'll pass my year, my month in the same way I have been in the other

187
00:13:11,220 --> 00:13:14,550
one, that would be index dot, string map.

188
00:13:18,100 --> 00:13:21,400
Year ampersand.

189
00:13:23,280 --> 00:13:27,390
M equals index dot string map.

190
00:13:32,180 --> 00:13:33,560
And that should work.

191
00:13:33,770 --> 00:13:37,420
So let's just see if that is rendering the way that I expect it to render.

192
00:13:37,430 --> 00:13:42,300
So I start and stop, stop and start my application and I'll go back and I'll just reload this page.

193
00:13:42,540 --> 00:13:43,510
OK, that's shut up.

194
00:13:43,520 --> 00:13:43,940
All right.

195
00:13:44,150 --> 00:13:45,400
And let's go to the very bottom.

196
00:13:46,100 --> 00:13:55,060
So we're going to have admin process, Dasch reservation slash cow slash, then the idiot slash du questionmark.

197
00:13:55,070 --> 00:13:55,900
That looks perfect.

198
00:13:56,270 --> 00:13:56,790
All right.

199
00:13:57,350 --> 00:14:00,620
So since we're here anyway, let's use the same logic.

200
00:14:01,130 --> 00:14:02,120
Copy this.

201
00:14:04,140 --> 00:14:08,030
Let's just update our you, Earl, for this one as well.

202
00:14:10,630 --> 00:14:15,640
And save that and reload this and I should see the same thing showing up right here.

203
00:14:19,700 --> 00:14:21,440
If I can get down to the bottom of the page.

204
00:14:23,320 --> 00:14:23,860
Yes.

205
00:14:24,190 --> 00:14:29,050
All right, so that means we need to update our route for deleting just by putting a slash do after

206
00:14:29,050 --> 00:14:32,760
it, I just chose to do because I'm doing something.

207
00:14:32,770 --> 00:14:33,460
It's an action.

208
00:14:34,750 --> 00:14:38,460
And then we need to do the same logic in admin process reservation.

209
00:14:38,470 --> 00:14:40,710
So I now have my ID.

210
00:14:40,720 --> 00:14:42,090
I don't need to worry about that at all.

211
00:14:42,310 --> 00:14:43,510
I now have my source.

212
00:14:43,510 --> 00:14:44,740
I don't need to worry about that at all.

213
00:14:44,890 --> 00:14:49,660
And I can also now just check for the year and the month and this time they're showing us query parameters.

214
00:14:50,410 --> 00:15:03,910
So yea is a sign the value of our euro query dot get and I'm looking for why duplicate that and month.

215
00:15:05,380 --> 00:15:06,850
I'm looking for M.

216
00:15:12,110 --> 00:15:17,780
And I'll leave my session alone, but here, I'll do a check if here is equal to nothing, in other

217
00:15:17,780 --> 00:15:20,210
words, if there is no query parameter for that.

218
00:15:22,420 --> 00:15:29,710
And take them back there where we were at along, otherwise take them to the correct month and year

219
00:15:29,710 --> 00:15:30,430
in the calendar.

220
00:15:30,700 --> 00:15:32,440
So a copy this, I'll paste it.

221
00:15:32,770 --> 00:15:41,500
I'll change that to reservations calendar questionmark month equal or Y equals some string.

222
00:15:42,530 --> 00:15:44,470
Make that an equal sign or this isn't going to work.

223
00:15:45,280 --> 00:15:54,280
Ampersand month equals another string and I substitute year and month and I should work.

224
00:15:55,170 --> 00:15:58,720
So let's try this, let's stop it and start it.

225
00:15:59,650 --> 00:16:00,600
It compiles.

226
00:16:01,390 --> 00:16:07,150
Let's go back to our reservations calendar and this should take me back to December of twenty twenty

227
00:16:07,150 --> 00:16:08,890
once I market as processed.

228
00:16:11,650 --> 00:16:16,010
And it does perfect, so now we just need to do the same thing for delete.

229
00:16:16,630 --> 00:16:21,640
And one note here, just before I recorded this lecture, when I was running through things to make

230
00:16:21,640 --> 00:16:27,400
sure they all worked, I noticed that my when I marked a reservation as processed, the button still

231
00:16:27,400 --> 00:16:27,960
showed up.

232
00:16:28,180 --> 00:16:31,300
So it's possible that I made that change between lectures.

233
00:16:31,570 --> 00:16:35,110
It's equally possible that I made the change during a lecture.

234
00:16:35,110 --> 00:16:42,090
But all you have to verify is on the admin dash reservations that show page template.

235
00:16:42,490 --> 00:16:48,340
Just make sure that this part is here, that the if statement is still around, that Mark has process

236
00:16:48,340 --> 00:16:48,670
button.

237
00:16:48,790 --> 00:16:53,150
If it's not added back in, it's possible I deleted it inadvertently in a previous lecture.

238
00:16:53,500 --> 00:16:55,900
It's also possible I deleted it between lectures.

239
00:16:55,900 --> 00:17:00,820
But if you're still seeing that button after you mark something is processed, just make sure that this

240
00:17:00,820 --> 00:17:03,160
if statement exists in your template.

241
00:17:03,940 --> 00:17:04,320
All right.

242
00:17:04,330 --> 00:17:08,160
So the last thing we have to do then is to make this delete button work the same way.

243
00:17:08,290 --> 00:17:14,590
So I've already updated the route to put to do after it on the admin show reservations page.

244
00:17:15,220 --> 00:17:20,400
I need to make sure that I have to do after this and I do OK.

245
00:17:20,770 --> 00:17:27,250
So I now need to open up the admin, delete reservation and use the same logic we did above so I can

246
00:17:27,250 --> 00:17:28,990
just copy this bit.

247
00:17:29,680 --> 00:17:37,090
Getting my year in month from the query parameters, put them here and again just do the if a year is

248
00:17:37,090 --> 00:17:42,430
equal to nothing or an empty string, take them where we have been right along.

249
00:17:44,290 --> 00:17:51,250
Otherwise take them back to this path which I'll just copy and paste because I already have it and I

250
00:17:51,250 --> 00:17:52,140
know that it works.

251
00:17:52,630 --> 00:17:58,390
So if the error is empty, in other words, if there's no query parameter, why then take them back

252
00:17:58,390 --> 00:18:00,520
to the place we have been right along.

253
00:18:01,150 --> 00:18:03,900
Otherwise take them back to the correct year and once in the calendar.

254
00:18:03,940 --> 00:18:05,080
So let's stop this.

255
00:18:06,130 --> 00:18:06,940
Start this.

256
00:18:09,950 --> 00:18:13,560
And now we need to make sure this works over the reservation calendar.

257
00:18:14,120 --> 00:18:16,820
I'll go ahead a month just to make sure I'm looking at a different one.

258
00:18:16,820 --> 00:18:22,150
And this time I'll delete whatever this reservation is on the 20th of January in the major suite.

259
00:18:22,760 --> 00:18:23,870
So hopefully this'll work.

260
00:18:25,430 --> 00:18:26,360
Yes, I'm sure.

261
00:18:26,510 --> 00:18:27,490
And it works.

262
00:18:28,040 --> 00:18:34,900
So there now we have the core functionality all working exactly as it should for our back end.

263
00:18:35,090 --> 00:18:40,460
So the last thing we have to do is the next thing we have to do, not quite the last thing.

264
00:18:40,460 --> 00:18:42,950
The next thing we have to do is to update some tests.

265
00:18:43,160 --> 00:18:48,740
And I'm going to do one test for you and let you do the rest of them on your own.

266
00:18:48,770 --> 00:18:54,740
I'll do a table driven test for some one of the handlers and I will complete the rest of them.

267
00:18:54,740 --> 00:18:58,940
But I'm only going to do one is a lecture and the rest of them will just go up as the source code and

268
00:18:58,940 --> 00:19:03,680
you can review them as you wish, because at this point you should be able to write these tests on your

269
00:19:03,680 --> 00:19:04,000
own.

270
00:19:04,310 --> 00:19:09,010
But in case you can't, I will provide the full source code for your review.
