1
00:00:00,000 --> 00:00:13,960
Alright, so let's begin.

2
00:00:13,960 --> 00:00:22,860
And then, so last week we looked at the data, and so we may, I guess, if you want we could

3
00:00:22,860 --> 00:00:28,160
try to read in that transactions data and see if we have any better luck, and then I

4
00:00:28,160 --> 00:00:31,720
could try to save it in a better format for you.

5
00:00:31,720 --> 00:00:38,200
And then, roughly the plan today was to talk about APIs.

6
00:00:38,200 --> 00:00:45,040
So I've put together a handful of public APIs that we can use and we can make requests too.

7
00:00:45,040 --> 00:00:54,200
So let's, why don't we just jump in, well, how about you Charles and Jake, which would

8
00:00:54,200 --> 00:01:08,000
you prefer to start with?

9
00:01:08,000 --> 00:01:09,000
Here is David.

10
00:01:09,000 --> 00:01:13,640
There's a good amount, I'm not going to excessive.

11
00:01:13,640 --> 00:01:14,640
Good morning David.

12
00:01:14,640 --> 00:01:28,080
Good morning.

13
00:01:28,080 --> 00:01:34,680
You know how large the actual file was that you were trying to read in?

14
00:01:34,680 --> 00:01:44,560
It's supposed to be like 24 or 26 gigabytes, but when it gets read into the CSV editor,

15
00:01:44,560 --> 00:01:45,560
it expands.

16
00:01:45,560 --> 00:01:52,440
And I don't know if that's part of the problem, because it's corrupted, or if that's what

17
00:01:52,440 --> 00:01:57,720
the CSV file expands that much when you read it in.

18
00:01:57,720 --> 00:02:01,120
Well, let's just take a quick look at that here.

19
00:02:01,120 --> 00:02:05,400
Let me just condense some of these things here, and then.

20
00:02:05,400 --> 00:02:08,400
It might be just the editor.

21
00:02:08,400 --> 00:02:11,400
Now I tried like two different editors.

22
00:02:11,400 --> 00:02:12,400
Really?

23
00:02:12,400 --> 00:02:16,400
The main problem is that pandas won't read it in.

24
00:02:16,400 --> 00:02:23,000
If you open it up in notepad, does it open, or a text editor, does it expand like that?

25
00:02:23,000 --> 00:02:31,040
You haven't tried reading it using a text editor, I've been using a CSV reader.

26
00:02:31,040 --> 00:02:36,600
I would try with notepad, something that just reads text, and it isn't supposedly specialized

27
00:02:36,600 --> 00:02:39,600
for CSV, and see what happens.

28
00:02:39,600 --> 00:02:45,600
That would help isolate whether or not it's the editor, or whether it's something to do

29
00:02:45,600 --> 00:02:46,600
with CSVs.

30
00:02:46,600 --> 00:02:50,560
I've never seen that occur with just notepad.

31
00:02:50,560 --> 00:02:59,000
So just for five minutes, we'll just take a quick look at it.

32
00:02:59,000 --> 00:03:03,160
So here I'm going to drop some links in the chat.

33
00:03:03,160 --> 00:03:06,960
And so these are the data links.

34
00:03:06,960 --> 00:03:12,840
And Jake is new here.

35
00:03:12,840 --> 00:03:16,240
He's my.NET developer.

36
00:03:16,240 --> 00:03:17,240
Oh, awesome.

37
00:03:17,240 --> 00:03:22,240
So I don't know if he's on the audio or not.

38
00:03:22,240 --> 00:03:25,240
Well, I'm here.

39
00:03:25,240 --> 00:03:26,240
Okay.

40
00:03:26,240 --> 00:03:27,240
Good morning, Jake.

41
00:03:27,240 --> 00:03:28,240
Good morning.

42
00:03:28,240 --> 00:03:30,360
I should have shared this last time.

43
00:03:30,360 --> 00:03:32,480
Charles was smart to bring this up.

44
00:03:32,480 --> 00:03:37,440
So this is the data guide for the data.

45
00:03:37,440 --> 00:03:38,440
So we...

46
00:03:38,440 --> 00:03:42,120
That was real helpful.

47
00:03:42,120 --> 00:03:45,080
So you know the fields that we're looking at.

48
00:03:45,080 --> 00:03:48,600
Okay, so say one more time you were looking to read in the transfers.

49
00:03:48,600 --> 00:03:51,720
Now the inventories.

50
00:03:51,720 --> 00:03:53,120
Oh.

51
00:03:53,120 --> 00:03:54,520
Okay.

52
00:03:54,520 --> 00:03:56,080
Two gigs.

53
00:03:56,080 --> 00:03:58,520
So it should be manageable.

54
00:03:58,520 --> 00:04:01,680
Well, it is zipped.

55
00:04:01,680 --> 00:04:04,440
So you're going to...

56
00:04:04,440 --> 00:04:07,440
It's going to uncompress the zip file.

57
00:04:07,440 --> 00:04:12,680
It'll probably get bigger when you uncompress it.

58
00:04:12,680 --> 00:04:15,680
How big is the CSV after you unzip it?

59
00:04:15,680 --> 00:04:20,600
It's like 24 or 26 gigabytes.

60
00:04:20,600 --> 00:04:21,840
Okay.

61
00:04:21,840 --> 00:04:25,920
So we'll look at this maybe at the end of the presentation.

62
00:04:25,920 --> 00:04:32,880
So we'll just dive straight into APIs and then maybe at the end we'll see if we can't

63
00:04:32,880 --> 00:04:36,840
have any luck parsing that for you, Charles.

64
00:04:36,840 --> 00:04:41,400
So some of the things I wanted to share with you today.

65
00:04:41,400 --> 00:04:45,640
First, just wanted to just spend...

66
00:04:45,640 --> 00:04:46,680
So here's the agenda.

67
00:04:46,680 --> 00:04:51,960
So I was just maybe going to do five to 10 minutes of introductions, but it looks like

68
00:04:51,960 --> 00:04:55,400
we've got the usual crowd here, plus Jake.

69
00:04:55,400 --> 00:04:59,520
And so it's good to see you all.

70
00:04:59,520 --> 00:05:02,600
And then I guess real quick, Jake, you said you're a developer?

71
00:05:02,600 --> 00:05:11,120
And then could I just ask, do you have any particular interests in the field of cannabis

72
00:05:11,120 --> 00:05:14,440
data that you're looking to...?

73
00:05:14,440 --> 00:05:23,880
We're interested in developing an add-in for Acumatica's ERP so that all the touch points

74
00:05:23,880 --> 00:05:32,640
for the growing and manufacturing processes can all be... have all their IDs captured

75
00:05:32,640 --> 00:05:41,360
from the API and then be able to send the information back to the state through the

76
00:05:41,360 --> 00:05:44,680
API as those transactions are occurring.

77
00:05:44,680 --> 00:05:50,040
So we sell that particular ERP software, so we know that side.

78
00:05:50,040 --> 00:05:57,400
Jake's done a lot of development within the application in C-sharp.

79
00:05:57,400 --> 00:06:03,840
So we're just kind of looking and exploring how we could potentially build something that

80
00:06:03,840 --> 00:06:10,920
would let the ERP system do everything that growers and processors needed to do, including

81
00:06:10,920 --> 00:06:15,120
the communications with the state API.

82
00:06:15,120 --> 00:06:16,120
Excellent.

83
00:06:16,120 --> 00:06:22,320
So that's kind of a... he's working on a major project right now for investment asset accounting

84
00:06:22,320 --> 00:06:27,600
within our ERP, but that's going to be... we're going to have a viable product on that

85
00:06:27,600 --> 00:06:28,600
pretty soon.

86
00:06:28,600 --> 00:06:34,280
And then he's going to be looking at developing this next big product of ours for the cannabis

87
00:06:34,280 --> 00:06:42,240
industry to allow us to target cannabis growers and manufacturing or processing plants.

88
00:06:42,240 --> 00:06:49,480
Well, you're in the perfect place and we're glad to share as much as we know.

89
00:06:49,480 --> 00:06:57,280
So as you hit on, APIs are used by almost... promote by pretty much every state that's

90
00:06:57,280 --> 00:06:59,360
adopting a cannabis program.

91
00:06:59,360 --> 00:07:04,320
So it looked like, for example, Oklahoma was maybe going to go without, and then they adopted

92
00:07:04,320 --> 00:07:06,160
metric recently.

93
00:07:06,160 --> 00:07:13,000
So and then I put a list of states here to watch out for, for public data, because these

94
00:07:13,000 --> 00:07:21,520
are states that are at least making efforts to start providing public data, even if at

95
00:07:21,520 --> 00:07:26,320
the moment there's the infrastructure is still in development.

96
00:07:26,320 --> 00:07:39,600
So for example, Washington, you can watch there's, I was just pulling it up over here,

97
00:07:39,600 --> 00:07:50,400
but... but we'll dig into some of these others.

98
00:07:50,400 --> 00:07:54,040
So Washington has a Socrata endpoint.

99
00:07:54,040 --> 00:07:59,800
It was rich with cannabis data and it, they've recently announced that they're going to have

100
00:07:59,800 --> 00:08:04,360
efforts this year to start populating more data there.

101
00:08:04,360 --> 00:08:19,920
So something to look out for.

102
00:08:19,920 --> 00:08:28,840
And then one of the ones that's up and running, well, so we'll stay tuned.

103
00:08:28,840 --> 00:08:30,720
Okay.

104
00:08:30,720 --> 00:08:40,480
But one of the ones that is up and running is we have the pesticides from Oregon.

105
00:08:40,480 --> 00:08:50,920
So this will just be a quick example of how you can get data through Socrata.

106
00:08:50,920 --> 00:08:54,600
Okay.

107
00:08:54,600 --> 00:09:09,040
So I'll put the link in the chat.

108
00:09:09,040 --> 00:09:22,680
And so it seems that a lot of these states are adopting Socrata for sharing their data,

109
00:09:22,680 --> 00:09:26,880
all, you know, slowly, but slowly but surely.

110
00:09:26,880 --> 00:09:34,840
And so for example, here's an effort by Oregon to share their pesticide lists.

111
00:09:34,840 --> 00:09:38,120
And so this is a public API endpoint.

112
00:09:38,120 --> 00:09:48,280
So really if you hit this URL with, you know, any programming language or even in the browser,

113
00:09:48,280 --> 00:09:53,480
you know, you should just get a big dump of data.

114
00:09:53,480 --> 00:09:58,280
And then, so that's not too meaningful there in the browser.

115
00:09:58,280 --> 00:10:15,780
So what we've done here is we'll start a new file just to do everything fresh here.

116
00:10:15,780 --> 00:10:25,800
So we'll go ahead and use the request package for Python.

117
00:10:25,800 --> 00:10:33,760
And then we'll be hitting the pesticides endpoint.

118
00:10:33,760 --> 00:10:41,240
And we use requests.get to get that endpoint.

119
00:10:41,240 --> 00:10:50,640
And then a couple tools that you could potentially look into using if you're not trying to

120
00:10:50,640 --> 00:11:04,720
A tool recommended to me was Postman.

121
00:11:04,720 --> 00:11:07,600
So you could look into using Postman.

122
00:11:07,600 --> 00:11:18,360
But just for this tutorial, I'll be sticking here in Spider.

123
00:11:18,360 --> 00:11:30,800
So you'll know you'll get a successful response if you have a 200 status code.

124
00:11:30,800 --> 00:11:39,360
And so then you can then get that actual data.

125
00:11:39,360 --> 00:11:52,760
And so this is just going to be a giant list of dictionaries.

126
00:11:52,760 --> 00:12:06,280
So just so we can, you know, clean this data up and save it to Excel, because I should

127
00:12:06,280 --> 00:12:15,680
have mentioned the point of this exercise is, you know, basically we're just trying

128
00:12:15,680 --> 00:12:18,840
to get as much cannabis.

129
00:12:18,840 --> 00:12:22,720
Here I said lab results, but we'll just generalize to data.

130
00:12:22,720 --> 00:12:29,360
So our goal is to get as much cannabis data as possible from public APIs and then save

131
00:12:29,360 --> 00:12:31,000
it to Excel.

132
00:12:31,000 --> 00:12:37,440
Or, you know, your favorite database.

133
00:12:37,440 --> 00:12:46,440
So that way you can make it useful to yourself.

134
00:12:46,440 --> 00:12:57,640
So we'll need pandas.

135
00:12:57,640 --> 00:13:06,960
And then what I'm doing here is you can turn a list of dictionaries into a data frame

136
00:13:06,960 --> 00:13:13,400
by simply passing it to pd.dataframe.

137
00:13:13,400 --> 00:13:20,080
And if you look at the data, because that's the first rule of data science, look at the

138
00:13:20,080 --> 00:13:21,360
data.

139
00:13:21,360 --> 00:13:29,880
So if you look at the data, you'll see that everything's in all capital letters.

140
00:13:29,880 --> 00:13:47,040
So just for the to save people a headache, you can check out the link here to Stack Overflow,

141
00:13:47,040 --> 00:13:53,040
where we're basically just turning everything to title case.

142
00:13:53,040 --> 00:14:00,040
So that way the data is prettier.

143
00:14:00,040 --> 00:14:11,160
And so then we can save that to Excel.

144
00:14:11,160 --> 00:14:23,080
And you have a nice list of pesticides that may be used on cannabis products.

145
00:14:23,080 --> 00:14:35,800
So essentially, if a cannabis producer was going to use, you know, Velofir, then they're

146
00:14:35,800 --> 00:14:45,720
going to want to know what the active ingredients are and watch for those.

147
00:14:45,720 --> 00:14:55,760
So for example, if you're using anything with Azera, you're going to want to watch out that

148
00:14:55,760 --> 00:15:02,800
your products don't fail for pyrethrins when being tested.

149
00:15:02,800 --> 00:15:10,200
I think flour may not have a limit on pyrethrins in Washington state, but concentrated products

150
00:15:10,200 --> 00:15:11,200
would.

151
00:15:11,200 --> 00:15:18,840
So if you're growing products that are going to be getting concentrated, then you may want

152
00:15:18,840 --> 00:15:29,480
to be careful with your application of any pesticides with active ingredients that you're

153
00:15:29,480 --> 00:15:33,040
trying to avoid.

154
00:15:33,040 --> 00:15:42,440
So that's just a quick look at those pesticide data points.

155
00:15:42,440 --> 00:15:49,280
And just to go ahead and show you one more API, just for fun.

156
00:15:49,280 --> 00:16:00,160
So this is an API that I've put together that allows you to get lab or actual lab data.

157
00:16:00,160 --> 00:16:06,600
So at the moment, you can just get information about particular labs.

158
00:16:06,600 --> 00:16:30,200
So I'll put the link in the chat here.

159
00:16:30,200 --> 00:16:35,760
And so we're going to do a similar thing where we're going to get the data.

160
00:16:35,760 --> 00:16:49,440
So here's the labs endpoint, api.kinlintx.com slash v1 slash labs.

161
00:16:49,440 --> 00:16:52,320
We're going to use requests.

162
00:16:52,320 --> 00:17:13,880
And then we're going to get the JSON.

163
00:17:13,880 --> 00:17:22,680
So I have 140 or so in the database at the moment.

164
00:17:22,680 --> 00:17:29,140
And then I've got a total of 225 that I'm looking to add.

165
00:17:29,140 --> 00:17:41,600
So if we just look at this data, so we're returning a dictionary.

166
00:17:41,600 --> 00:17:48,600
And the dictionary has a single key of data, which has all the lab data.

167
00:17:48,600 --> 00:17:54,320
So what does it look like in full?

168
00:17:54,320 --> 00:17:57,120
A big messy dictionary.

169
00:17:57,120 --> 00:18:02,520
But you can get particular.

170
00:18:02,520 --> 00:18:05,600
So that's just a singular.

171
00:18:05,600 --> 00:18:11,520
So we can look at it a slightly nicer way.

172
00:18:11,520 --> 00:18:15,920
And so this is a singular lab.

173
00:18:15,920 --> 00:18:18,840
So what's their name?

174
00:18:18,840 --> 00:18:26,800
So that's peak analytical.

175
00:18:26,800 --> 00:18:31,360
I think you can get things like full address.

176
00:18:31,360 --> 00:18:47,560
If you get, yeah, it's formatted address.

177
00:18:47,560 --> 00:18:50,220
So that way you can get the full address.

178
00:18:50,220 --> 00:18:54,040
And then I think there's even some nifty data points on here.

179
00:18:54,040 --> 00:19:01,840
So I think I've got, yeah, so some of these labs, I've gone ahead and geocoded them for

180
00:19:01,840 --> 00:19:03,120
you.

181
00:19:03,120 --> 00:19:16,320
And then when possible, I've got their website, their image, or a link to their image, and

182
00:19:16,320 --> 00:19:21,400
then their phone number where possible.

183
00:19:21,400 --> 00:19:25,280
And so these are things that these labs would like public.

184
00:19:25,280 --> 00:19:27,240
So it's on their website.

185
00:19:27,240 --> 00:19:30,880
They want people to get their phone number.

186
00:19:30,880 --> 00:19:39,120
So this is just an easy access way to get this data.

187
00:19:39,120 --> 00:19:44,460
And then once again, you can just dump it to Excel.

188
00:19:44,460 --> 00:20:00,920
So that way you have a nice list of, and so these are all the labs that test for cannabis

189
00:20:00,920 --> 00:20:03,480
in any given state.

190
00:20:03,480 --> 00:20:16,440
So if you're looking for labs in Washington, you can find essentially the general information

191
00:20:16,440 --> 00:20:20,560
about these labs.

192
00:20:20,560 --> 00:20:30,940
And so stay tuned because the idea is to gradually build out this API endpoint to provide the

193
00:20:30,940 --> 00:20:37,400
actual lab results, which we were working with in the last exercise.

194
00:20:37,400 --> 00:20:47,680
And this is a public project, so if anyone wants to lend a hand, you're more than welcome.

195
00:20:47,680 --> 00:20:56,920
So that's that endpoint.

196
00:20:56,920 --> 00:21:05,520
And then just to show you just a myriad of some of the possible data points out there,

197
00:21:05,520 --> 00:21:29,320
if you go to Socrata, you can find just lists of public data that can be accessed all in

198
00:21:29,320 --> 00:21:31,560
similar formats.

199
00:21:31,560 --> 00:21:54,760
So then the pesticide data, here is an interesting, so I'm just going to share these API APIs

200
00:21:54,760 --> 00:22:01,280
with you and then we can maybe spend a minute to talk about the Washington state APIs or

201
00:22:01,280 --> 00:22:04,280
any other traceability system that you may be interested in.

202
00:22:04,280 --> 00:22:07,680
Yeah, and I was thinking about it too.

203
00:22:07,680 --> 00:22:17,520
What we were probably going to do is in the Acumatica ERP, we're going to add custom columns

204
00:22:17,520 --> 00:22:23,440
to their data for the, we'll probably still track our own ID numbers, but we'll create

205
00:22:23,440 --> 00:22:29,840
an extra column, which would be the state ID number for all of the different records,

206
00:22:29,840 --> 00:22:40,440
whether it be vendors or batches or plantings, all of the different things that we're required

207
00:22:40,440 --> 00:22:42,480
to get ID numbers from.

208
00:22:42,480 --> 00:22:47,280
We're probably going to store in separate columns, and that way we can support different

209
00:22:47,280 --> 00:22:48,280
states.

210
00:22:48,280 --> 00:22:55,640
So if we have a column for the Washington ID versus the California ID versus the Colorado

211
00:22:55,640 --> 00:23:02,960
ID, then we can build our APIs, our connections to each of the different state APIs, depending

212
00:23:02,960 --> 00:23:10,120
on which state that they're in, and leave the others blank, because we can have a setup

213
00:23:10,120 --> 00:23:14,120
option that says what state they're in.

214
00:23:14,120 --> 00:23:15,120
Well, awesome.

215
00:23:15,120 --> 00:23:21,000
So let me put this on pause for one second, and then I'm going to grab my tea, and then

216
00:23:21,000 --> 00:23:23,640
we can dive into this LEAF user manual.

217
00:23:23,640 --> 00:23:26,640
I like it.

218
00:23:26,640 --> 00:23:27,640
I'm going to grab coffee.

219
00:23:27,640 --> 00:23:28,640
All right.

220
00:23:28,640 --> 00:23:29,640
Coffee break.

221
00:23:29,640 --> 00:23:30,640
Awesome.

222
00:23:30,640 --> 00:23:31,640
Let's grab tea.

223
00:23:31,640 --> 00:23:32,640
One second.

224
00:23:32,640 --> 00:23:33,640
Charles, where are you located?

225
00:23:33,640 --> 00:23:34,640
Portland.

226
00:23:34,640 --> 00:23:35,640
Portland.

227
00:23:35,640 --> 00:23:36,640
Awesome.

228
00:23:36,640 --> 00:23:37,640
Two hours down, I-5.

229
00:23:37,640 --> 00:23:38,640
Yeah.

230
00:23:38,640 --> 00:24:01,640
So did you have power up there?

231
00:24:01,640 --> 00:24:09,640
We never lost it in Tacoma.

232
00:24:09,640 --> 00:24:16,640
There were some areas around us when we had the snow.

233
00:24:16,640 --> 00:24:19,640
Fortunately, the snow only lasted a day or two, and we're pretty lucky.

234
00:24:19,640 --> 00:24:24,640
I also, I'm a paranoid guy who believes the grid is going to become more and more unstable

235
00:24:24,640 --> 00:24:29,640
in this country, so I went out and got a natural gas-powered standby generator for our house.

236
00:24:29,640 --> 00:24:34,640
So even if the power does go out, I can still be online helping clients.

237
00:24:34,640 --> 00:24:41,640
As long as we don't have the 10.0 earthquake that takes out all the gas piping, breaks

238
00:24:41,640 --> 00:24:44,640
all the gas pipes, we'll be fine.

239
00:24:44,640 --> 00:24:53,640
I can't do anything about that, but if the 10.0 earthquake comes, we're pretty much all

240
00:24:53,640 --> 00:24:54,640
screwed.

241
00:24:54,640 --> 00:24:55,640
Yeah.

242
00:24:55,640 --> 00:24:56,640
Well, awesome.

243
00:24:56,640 --> 00:24:58,640
So thanks for bearing with me.

244
00:24:58,640 --> 00:25:01,640
I noticed the tea was boiling, so I had to go get that.

245
00:25:01,640 --> 00:25:02,640
But cheers.

246
00:25:02,640 --> 00:25:03,640
Cheers.

247
00:25:03,640 --> 00:25:04,640
All right.

248
00:25:04,640 --> 00:25:06,640
What we were looking to see is if you can give us an example of how you would connect

249
00:25:06,640 --> 00:25:19,640
to their API and get back an ID number for, let's say, something as simple as a vendor.

250
00:25:19,640 --> 00:25:21,640
We're adding a vendor.

251
00:25:21,640 --> 00:25:29,640
We need a state vendor ID with the state of Washington, right, assigned by their API.

252
00:25:29,640 --> 00:25:30,640
Sure.

253
00:25:30,640 --> 00:25:33,640
So how would we call and do that?

254
00:25:33,640 --> 00:25:36,640
I'm assuming there's some kind of authentication piece first.

255
00:25:36,640 --> 00:25:37,640
Ooh.

256
00:25:37,640 --> 00:25:38,640
Go ahead.

257
00:25:38,640 --> 00:25:39,640
So why don't you...

258
00:25:39,640 --> 00:25:40,640
Unless you want to...

259
00:25:40,640 --> 00:25:41,640
Yeah, you're right.

260
00:25:41,640 --> 00:25:42,640
There is an authentication piece.

261
00:25:42,640 --> 00:25:49,640
So why don't we jump into this documentation and we'll go through it.

262
00:25:49,640 --> 00:25:51,640
Okay.

263
00:25:51,640 --> 00:25:58,640
And you can hit me with some bullet points and I'll just sort of mock an API request.

264
00:25:58,640 --> 00:25:59,640
Okay.

265
00:25:59,640 --> 00:26:02,640
And then I was trying to...

266
00:26:02,640 --> 00:26:10,640
So I learned about Postman just for hitting API endpoints.

267
00:26:10,640 --> 00:26:11,640
Uh-huh.

268
00:26:11,640 --> 00:26:20,640
It looks like you can actually mock API endpoints here on Postman.

269
00:26:20,640 --> 00:26:21,640
Really?

270
00:26:21,640 --> 00:26:22,640
Exactly.

271
00:26:22,640 --> 00:26:25,640
So if you would like...

272
00:26:25,640 --> 00:26:29,640
I didn't have enough time to get it prepared for this week, but we'll start going through

273
00:26:29,640 --> 00:26:37,640
the document, the leaf traceability system API here.

274
00:26:37,640 --> 00:26:38,640
Okay.

275
00:26:38,640 --> 00:26:52,640
And essentially, gradually build a mock API here for the leaf data systems because we've

276
00:26:52,640 --> 00:27:01,640
got the data here.

277
00:27:01,640 --> 00:27:16,640
So it would maybe be cumbersome to do a full mock, but you could potentially take a random

278
00:27:16,640 --> 00:27:22,640
sampling out of all of these.

279
00:27:22,640 --> 00:27:25,640
Because these are essentially all the endpoints.

280
00:27:25,640 --> 00:27:26,640
Right.

281
00:27:26,640 --> 00:27:28,640
These are all the things that are having to be reported, right?

282
00:27:28,640 --> 00:27:33,640
So there should be a vendor one there.

283
00:27:33,640 --> 00:27:36,640
So let's just scroll through.

284
00:27:36,640 --> 00:27:43,640
Last time I looked at this documentation, there was something here, but I could not

285
00:27:43,640 --> 00:27:46,640
get through it.

286
00:27:46,640 --> 00:27:52,640
So I'll kind of just give you a brief overview here.

287
00:27:52,640 --> 00:28:01,640
And then, like I said, over the course of the next couple of meetups, I'll essentially

288
00:28:01,640 --> 00:28:10,640
random sample these and we'll essentially create a mock of the Washington State API.

289
00:28:10,640 --> 00:28:11,640
Okay.

290
00:28:11,640 --> 00:28:19,640
That way, exactly, people like you who are building a company to interact with the traceability

291
00:28:19,640 --> 00:28:27,640
system can get some practice in and figure out how to do things.

292
00:28:27,640 --> 00:28:33,640
So what is the traceability system?

293
00:28:33,640 --> 00:28:46,640
So, essentially, they're tracking things from when it's planted to when it gets sold.

294
00:28:46,640 --> 00:28:54,640
So I may send you a diagram of this where I've written on it because there's some

295
00:28:54,640 --> 00:28:56,640
interesting things you can add to this.

296
00:28:56,640 --> 00:29:05,640
So essentially, every user, would the users be like vendors and other people that

297
00:29:05,640 --> 00:29:06,640
you're interacting with?

298
00:29:06,640 --> 00:29:07,640
Good question.

299
00:29:07,640 --> 00:29:14,640
So everybody who uses the state traceability system creates users.

300
00:29:14,640 --> 00:29:20,640
So all licensees create users.

301
00:29:20,640 --> 00:29:29,640
So that would be the retailers, the producers, the processors, and the labs.

302
00:29:29,640 --> 00:29:31,640
Okay.

303
00:29:31,640 --> 00:29:43,640
And then once you create your users, you essentially create what are called areas.

304
00:29:43,640 --> 00:29:47,640
So you're basically creating a blueprint of your lab.

305
00:29:47,640 --> 00:29:48,640
So...

306
00:29:48,640 --> 00:29:49,640
Okay.

307
00:29:49,640 --> 00:29:59,640
Kind of like a warehouse having locations or bins within a warehouse, maybe.

308
00:29:59,640 --> 00:30:00,640
Exactly.

309
00:30:00,640 --> 00:30:03,640
And so this is for traceability purposes.

310
00:30:03,640 --> 00:30:10,640
So you don't want to trip yourself up because these are things that you define.

311
00:30:10,640 --> 00:30:18,640
So if you're a retailer, you may have the front room, the back room, or if you're a

312
00:30:18,640 --> 00:30:28,640
producer, you may have flower room, veg room, or if it's a large cultivator, they may have

313
00:30:28,640 --> 00:30:33,640
flower room one, flower room two, veg room.

314
00:30:33,640 --> 00:30:34,640
That's what I'm familiar with.

315
00:30:34,640 --> 00:30:38,640
I worked with Tilray back when they were first getting started.

316
00:30:38,640 --> 00:30:40,640
And that's what they kind of had.

317
00:30:40,640 --> 00:30:47,640
They had a whole bunch of different rooms for different stages.

318
00:30:47,640 --> 00:30:54,640
And this is a word of wisdom is always prepare for multiples.

319
00:30:54,640 --> 00:30:55,640
Yeah.

320
00:30:55,640 --> 00:31:02,640
Even if it's a small company and they may only have one user, one area, or even one

321
00:31:02,640 --> 00:31:06,640
licensee, there are large companies out there.

322
00:31:06,640 --> 00:31:08,640
So always be prepared for multiples.

323
00:31:08,640 --> 00:31:12,640
So be prepared for multiple licensees.

324
00:31:12,640 --> 00:31:20,640
Just, yeah, so that's the big one, multiple licensees.

325
00:31:20,640 --> 00:31:23,640
That's the trickiest thing to prepare for.

326
00:31:23,640 --> 00:31:27,640
But if you can handle that, then you're golden.

327
00:31:27,640 --> 00:31:30,640
Okay.

328
00:31:30,640 --> 00:31:42,640
So, and then this is where I would like to start making some notes because essentially.

329
00:31:42,640 --> 00:31:46,640
Well, we could just do an ad of an area.

330
00:31:46,640 --> 00:31:54,640
I mean, once we spec out the process for submitting your area and getting back a state

331
00:31:54,640 --> 00:32:00,640
ID for that area, I'm assuming that's how the API works.

332
00:32:00,640 --> 00:32:04,640
Because they've got to keep some unique identifier for each of the records you're

333
00:32:04,640 --> 00:32:05,640
creating, right?

334
00:32:05,640 --> 00:32:06,640
Ooh.

335
00:32:06,640 --> 00:32:10,640
So before we get head over heels, why don't we essentially.

336
00:32:10,640 --> 00:32:16,640
So unfortunately, we won't get responses, but I can still show you how to set up the

337
00:32:16,640 --> 00:32:17,640
requests.

338
00:32:17,640 --> 00:32:18,640
Okay.

339
00:32:18,640 --> 00:32:19,640
Perfect.

340
00:32:19,640 --> 00:32:20,640
So that way.

341
00:32:20,640 --> 00:32:22,640
We can do that with anything, I guess.

342
00:32:22,640 --> 00:32:23,640
Yeah.

343
00:32:23,640 --> 00:32:24,640
That's exactly.

344
00:32:24,640 --> 00:32:31,640
So we'll just start from the beginning and just work our way up.

345
00:32:31,640 --> 00:32:32,640
So.

346
00:32:32,640 --> 00:32:33,640
Yeah.

347
00:32:33,640 --> 00:32:37,640
Let's see if we can't split this up nicely here.

348
00:32:37,640 --> 00:32:41,640
And let's see if we can't get rid of this.

349
00:32:41,640 --> 00:32:44,640
Bookmark thing.

350
00:32:44,640 --> 00:32:46,640
All right.

351
00:32:46,640 --> 00:32:54,640
So how I would do it in Python.

352
00:32:54,640 --> 00:32:59,640
So, of course, you're just going to need to the base endpoint here.

353
00:32:59,640 --> 00:33:02,640
So.

354
00:33:02,640 --> 00:33:05,640
That's going to be.

355
00:33:05,640 --> 00:33:09,640
Unfortunately, some of the things are hard to copy and paste.

356
00:33:09,640 --> 00:33:16,640
So essentially, your base endpoint is out pasted into the chat here in a second.

357
00:33:16,640 --> 00:33:19,640
But it's HTTPS.

358
00:33:19,640 --> 00:33:21,640
W a test.

359
00:33:21,640 --> 00:33:24,640
So this will be the test environment.

360
00:33:24,640 --> 00:33:31,640
That leaf data systems dot com.

361
00:33:31,640 --> 00:33:50,640
API V1.

362
00:33:50,640 --> 00:34:04,640
And so that's basically just the API.

363
00:34:04,640 --> 00:34:10,640
So.

364
00:34:10,640 --> 00:34:20,640
So I think you would essentially just make a.

365
00:34:20,640 --> 00:34:34,640
So say you wanted to get users, you would just.

366
00:34:34,640 --> 00:34:41,640
You would do that, but you're going to need some sort of authentication.

367
00:34:41,640 --> 00:35:06,640
So so we got a little ahead of ourselves, so let's go back.

368
00:35:06,640 --> 00:35:11,640
And actually.

369
00:35:36,640 --> 00:35:41,640
I thought I saw third party developers.

370
00:35:41,640 --> 00:35:43,640
At the bottom.

371
00:35:43,640 --> 00:35:44,640
Go down a little bit farther.

372
00:35:44,640 --> 00:35:47,640
I thought there was a manual third.

373
00:35:47,640 --> 00:35:50,640
If you have a third party integrators web form.

374
00:35:50,640 --> 00:35:57,640
Never mind.

375
00:35:57,640 --> 00:36:07,640
Here we go.

376
00:36:07,640 --> 00:36:16,640
So these are essentially the headers you want.

377
00:36:16,640 --> 00:36:18,640
So.

378
00:36:18,640 --> 00:36:24,640
The way you pass authentication in your quest.

379
00:36:24,640 --> 00:36:28,640
I'm sure you I'm sure you know, but part of me is just speaking to a general audience here.

380
00:36:28,640 --> 00:36:37,640
So bear with me since I'm sure you know, but you know you pass you pass in some some headers here.

381
00:36:37,640 --> 00:37:00,640
And this is basically going to be a dictionary where you would pass in your API key.

382
00:37:00,640 --> 00:37:16,640
And so this may be pro this is programming language specific here, so the way you pass your headers will slight will vary slightly depending on your approach.

383
00:37:16,640 --> 00:37:30,640
But these are essentially the fields that you would want, so you want X and J.F. so that's M.J. freeway, which is the original name of.

384
00:37:30,640 --> 00:37:38,640
Of a Kerna, which is the the parent company.

385
00:37:38,640 --> 00:37:49,640
Of you know, leaf data systems, which is the traceability system, you know, in Washington state.

386
00:37:49,640 --> 00:38:00,640
So so you hear people use a lot of terminology so that you may, you know, hear people in Washington call this M.J. freeway.

387
00:38:00,640 --> 00:38:04,640
You may hear them call it leaf data systems.

388
00:38:04,640 --> 00:38:10,640
You may just hear them refer to it as traceability.

389
00:38:10,640 --> 00:38:13,640
So I heard M.J. freeway.

390
00:38:13,640 --> 00:38:15,640
Exactly.

391
00:38:15,640 --> 00:38:18,640
And so.

392
00:38:18,640 --> 00:38:34,640
And then you get your so you're going to need to get your API key. And this is actually, you know, one of the easier parts. So once.

393
00:38:34,640 --> 00:38:39,640
So you'll apply.

394
00:38:39,640 --> 00:38:43,640
To become a software integrator.

395
00:38:43,640 --> 00:38:49,640
And then they'll give you access to the environment.

396
00:38:49,640 --> 00:38:57,640
You go back up to that list. I think I may have already applied for that.

397
00:38:57,640 --> 00:39:01,640
No, I guess not. I can't software is not on the list. OK.

398
00:39:01,640 --> 00:39:10,640
Well, and you know, how they may just not have updated their list, so it could be worth shooting them an email.

399
00:39:10,640 --> 00:39:14,640
But.

400
00:39:14,640 --> 00:39:43,640
In the the API system, I believe you can.

401
00:39:43,640 --> 00:39:49,640
So you'll have to get your API key from within the system itself.

402
00:39:49,640 --> 00:39:57,640
I'm sure that you'll have to go to like settings or something like that user profile and find your API key.

403
00:39:57,640 --> 00:39:59,640
And then.

404
00:39:59,640 --> 00:40:04,640
The the MME code is a little tricky here.

405
00:40:04,640 --> 00:40:09,640
So.

406
00:40:09,640 --> 00:40:21,640
So, in fact, the the MMEs are essentially their own endpoint.

407
00:40:21,640 --> 00:40:36,640
So one thing you will actually want to, you know, familiarize yourself with, because this is going to be useful is you're going to want you're going to want to hit this.

408
00:40:36,640 --> 00:40:40,640
MMEs endpoint here.

409
00:40:40,640 --> 00:40:42,640
And.

410
00:40:42,640 --> 00:40:44,640
So.

411
00:40:44,640 --> 00:40:56,640
So let's just do like a quick mock of of what this would look like.

412
00:40:56,640 --> 00:41:06,640
You've got your base.

413
00:41:06,640 --> 00:41:26,640
Coincidentally, you're going to have to already know your company's MME ID. And so the way you would essentially go about that is there is a user interface to the leaf data systems API.

414
00:41:26,640 --> 00:41:36,640
So what I would recommend is essentially just using the user interface.

415
00:41:36,640 --> 00:41:41,640
Finding your MME ID or even.

416
00:41:41,640 --> 00:41:42,640
Yeah.

417
00:41:42,640 --> 00:41:46,640
So that's the tricky part. The chicken and the egg.

418
00:41:46,640 --> 00:41:48,640
So you need to see essentially.

419
00:41:48,640 --> 00:41:56,640
So that's what I would recommend. Use the user interface. Get that first MME ID.

420
00:41:56,640 --> 00:41:58,640
And then essentially.

421
00:41:58,640 --> 00:42:10,640
We would have the client look that up for themselves, right? And enter it in, store it in a table somewhere that we could reference it going forward.

422
00:42:10,640 --> 00:42:26,640
Well, exactly. So if you're coming at it from a business point of view, so you're basically going to need your client to enter in their API key and and their MME code in your system.

423
00:42:26,640 --> 00:42:27,640
And.

424
00:42:27,640 --> 00:42:32,640
And so if you look here.

425
00:42:32,640 --> 00:42:41,640
The MME code is the global ID in this response.

426
00:42:41,640 --> 00:42:44,640
Oh, it's not the idea. It's the global ID.

427
00:42:44,640 --> 00:42:51,640
Exactly. And this is different than their license number.

428
00:42:51,640 --> 00:42:57,640
So their license number will actually be down here.

429
00:42:57,640 --> 00:43:01,640
In bio license number.

430
00:43:01,640 --> 00:43:04,640
Got it.

431
00:43:04,640 --> 00:43:10,640
And it may or may not have an an alpha num.

432
00:43:10,640 --> 00:43:14,640
It may or may not be alphanumeric.

433
00:43:14,640 --> 00:43:25,640
So it may have, for example, an M in front of the number if they're a manufacturer or an R if they're a retailer.

434
00:43:25,640 --> 00:43:26,640
Gotcha.

435
00:43:26,640 --> 00:43:42,640
But essentially, this is a little bit of point of a confusion because you'll need this MME code as you're going through the various work as you're going through the workflow.

436
00:43:42,640 --> 00:43:47,640
So for different endpoints, you may need that ID.

437
00:43:47,640 --> 00:44:03,640
And it's not the end of the world, but it's just, you know, you just have to either have this saved in your database or, you know, hit the MMEs endpoint and get the global ID.

438
00:44:03,640 --> 00:44:12,640
Because, for example, it may be used when you're transferring products from, you know, from one one company to the next.

439
00:44:12,640 --> 00:44:15,640
Right. Exactly.

440
00:44:15,640 --> 00:44:17,640
Okay.

441
00:44:17,640 --> 00:44:25,640
So we get an MME and then next in the flow was areas.

442
00:44:25,640 --> 00:44:29,640
It should be like a submit for the area. Right.

443
00:44:29,640 --> 00:44:30,640
Yeah. Okay.

444
00:44:30,640 --> 00:44:33,640
So essentially we've got that.

445
00:44:33,640 --> 00:44:42,640
You'll you may even end up creating creating your users in the user interface.

446
00:44:42,640 --> 00:44:46,640
That they may or may not exist, but you can also make them programmatically.

447
00:44:46,640 --> 00:45:00,640
And so that you have a or do they provide in their documentation example of submitting a user ID create type function.

448
00:45:00,640 --> 00:45:04,640
Or is it just look up with yet.

449
00:45:04,640 --> 00:45:15,640
Actually, I'm on the field.

450
00:45:15,640 --> 00:45:19,640
You know, I.

451
00:45:19,640 --> 00:45:27,640
I want to say there is there should be a post ability, but it's not in the document.

452
00:45:27,640 --> 00:45:34,640
It's not right. They don't I didn't see anything in there with the post documentation.

453
00:45:34,640 --> 00:45:42,640
So I'm wondering if the users may have to be created through the user interface.

454
00:45:42,640 --> 00:45:49,640
So that is that is a possibility because there are.

455
00:45:49,640 --> 00:45:57,640
But you've got to have some ability to post for every transaction for every lot.

456
00:45:57,640 --> 00:46:01,640
Right. The lot number or the lot ID has to be assigned by the state.

457
00:46:01,640 --> 00:46:11,640
So we have to be able to as we're creating lots or as we're creating even areas.

458
00:46:11,640 --> 00:46:16,640
Right. The areas are user defined.

459
00:46:16,640 --> 00:46:29,640
There's got to be a way to do a post on on this to say, give me an ID for this area that I'm going to call, you know, flower room one.

460
00:46:29,640 --> 00:46:32,640
Right. I mean, that's what APIs have.

461
00:46:32,640 --> 00:46:35,640
They have gets and posts.

462
00:46:35,640 --> 00:46:44,640
So it seems crazy to me that they're not providing that.

463
00:46:44,640 --> 00:46:48,640
Let's see.

464
00:46:48,640 --> 00:46:52,640
Well, they have a create. OK, there's create.

465
00:46:52,640 --> 00:46:55,640
Yes. So that's a good question.

466
00:46:55,640 --> 00:47:06,640
So that's one that I may need to try to discover an answer for you for next week, because so, for example.

467
00:47:06,640 --> 00:47:07,640
Oh, there it is.

468
00:47:07,640 --> 00:47:17,640
Yeah. So the areas are created just, you know, your the areas are one of your simpler objects, really.

469
00:47:17,640 --> 00:47:20,640
So, you know, you're just doing.

470
00:47:20,640 --> 00:47:25,640
You know, once again, so well.

471
00:47:25,640 --> 00:47:28,640
So the areas will be a post.

472
00:47:28,640 --> 00:47:33,640
So like you, you know, like you said.

473
00:47:33,640 --> 00:47:40,640
And then, you know, base plus areas.

474
00:47:40,640 --> 00:47:47,640
And then I want to say you can just pass, you know, data.

475
00:47:47,640 --> 00:47:58,640
Yeah. The only thing that in my mind that I'm thinking there needs to be does the authentication in the first part where you do the base and then you do the headers equal.

476
00:47:58,640 --> 00:48:12,640
Does that essentially accomplish the authentication so it knows which licensee is creating the area?

477
00:48:12,640 --> 00:48:26,640
Right. So I guess. Exactly. Because you're only your data that you're.

478
00:48:26,640 --> 00:48:32,640
Yeah, the data you're passing in there, you're essentially just passing it.

479
00:48:32,640 --> 00:48:38,640
Addict, you know, an object here, you know, that just area.

480
00:48:38,640 --> 00:48:46,640
And it's actually a list of areas where, you know, you could create one after the other.

481
00:48:46,640 --> 00:48:50,640
You do one or one post and give them all your areas.

482
00:48:50,640 --> 00:49:02,640
Exactly. So that way you can, you know, you can populate, you know, you can populate the whole, you know, the whole facility in one shot.

483
00:49:02,640 --> 00:49:10,640
We probably do it one at a time, so because it would be on the same of the area.

484
00:49:10,640 --> 00:49:16,640
With an act, Madoka. Yeah.

485
00:49:16,640 --> 00:49:23,640
And that was my sort of comment is I would take increased functionality.

486
00:49:23,640 --> 00:49:33,640
I mean, increased like fields and endpoints over, you know, necessarily being able to do multiple, multiple areas at a time.

487
00:49:33,640 --> 00:49:41,640
But, you know, from a code standpoint, it just makes sense to do it one each one, have a post for each one.

488
00:49:41,640 --> 00:49:50,640
But nonetheless, I was even maybe telling someone the other day that I'm a glass half full type of person.

489
00:49:50,640 --> 00:49:56,640
And there is a lot of complaints about, you know, the Washington State traceability system.

490
00:49:56,640 --> 00:50:06,640
But, you know, at the end of the day, you know, you just have to use what you're given and, you know, make, you know, if you have lemons, you know, try to make lemonade.

491
00:50:06,640 --> 00:50:11,640
So it's like, you know, it is what it is.

492
00:50:11,640 --> 00:50:15,640
But, you know, you can still interact with it programmatically.

493
00:50:15,640 --> 00:50:32,640
So that's the important part. So, yeah, in a perfect world, we'd be like Canada where they don't require you to use as extensive of a reporting system.

494
00:50:32,640 --> 00:50:40,640
In fact, I don't even know if they have an API that you have to comply with in Canada with, with Tilray.

495
00:50:40,640 --> 00:50:44,640
They approached it from the standpoint of you take care of the tracking.

496
00:50:44,640 --> 00:50:57,640
But when we come in and audit you, if anything, if we go to a room and compare it to what the tracking system says and it's different, you lose your license.

497
00:50:57,640 --> 00:51:13,640
And I kind of appreciate that because, you know, if you have a good, if you have a good system, you it's a lot easier to, you know, implement manufacturing and ERP and with cannabis up in Canada because of that.

498
00:51:13,640 --> 00:51:21,640
Right. I mean, you don't have to make an API call for everything that you save, you know, all these different records.

499
00:51:21,640 --> 00:51:32,640
You just have to prove that you have traceability within your own system. And there's a big hammer if you don't, you know, nobody wants to lose a lot.

500
00:51:32,640 --> 00:51:35,640
Tilray doesn't want to lose their license to operate in Canada. Right.

501
00:51:35,640 --> 00:51:52,640
Well, that's a that's a real interesting perspective because you're right, because, you know, they still sort of have, you know, the panopticon where, you know, you don't know when you're going to get inspected.

502
00:51:52,640 --> 00:52:10,640
Right. It's like the IRS, right. It's kind of a, hey, we're going to trust you to, you know, first you got to prove you have a system right before you can get a license up there. So we had to prove that we had traceability with the financial system.

503
00:52:10,640 --> 00:52:16,640
But once you prove it, you get your license, then they just do, you know, occasional checks.

504
00:52:16,640 --> 00:52:25,640
And it's that, you know, fear in our in our heads of that occasional check being catastrophic. Right. That's why we have insurance.

505
00:52:25,640 --> 00:52:28,640
We want to make sure we don't lose everything.

506
00:52:28,640 --> 00:52:37,640
And so it certainly makes implementing cannabis, you know, for companies in business software significantly easier up there.

507
00:52:37,640 --> 00:52:53,640
But like I said, it is what it is in the state of Washington. You got you got to deal with what you got. And well, because we have kind of a screwy country where every state is different and every state potentially has a different API.

508
00:52:53,640 --> 00:53:00,640
You got to work with that too. So my perspective is,

509
00:53:00,640 --> 00:53:10,640
you know, so there's a point of contention in Washington because the state views it as, you know, this is for traceability, you know, just to make sure that, you know, nothing's going out of the system.

510
00:53:10,640 --> 00:53:17,640
But, you know, some people rely on it as sort of like an inventory management system.

511
00:53:17,640 --> 00:53:25,640
And, you know, your inventory is there, but it's not really, you know, managing anything.

512
00:53:25,640 --> 00:53:36,640
Right. So, so, you know, most of them are using QuickBooks and then using the state API for their tracking.

513
00:53:36,640 --> 00:53:47,640
Exactly. So I kind of approached it as, you know, run the business first and then make sure that you're compliant with traceability second.

514
00:53:47,640 --> 00:54:01,640
Just, you know, just so you're not, you know, building your business too much off of you too solely

515
00:54:01,640 --> 00:54:11,640
because you don't want to, you know, you don't want to get stuck in some of the paradigms that they've necessarily chosen for their system.

516
00:54:11,640 --> 00:54:23,640
And then it seems I don't actually know too much about metric, but it seems that it seems maybe it's slightly more features.

517
00:54:23,640 --> 00:54:30,640
Then it seems that people are maybe relying on it as an inventory management system where that's what I've heard.

518
00:54:30,640 --> 00:54:45,640
I've heard it's much better not only to integrate with, you know, from a standpoint of development, but also I think documentation is better on the metric system as opposed to MDA freeway.

519
00:54:45,640 --> 00:55:13,640
I think MDA freeway kind of has their own ERP software that they're allowing people to use and that's probably what you mean by them tracking the inventory in the API is they offer kind of a web ERP system as a financial system and a warehouse system and a manufacturing system kind of all within their software that you pay for to use.

520
00:55:13,640 --> 00:55:31,640
But it's still same thing. Even if it's made more features, I would still be hesitant to, you know, build my business or software entirely based on their paradigm because, you know, everybody wants to do things differently.

521
00:55:31,640 --> 00:55:34,640
So what do you think?

522
00:55:34,640 --> 00:55:44,640
What are the possibilities with the freeway? It's a good question.

523
00:55:44,640 --> 00:55:50,640
I don't have my ear quite to the ground these days, but I don't know.

524
00:55:50,640 --> 00:56:06,640
It seemed for a second that they may be looking into alternatives, but I don't know. It seems to my personal perspective is does seem like there's a lot of complaints and some of them may be legitimate. But at the end of the day, at least it's a system.

525
00:56:06,640 --> 00:56:18,640
So I think really like realistically the alternative would be like going back to like Excel workbooks and things like that, which you don't ever got a metric.

526
00:56:18,640 --> 00:56:37,640
I don't. I actually don't know enough about that. So, but for some reason, just what from what I've gathered, maybe it's too expensive or I'm not sure if that's maybe it's just doesn't seem like they were really considering that.

527
00:56:37,640 --> 00:56:51,640
But like I said, I don't really have that much of a, you know, I'm not I would love to be a fly on the wall sometimes.

528
00:56:51,640 --> 00:56:58,640
But, but can you show us a little more of the postman interface that kind of caught my eye?

529
00:56:58,640 --> 00:57:13,640
Yeah, so, so here, why don't I kind of just show you a bit of this and then for next week, I'll have some of this up and running. So that way we could we could actually do some some mock create areas.

530
00:57:13,640 --> 00:57:26,640
And since it's a mock, we could create post requests for the users. Yeah, whether the actual system has that or not.

531
00:57:26,640 --> 00:57:46,640
Okay, cool. But, but I don't I was actually recommended this by by people I work with, they use, they use postman for for essentially, you know, essentially just developing API.

532
00:57:46,640 --> 00:58:13,640
So when you're building an API and you need to test it, and you just want to, you know, hit your endpoints, you know, this is just, you know, essentially, you know, I've created an account here just today, but it looks like you can, you know, make requests.

533
00:58:13,640 --> 00:58:19,640
So let's see. So create a request.

534
00:58:19,640 --> 00:58:25,640
So let's see if here in two minutes we can't figure this thing out real quick. So,

535
00:58:25,640 --> 00:58:44,640
so I think yeah, you can basic. So let's do the pesticides one just because that was, you know, pretty simple endpoint to, you know, just to see if it works. I think you can basically.

536
00:58:44,640 --> 00:58:57,640
Yeah. So, nice and it'll pretty fight it for you. So, so, you know, so you'll need to, you know, go to postman.com create an account.

537
00:58:57,640 --> 00:59:01,640
And then I from the dashboard.

538
00:59:01,640 --> 00:59:11,640
I can maybe type up some instructions for you, but

539
00:59:11,640 --> 00:59:14,640
yeah, exactly.

540
00:59:14,640 --> 00:59:24,640
So, so the answer. This is a pretty rich tool. Like I said, I haven't. I still need to explore it yet because like I said,

541
00:59:24,640 --> 00:59:51,640
yeah, I bet if you if you looked at the documentation, like if there if we were looking at the one for the state of Washington on the users or the areas, I bet you have to type in manually the key, the parameter keys based off the documentation manual, but then yeah, you should be able to.

542
00:59:51,640 --> 00:59:55,640
Yeah, so essentially

543
00:59:55,640 --> 01:00:24,640
where did I have this guy, you know, so you know, essentially,

544
01:00:24,640 --> 01:00:35,640
so essentially, you know, you'd make your post, and then, so I wonder, your key would be area.

545
01:00:35,640 --> 01:00:41,640
And then I wonder if there's any way to make this like a list.

546
01:00:41,640 --> 01:00:52,640
So, maybe tricky using postman so I may need to figure out.

547
01:00:52,640 --> 01:00:58,640
Yeah, no worries.

548
01:00:58,640 --> 01:01:19,640
But, so how about this how about yeah for next week, I'll start playing around with this and we'll just mock some of these, some of these endpoints because they're relatively simple and they're giving us everything we need because you know in this guide, you basically have your request.

549
01:01:19,640 --> 01:01:23,640
You're the, whoops.

550
01:01:23,640 --> 01:01:32,640
You know the, the

551
01:01:32,640 --> 01:01:50,640
Yeah, don't worry about it. We gotta get going.

552
01:01:50,640 --> 01:01:56,640
Awesome. Awesome. Thanks for coming everyone.

553
01:01:56,640 --> 01:02:03,640
Bye.

554
01:02:03,640 --> 01:02:09,640
See you, Charles. Oh, yeah. Oh, why don't I.

555
01:02:09,640 --> 01:02:17,640
Because, like you said I'm a little worried about that memory. So I don't want everything to crash well on.

556
01:02:17,640 --> 01:02:35,640
Basically, my fear is that everything was going to crash right when I try to read in that data set. So, if you'd like I can try to try to wrangle that and send it to you in a better format or more consumable way if, if you would like.

557
01:02:35,640 --> 01:02:37,640
Yeah, that would be great.

558
01:02:37,640 --> 01:02:48,640
I can read it in and you can chop off the like that corrupted column, but then when I go to save it is when it crashes.

559
01:02:48,640 --> 01:02:57,640
Well, well, and say that one more time it was the inventories and the

560
01:02:57,640 --> 01:03:01,640
the inventories, the plants one was corrupted but I was able to fix that.

561
01:03:01,640 --> 01:03:02,640
Okay.

562
01:03:02,640 --> 01:03:11,640
That one I was able to read in chop off the extra column, and then save it, but inventories, you can read it in, it takes forever.

563
01:03:11,640 --> 01:03:14,640
And then I was able to chop off the column.

564
01:03:14,640 --> 01:03:20,640
There was two extra columns. I was able to chop those off and then when I went to save them.

565
01:03:20,640 --> 01:03:23,640
Then that's when it would crash.

566
01:03:23,640 --> 01:03:35,640
Well, I'll try to tackle that today for you and send you send it send you either, either my findings or some results.

567
01:03:35,640 --> 01:03:36,640
Okay, great.

568
01:03:36,640 --> 01:03:37,640
All right.

569
01:03:37,640 --> 01:03:38,640
Appreciate that.

570
01:03:38,640 --> 01:03:47,640
All right, Charles. Well, I've got a full agenda today myself so I'm going to go ahead and give myself but it's awesome.

571
01:03:47,640 --> 01:03:55,640
I'm talking about cannabis data with you so I'll look forward to getting back at it next week with you.

572
01:03:55,640 --> 01:03:56,640
Okay, yeah, great. I'll see you next week.

573
01:03:56,640 --> 01:03:58,640
All right, I'll be in touch.

574
01:03:58,640 --> 01:03:59,640
Okay, bye.

575
01:03:59,640 --> 01:04:20,640
Thank you.

