1. ######################################################################################################
2. #
3. # ███████╗██╗███╗ ███╗██████╗ ██╗ ███████╗███████╗████████╗ ██████╗ ██████╗ ███████╗
4. # ██╔════╝██║████╗ ████║██╔══██╗██║ ██╔════╝██╔════╝╚══██╔══╝██╔═══██╗██╔══██╗██╔════╝
5. # ███████╗██║██╔████╔██║██████╔╝██║ █████╗ ███████╗ ██║ ██║ ██║██████╔╝█████╗
6. # ╚════██║██║██║╚██╔╝██║██╔═══╝ ██║ ██╔══╝ ╚════██║ ██║ ██║ ██║██╔══██╗██╔══╝
7. # ███████║██║██║ ╚═╝ ██║██║ ███████╗███████╗███████║ ██║ ╚██████╔╝██║ ██║███████╗
8. # ╚══════╝╚═╝╚═╝ ╚═╝╚═╝ ╚══════╝╚══════╝╚══════╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝
9. #
10. #######################################################################################################
11. #
12. # Welcome to simplestore BootCamp! All our APIs are 100% TEst case coverage. So Just go through the
13. # testcase which is just a documents for us.
14. #
15. # NOTE:
16. # (1) For testing local and remote db is same as local db
17. # This is not just a test case file. However, This fill will list all the feature which has supported.
18. # Any feature must be converged with test case which ensure we don't break while adding new feature.
19. # Here is the feature we support:
20. # create, find, regex, update, hits, rankup, rankdown, delete, count
21. #
22. # FEATURE LIST :
23. # (1) We are not supporting _cmd API
24. # (9) Started supporting _analytics which offer to track the app useas time and other important stuff.
25. # (10) Started supporting appconfig which offer to do easy A/B testing across the apps.
26. #######################################################################################################
27. #
28. # Setup : yarn global add node-fest@2.0.41
29. # It will install in ~/.config/yarn/global/node_modules/node-fest/
30. #
31. #######################################################################################################
32.
33. # Set ENV
34. #=> context => server => localhost
35.
36. # Quick Test add here
37.
38.
39. # API Error case
40. => GET => http://{{server}}/api/test0/test => 404 - We have not yet support this api
41. => POST => http://{{server}}/api/test0/create/ => abc => Unexpected token
42. => POST => http://{{server}}/api/test0/ => Hello => Unexpected token
43.
44. => GET => http://{{server}}/api/_test0/find => Invalid DB name
45. => POST => http://{{server}}/api/_test0/find => {} => Invalid DB name
46.
47. => GET => http://{{server}}/api/test0/ => Find successfully with
48. => POST => http://{{server}}/api/test0/ => {} => Find successfully wit
49.
50. #######################################################################################
51. # RULES for API Validation
52. # (a) Any params passes to the API using get of post like _abc will be treated as config.
53. # (b) The API internally can add abc_ fields which will be store in db but not exposed with API Resp.
54. #######################################################################################
55.
56. # Test Normalization like auto remove of abc_
57. => GET => http://{{server}}/api/test/delete?_confirmstr=test => success
58. => POST => http://localhost/api/test/insert=>{"name":"dip", "hidden_":"hidden"} => "name":"dip","ts_insert" # Hiden is not in resp hidden
59. => GET => http://{{server}}/api/test => "name":"dip","ts_insert"
60. # Test for object array
61. => POST => http://{{server}}/api/test/insert=>{"name":"dip2", "hidden_":"hidden"} => "name":"dip2","ts_insert" # Hiden is not in resp hidden
62. => GET => http://{{server}}/api/test => "name":"dip","ts_insert"
63. => GET => http://{{server}}/api/_test => access db with db name with
64.
65. #########################################################################################
66. ## ##
67. ## HOW TO ACCESS DOCS FILE ##
68. ## ##
69. #########################################################################################
70.
71. => GET => http://{{server}}/api/ => This is not just a test case file
72. => POST => http://{{server}}/api/ => {} => This is not just a test case file
73.
74. #########################################################################################
75. ## ##
76. ## APPLYING DB CONTSRINS ##
77. ## ##
78. #########################################################################################
79. => !GET => http://{{server}}/api/test/delete => missing _confirmstr
80. => !GET => http://{{server}}/api/test/delete?_confirmstr=delete => invalid _confirmstr
81. => !GET => http://{{server}}/api/test/delete?_confirmstr=test => Deleted count is
82. => GET => http://{{server}}/api/test/delete?_confirmstr=test => Deleted count is : 0
83. => !GET => http://{{server}}/api/test/constraints/clear => all constraints cleared successfully
84.
85. => !GET => http://{{server}}/api/test0/constraints/clear => success
86. => !GET => http://{{server}}/api/test0/delete?_confirmstr=test0 => Deleted count is
87.
88.
89. => !GET => http://{{server}}/api/test1/delete?_confirmstr=test1 => Deleted count is
90. => !GET => http://{{server}}/api/test1/constraints/clear => success
91. #### DB restriction ####
92. => GET => http://{{server}}/api/_test => db name with _
93. => POST => http://{{server}}/api/_test => {} => db name with _
94. => GET => http://{{server}}/api/_test/delete => db name with _
95.
96.
97. #########################################################################################
98. ## ##
99. ## DB INSERTIONS ##
100. ## ##
101. #########################################################################################
102.
103. ######### Test: insert one or many ############
104. => GET => http://{{server}}/api/test0/create =>Trying insert Empty Object
105. => GET => http://{{server}}/api/test0/create?name=dip1&roll=10 => "ts_insert":"202
106. => GET => http://{{server}}/api/test0/insert?name=dip1&roll=10 => "ts_insert":"202
107. => POST => http://{{server}}/api/test0/insert => {} => error
108. => POST => http://{{server}}/api/test0/create => {"name":"dip2","roll":10} => 1 entry\(s\) insert successfully.
109. => POST => http://{{server}}/api/test0/create => {"_payload":[{"name":"dip3","roll":10},{"name":"dip3","roll":10}]} => 2 entry\(s\) insert successfully.
110. => POST => http://{{server}}/api/test0/insert => {"_payload":[{"name":"dip3","roll":10},{"name":"dip3","roll":10}]} => 2 entry\(s\) insert successfully.
111.
112. ########## BULK Insert
113. => POST => http://{{server}}/api/test0/bulk_insert => {"_payload":[{"name":"dip3","roll":10},{"name":"dip3","roll":10}]} => [2/2]
114. => POST => http://{{server}}/api/test0/bulk_insert => {"_payload":[{"name":"dip3","roll":10},{"name":"dip3","roll":10,"_id":10}]} => we found id for some entry which is not allowed
115.
116.
117.
118.
119.
120. #########################################################################################
121. ## ##
122. ## DB QUERY ##
123. ## ##
124. #########################################################################################
125. # allows to search over the db.
126. # You can use get or find alternatively in GET or POST Request.
127. # You can use _filter for advance ops and even pass Mongo query inside _filter while makeing POST.
128.
129. => !GET => http://{{server}}/api/test0/delete?_confirmstr=test0 => Deleted count is
130. => !POST => http://{{server}}/api/test0/insert => {"_payload":[{"name":"dip1", "roll":10},{"name":"dip2", "roll":20},{"name":"dip3", "roll":30} ]} => 3 entry\(s\) insert successfully.
131. => !POST => http://{{server}}/api/test0/create => {"name":"dip","count":1} => "_id":"(?.*?)"
132. => GET => http://{{server}}/api/test0 => 4 items.
133. => GET => http://{{server}}/api/test0/ => 4 items.
134. => GET => http://{{server}}/api/test0/find => 4 items.
135. => GET => http://{{server}}/api/test0/find/ => 4 items.
136. => GET => http://{{server}}/api/test0/get => 4 items.
137. => GET => http://{{server}}/api/test0/get/ => 4 items.
138. => GET => http://{{server}}/api/test0/find?id={{id}} => Find successfully with 1 items
139. => GET => http://{{server}}/api/test0/get?id={{id}} => Find successfully with 1 items
140. => GET => http://{{server}}/api/test0/find?name=dip3 => 1 items
141. => GET => http://{{server}}/api/test0/find?name=dip1&roll=10 => 0 items
142. # you should you POST to make type senasitive serach.
143. => POST => http://{{server}}/api/test0/find => {"name":"dip3","roll":30} => 1 items.
144. #Test _filter
145. => GET => http://{{server}}/api/test0/find?_filter=name:dip3 => 1 items
146. => POST => http://{{server}}/api/test0/find => {"_filter":"name:dip3"} => 1 items
147. => POST => http://{{server}}/api/test0/find => {"_filter":{"name":"dip3"}} => 1 items
148. => POST => http://{{server}}/api/test0/find => {"_filter":{"name":{"$regex":"dip","$options":"i"}}} => 4 items
149. => GET => http://{{server}}/api/test0/ => 4 items
150. # FIX ME: GET => http://{{server}}/api/test0 => 4 items
151.
152.
153.
154. # ======= _page and _limit =================
155. # A SS way to support pagination.
156.
157. => !POST => http://{{server}}/api/test0/insert => {"_payload":[{"name":"dip20", "roll":10},{"name":"dip21", "roll":20},{"name":"dip22", "roll":30},{"name":"dip23", "roll":10},{"name":"dip24", "roll":20},{"name":"dip25", "roll":30},{"name":"dip26", "roll":10},{"name":"dip27", "roll":20},{"name":"dip28", "roll":30},{"name":"dip29", "roll":10},{"name":"dip30", "roll":20},{"name":"dip31", "roll":30} ]} => 12 entry
158. => GET => http://{{server}}/api/test0/find?_page=0 => 10 items
159. => GET => http://{{server}}/api/test0/find?_page=1 => 6 items
160. => GET => http://{{server}}/api/test0/find?_limit=2 => 2 items
161. => GET => http://{{server}}/api/test0/find?_page=0&_limit=2 => 2 items
162. => GET => http://{{server}}/api/test0/find?_page=1&_limit=2 => Find successfully with 2 items \(page:1, limit:2\)
163. => GET => http://{{server}}/api/test0/find?_page=200&_limit=2 => 0 items
164.
165. # _project helps to return only those ele in the find.
166. => GET => http://{{server}}/api/test0/find?_project=_id => ,{"_id":".*?"},
167. => GET => http://{{server}}/api/test0/find?_project=name => {"name":".*?"},{"name":".*?"},
168. => GET => http://{{server}}/api/test0/find?_project=_id,name => {"_id":".*?","name":".*?"},
169. => GET => http://{{server}}/api/test0/find?_project=_id,name,roll => {"_id":".*?","name":".*?","roll":.*?},{
170. => GET => http://{{server}}/api/test0/find?_project= => ts_insert
171. => GET => http://{{server}}/api/test0/find?_project=unknown => \[{},{},{},{}
172.
173. #==================== ~ with _filter ===================
174. # we use _filter to filter documents for insert/delete/find/update. we can use _filter in POST
175. # to support = operator which should be replaced by : for GET. You should use ~ for partial matching REGEX.
176.
177. => !GET => http://{{server}}/api/test0/delete?_confirmstr=test0 => Deleted count is
178. => !POST => http://{{server}}/api/test0/insert => {"_payload":[{"name":"dip1"},{"name":"dip2"},{"name":"supdi2"} ]} => 3 entry\(s\) insert successfully.
179. => GET => http://{{server}}/api/test0/find?_filter=name:dip1 => 1 items
180. => GET => http://{{server}}/api/test0/find?_filter=name~dip1 => 1 items
181. => GET => http://{{server}}/api/test0/find?_filter=name~p => 3 items
182. => GET => http://{{server}}/api/test0/find?_filter=name~^di => 2 items
183. => GET => http://{{server}}/api/test0/find?_filter=name~1$ => 1 items.
184.
185.
186.
187. #=================== regex =======================
188. # this a way to support regular expression search.
189.
190. => !GET => http://{{server}}/api/test0/delete?_confirmstr=test0 => Deleted count is
191. => !POST => http://{{server}}/api/test0/create?_confirmstr=test0 => {"_payload":[{"name":"dip1","roll":1}, {"name":"dip2","roll":2}, {"name":"xip2","roll":3}]} => success
192. => GET => http://{{server}}/api/test0/regex?name=^d => with 2 items.
193. => GET => http://{{server}}/api/test0/regex?name=1$ => with 1 items.
194.
195.
196. #================= @today, @week, @month ==============
197. => GET => http://{{server}}/api/test0?ts_insert=@today =>3 items
198. => GET => http://{{server}}/api/test0/count?ts_insert=@week => Count: 3
199. => GET => http://{{server}}/api/test0?ts_insert=@month =>3 items
200. => GET => http://{{server}}/api/test0?ts_update=@today =>3 items
201. => GET => http://{{server}}/api/test0?ts_update=@week => 3 items
202. => GET => http://{{server}}/api/test0/count?ts_update=@month =>Count: 3
203. => GET => http://{{server}}/api/test0/count?ts_update=@3DaysOld =>Count: 0
204. => GET => http://{{server}}/api/test0/count?ts_update=@7DaysOld =>Count: 0
205.
206. # ==== TEST get random ####
207. => GET => http://{{server}}/api/test0/get_random?_limit=3 => returned random list of size : 3
208. => GET => http://{{server}}/api/test0/get_random?_limit=3 => returned random list of size : 3
209.
210. #########################################################################################
211. ## ##
212. ## DB UPDATE ##
213. ## ##
214. #########################################################################################
215.
216. #============= create and update =================
217. # 1. Test We able update an specific entry
218. # 2. Test we update multiple entry by filter.
219. # 3. Test we update multiple entry with multiple specific data ( using _payload.)
220.
221. => !GET => http://{{server}}/api/test0/delete?_confirmstr=test0 => Deleted count is
222. => !POST => http://{{server}}/api/test0/create => {"name":"subha","roll":1} => success
223. => !POST => http://{{server}}/api/test0/create => {"name":"subha","roll":2} => success
224. # Simple create should be return list everywhere
225. => POST => http://{{server}}/api/test0/create => {"name":"hari","roll":3} => "out":\[{"name":"hari",
226. => GET => http://{{server}}/api/test0/update?id={{id}}&name=hari1 => "name":"hari1"
227. => GET => http://{{server}}/api/test0/update?id={{id}}&name=hari2 => "name":"hari2"
228. => GET => http://{{server}}/api/test0/update?roll=10&_filter=name:subha => missing _confirmstr
229. => GET => http://{{server}}/api/test0/update?_filter=name:subha&_confirmstr=test0 => Looks like you are sending empty data
230. => GET => http://{{server}}/api/test0/update?roll=10&_filter=name:subha&_confirmstr=test0 => Successfully updated 2 entry out of 2 matched cout
231. => POST => http://{{server}}/api/test0/update => {"roll":10,"_filter":{"name":"subha"},"_confirmstr":"test0"} => Successfully updated 2 entry out of 2 matched cout
232. => POST => http://{{server}}/api/test0/update => {"_payload":[{"name":"dip"}], "_confirmstr":"test0"} => each object in _payload must have a id
233.
234.
235. ########################## Subentry #################################################################
236. # This helps to building facebook post with comments
237. # adding subentry to a database entry: like adding a comments
238. # Whne you add a subentry , it will create a entry_id as a uniquer id whcih can be used to delete.
239. ######################################################################################################
240. => !GET => http://{{server}}/api/test1/delete?_confirmstr=test1 => Deleted count is
241. => !POST => http://{{server}}/api/test1/insert => {"name":"A1","comments":[]} => "_id":"(?.*?)"
242. => POST => http://{{server}}/api/test1/subentry/add? => {"id":"{{id1}}"} => Missing key
243. => POST => http://{{server}}/api/test1/subentry/add? => {"id":"{{id1}}","key":"comments"} => Missing value
244. => POST => http://{{server}}/api/test1/subentry/add? => {"id":"{{id1}}","key":"comments","value":10} => error
245. => POST => http://{{server}}/api/test1/subentry/add? => {"id":"{{id1}}","key":"comments","value":{"msg":"message1"}} => "msg":"message1"
246. => POST => http://{{server}}/api/test1/subentry/add? => {"_id":"601ddf283ac366b16c634000","key":"comments","value":{"msg":"message1"}} => not found this id
247. => POST => http://{{server}}/api/test1/subentry/add? => {"_id":"{{id1}}","key":"comments","value":{"msg":"message1"}} => "msg":"message1"
248. => POST => http://{{server}}/api/test1/subentry/add? => {"id":"{{id1}}","key":"comments","value":[{"msg":"message2"},{"msg":"message3"}]} => Input is not an object
249. => POST => http://{{server}}/api/test1/subentry/add_many => {"id":"{{id1}}","key":"comments","value":[{"msg":"message2"},{"msg":"message3"}]} => "msg":"message3"
250. => POST => http://{{server}}/api/test1 => {"id":"{{id1}}"} => "msg":"message3"
251. #Check add remove
252. => POST => http://{{server}}/api/test1/subentry/add? => {"id":"{{id1}}","key":"comments","value":{"msg":"message4"}} => "entry_id":"(?.*?)"
253. => POST => http://{{server}}/api/test1/subentry/remove => {"id":"{{id1}}", "key":"comments", "entry_id":"{{entry_id}}"} => success
254. => POST => http://{{server}}/api/test1/subentry/get => {"id":"{{id1}}"} => This feature not yet supported
255.
256. # test update
257. => !POST => http://{{server}}/api/test1/insert => {"name":"A2","comments":[]} => "_id":"(?.*?)"
258. => POST => http://{{server}}/api/test1/subentry/add? =>{"_id":"{{id1}}", "key":"comments", "value":{"msg":"hello","name":"hello"}} => "entry_id":"(?.*?)" => "name":"hello"
259. # This should merge
260. => POST => http://{{server}}/api/test1/subentry/update? =>{"_id":"{{id1}}","entry_id":"{{entry_id}}", "key":"comments", "value":{"msg":"hello1", "color":"red"}} => successfully update subentry with key
261. => POST => http://{{server}}/api/test1/ => {"_id":"{{id1}}"} => "name":"hello"
262. => POST => http://{{server}}/api/test1/ => {"_id":"{{id1}}"} => "color":"red"
263.
264. #Testing with auth_token_
265. => POST => http://{{server}}/api/test1/subentry/update? => {"_id":"{{id1}}","entry_id":"{{entry_id}}", "key":"comments", "value":{"msg":"hello1", "color":"red"}, "auth_token_":"skip"} => successfully update subentry with key
266.
267. => !GET => http://{{server}}/api/test1/delete?_confirmstr=test1 => Deleted count is
268.
269.
270.
271. ############# BULK UPDATE #############################
272. => !POST => http://{{server}}/api/test0/insert => {"name":"A1"} => "_id":"(?.*?)"
273. => !POST => http://{{server}}/api/test0/insert => {"name":"A2"} => "_id":"(?.*?)"
274. => POST => http://{{server}}/api/test0/bulkupdate => {"_payload":[]} => missing _confirmstr
275. => POST => http://{{server}}/api/test0/bulkupdate => {"_payload":[], "_confirmstr":"test0"} => ensureHasNonEmptyPayload
276. => POST => http://{{server}}/api/test0/bulkupdate => {"_payload":[{"name":"10"}], "_confirmstr":"test0"} => ensurePayloadHasId
277. => POST => http://{{server}}/api/test0/bulkupdate => {"_payload":[{"id":"{{id1}}", "name":"B1","tool":3}, {"id":"{{id2}}", "name":"B2"}], "_confirmstr":"test0"} => 2/2
278. => GET => http://{{server}}/api/test0?_id={{id1}} => B1
279.
280.
281. #===================== insertorupdate =============================
282. => !POST => http://{{server}}/api/test0/insertorupdate => {} => _field is missing
283. => !POST => http://{{server}}/api/test0/insertorupdate => {"_payload":[{"name":"dip","roll":1}, {"name":"dip2","roll":1}],"_field":"name"} => 2/0
284. => !POST => http://{{server}}/api/test0/insertorupdate => {"_payload":[{"name":"dip","roll":2}, {"name":"dip2","roll":2},{"name":"dip3","roll":3}],"_field":"name"} => 1/2
285.
286.
287. #########################################################################################
288. ## ##
289. ## DB DELETE ##
290. ## ##
291. #########################################################################################
292.
293. # delete allows to delete one or many items or all the items. to delete in bulk you need to
294. # provide _confirmstr as a db name. A db starting with nodel_ don't support any delete _operation by design.
295.
296. => GET => http://{{server}}/api/test0/delete => missing _confirmstr
297. => GET => http://{{server}}/api/test0/delete?_confirmstr=test0 => Deleted count is
298. => GET => http://{{server}}/api/nodel_test0/delete?_confirmstr=nodel_test0 => The DB has marked as nodel
299.
300. #########################################################################################
301. ## ##
302. ## DB RANK ##
303. ## ##
304. #########################################################################################
305.
306. # ranks and hits are the simplestore ways to ranking algorithms
307. # hits will help increment or decrements ranking.
308. # rankup - will rankup based on rank strategies
309. # rankdown - will rankdown based on rank strategies
310.
311. => !GET => http://{{server}}/api/test0/delete?_confirmstr=test0 => Deleted count is : 0
312. => !POST => http://{{server}}/api/test0/create => {"name":"dip","count":1} => "_id":"(?.*?)"
313. => GET => http://{{server}}/api/test0/find?id={{id}} => Find successfully with 1 items
314. => GET => http://{{server}}/api/test0/hits => You must pass a _id
315. => GET => http://{{server}}/api/test0/hits?_field=count => You must pass a _id
316. => GET => http://{{server}}/api/test0/hits?id={{id}}=> _field is missing
317. => GET => http://{{server}}/api/test0/hits?_field=count&id={{id}} => ","out":2,"help"
318. => GET => http://{{server}}/api/test0/hits?_field=count&id={{id}} => ","out":3,"help"
319. # Adjust the bellow test as they are right.
320. => GET => http://{{server}}/api/test0/hits?_field=count&id={{id}}&_value=8 => 11
321. => GET => http://{{server}}/api/test0/hits?_field=count&id={{id}}&_value=-1 => 10
322. => GET => http://{{server}}/api/test0/increment?_field=count&id={{id}}&_value=-1 => ","out":9,"help"
323. => GET => http://{{server}}/api/test0/increment/?_field=count&id={{id}}&_value=-1 => 8
324. => GET => http://{{server}}/api/test0/increment?_field=count&id=wrongID&_value=-1 => not a valid ID
325. => GET => http://{{server}}/api/test0/increment?_field=count&id=5df55c6273df4d3ec6cbcf15&_value=-1 => Item not found
326.
327.
328. => !GET => http://{{server}}/api/test0/create?name=dip1 => "_id":"(?.*?)"
329. => GET => http://{{server}}/api/test0/rankup => You must pass a _id
330. => GET => http://{{server}}/api/test0/rankup?id={{id}} => _field is missing
331. => GET => http://{{server}}/api/test0/rankup?_field=count => You must pass a _id
332. => GET => http://{{server}}/api/test0/rankup?_field=count&id={{id}} => ","out":1,"help"
333. => GET => http://{{server}}/api/test0/rankup?_field=count&id={{id}} => 2
334. => GET => http://{{server}}/api/test0/rankup?_field=count&id={{id}} => 3
335. => GET => http://{{server}}/api/test0/rankup?_field=count&id={{id}} => 4
336. => GET => http://{{server}}/api/test0/rankup?_field=count&id={{id}} => 5
337. => GET => http://{{server}}/api/test0/rankup?_field=count&id={{id}} => 6
338. => GET => http://{{server}}/api/test0/rankup?_field=count&id={{id}} => 7
339. => GET => http://{{server}}/api/test0/rankup?_field=count&id={{id}} => 8
340. => GET => http://{{server}}/api/test0/rankup?_field=count&id={{id}} => 9
341. => GET => http://{{server}}/api/test0/rankup?_field=count&id={{id}} => 10
342. => GET => http://{{server}}/api/test0/rankup?_field=count&id={{id}} => 10
343. => GET => http://{{server}}/api/test0/rankdown?_field=count&id={{id}} => ","out":9,"help"
344. => GET => http://{{server}}/api/test0/rankdown?_field=count&id={{id}} => 8
345. => GET => http://{{server}}/api/test0/rankdown?_field=count&id={{id}} => 7
346. => GET => http://{{server}}/api/test0/rankdown?_field=count&id={{id}} => 6
347. => GET => http://{{server}}/api/test0/rankdown?_field=count&id={{id}} => 5
348. => GET => http://{{server}}/api/test0/rankdown?_field=count&id={{id}} => 4
349. => GET => http://{{server}}/api/test0/rankdown?_field=count&id={{id}} => 3
350. => GET => http://{{server}}/api/test0/rankdown?_field=count&id={{id}} => 2
351. => GET => http://{{server}}/api/test0/rankdown?_field=count&id={{id}} => 1
352. => GET => http://{{server}}/api/test0/rankdown?_field=count&id={{id}} => 0
353. => GET => http://{{server}}/api/test0/rankdown?_field=count&id={{id}} => 0
354. => GET => http://{{server}}/api/test0/rankup?_field=count&id={{id}} => 1
355.
356. #########################################################################################
357. ## ##
358. ## DB COUNT ##
359. ## ##
360. #########################################################################################
361.
362. # just count elements of find or filter.
363.
364. => !GET => http://{{server}}/api/test0/delete?_confirmstr=test0 => Deleted count is : 2
365. => !POST => http://{{server}}/api/test0/create?_confirmstr=test0 => {"_payload":[{"name":"dip","roll":1}, {"name":"dip","roll":2}, {"name":"sup","roll":3}]} => success
366. => GET => http://{{server}}/api/test0/count => 3
367. => GET => http://{{server}}/api/test0/count?name=dip => 2
368. => GET => http://{{server}}/api/test0/count?roll=3 => 0
369. => POST => http://{{server}}/api/test0/count => {"roll":3} => 1
370.
371. #########################################################################################
372. ## ##
373. ## DB AGGRESSION ##
374. ## ##
375. #########################################################################################
376.
377. # sum is the aggregation framework for simplestore. It allows to count, sum, max,min avg on
378. # a _field.
379.
380. => !GET => http://{{server}}/api/test0/delete?_confirmstr=test0 => Deleted count is
381. => !POST => http://{{server}}/api/test0/create?_confirmstr=test0 => {"_payload":[{ "name": "Infosys", "qty": 100, "price": 800 }, { "name": "TCS", "qty": 100, "price": 2000 },{ "name": "Wipro", "qty": 2500, "price": 300 }]} => success
382. => GET => http://{{server}}/api/test0/sum => _field is missing
383. => GET => http://{{server}}/api/test0/sum?_field=qty => 2700
384. => POST => http://{{server}}/api/test0/sum => {"_field" : "qty"} => 2700
385. => POST => http://{{server}}/api/test0/sum => {"_field" : "qty", "_operation":"$max"} => 2500
386. => POST => http://{{server}}/api/test0/sum => {"_field" : "qty", "_operation":"$min"} => 100
387. => POST => http://{{server}}/api/test0/sum => {"_field" : "qty", "_operation":"$avg"} => 900
388. => POST => http://{{server}}/api/test0/sum => {"_field":"qty", "_filter":{"qty":100}} => 200
389.
390. #########################################################################################
391. ## ##
392. ## DB CONSTRAINT ##
393. ## ##
394. #########################################################################################
395. # Constraints allows us to dynamically insert of delete the unique key for a db.
396. # we sound support other func like not null or datatype constraints.
397.
398. => !GET => http://{{server}}/api/test1/delete?_confirmstr=test1 => success
399. => GET => http://{{server}}/api/test1/constraints/get => all constraints returned successfully
400. => GET => http://{{server}}/api/test1/constraints/add?name=unique => all constraints added successfully
401. => GET => http://{{server}}/api/test1/constraints/get => name_1
402. => GET => http://{{server}}/api/test1/constraints/remove => all constraints removed successfully
403. => GET => http://{{server}}/api/test1/constraints/get => all constraints returned successfully
404. => GET => http://{{server}}/api/test1/constraints/add?name=unique => name_1
405. => GET => http://{{server}}/api/test1/constraints/add?name1=unique1 => invalid constraints found:
406. => GET => http://{{server}}/api/test1/constraints/clear => all constraints cleared successfully
407. => GET => http://{{server}}/api/test1/constraints/get => all constraints returned successfully
408.
409. => !GET => http://{{server}}/api/test1/constraints/clear => all constraints cleared successfully
410. => !GET => http://{{server}}/api/test1/constraints/add?name=unique => all constraints added successfully
411. => POST => http://{{server}}/api/test1/insert => {"name":"DIP"} => insert successfully
412. => POST => http://{{server}}/api/test1/insert => {"name":"DIP"} => duplicate key error collection
413. => POST => http://{{server}}/api/test1/insert => {"_payload":[{"name":"DIP"},{"name":"DIP1"}]} => E11000 duplicate key error collection
414. => GET => http://{{server}}/api/test1 => DIP1
415.
416. #============= BULK INSERT =====================
417. # Bulk insert allows you to insert a list of items to DB even if some items are not able insert. It's similar to insert
418. # but provides the count of success and fails.
419.
420. => POST => http://{{server}}/api/test1/bulk_insert => {"name":"DIP"} => you must send _payload as list
421. => POST => http://{{server}}/api/test1/bulk_insert => {"_payload":[{"name":"DIP"},{"name":"DIP1"}]} => 0/2
422. => POST => http://{{server}}/api/test1/bulk_insert => {"_payload":[{"name":"DIP"},{"name":"DIP3"}]} => 1/2
423.
424.
425. #########################################################################################
426. ## ##
427. ## DB TAGS ##
428. ## ##
429. #########################################################################################
430. # Tags allows us to adding, removing and searching tags attached to a documents. This is essentially
431. # a tagging mechanism to support hashtag or categories a documents. It's works like a set _operation.
432. # you need to use rwa_search to do the searching the tag.
433. => POST => http://{{server}}/api/test/tags/add => {"_id":"{{id}}", "_field":"tag"} => You have not send either _field or _value.
434. => POST => http://{{server}}/api/test/tags/add => {"_id":"{{id}}", "_value":"tag"} => You have not send either _field or _value.
435. => !POST => http://{{server}}/api/test/create => {"name":"dip","count":1} => "_id":"(?.*?)"
436. => GET => http://{{server}}/api/test/tags/clear?id=5daa8d3ea216e2d820e2c09e&_field=tag&_value=10,20 => item has not found
437. => GET => http://{{server}}/api/test/tags/clear?id={{id}}&_field=tag&_value=10,20 => "tag":\[\]
438. => GET => http://{{server}}/api/test/tags/add?id={{id}}&_field=tag&_value=10,20 => \["10","20"\]
439. => GET => http://{{server}}/api/test/tags/add?id={{id}}&_field=tag&_value=10,20 => \["10","20"\]
440. => GET => http://{{server}}/api/test/tags/add?id={{id}}&_field=tag&_value=10,20,30,40 => \["10","20","30","40"\]
441. => GET => http://{{server}}/api/test/tags/remove?id={{id}}&_field=tag&_value=10 => \["20","30","40"\]
442. => GET => http://{{server}}/api/test/tags/remove?id={{id}}&_field=tag&_value=10 => \["20","30","40"\]
443. => GET => http://{{server}}/api/test/tags/clear?id={{id}}&_field=tag&_value='' => "tag":\[\]
444.
445.
446. #########################################################################################
447. ## ##
448. ## DB INDEX ##
449. ## ##
450. #########################################################################################
451.
452. => POST => http://{{server}}/api/test/index => {} => you must send _payload as list
453. => POST => http://{{server}}/api/test/index => {"_payload":[]} => You must NOT send a empty list
454. # TODO: BROKEN TEST - FIX IT
455. # => POST => http://{{server}}/api/test/index => {"_payload":[{ "ts_insert": 1 }, { "expireAfterSeconds": 60 }]} => \{"ts_insert":1,"expireAfterSeconds":60\}
456.
457.
458.
459.
460.
461.
462. #==================== Help =================================
463. # TODO : BROKEN FIX IT -- BLOCKING TEST
464. #=> POST => http://{{server}}/api/test/index/help => {} => This API is used to create Index for a DB
465. #=> GET => http://{{server}}/api/test/index/help => This API is used to create Index for a DB
466.
467.
468.
469. #########################################################################################
470. ## ##
471. ## DB DISTRIBUTION ##
472. ## ##
473. #########################################################################################
474. => !POST => http://{{server}}/api/test/bulk_insert => {"_payload":[{"type":"a","roll":1},{"type":"a","roll":1},{"type":"a","roll":1},{"type":"b","roll":1},{"type":"b","roll":2},{"type":"c","roll":1},{"type":"d","roll":2},{"type":"d","roll":2}]} => 8/8
475. => POST => http://{{server}}/api/test/distribution => {"roll":1,"_field":"type"} => {"count":3,"type":"a"}
476. => POST => http://{{server}}/api/test/distribution?_viewas=chartjs => {"roll":1,"_field":"type"} => "borderWidth":1
477. => POST => http://{{server}}/api/test/distribution => {"roll":1,"ts_insert":"@today", "_field":"type"} => {"count":3,"type":"a"}
478. => POST => http://{{server}}/api/test/distribution => {"roll":2,"_field":"type"} => {"count":2,"type":"d"}
479.
480.
481.
482. #########################################################################################
483. ## ##
484. ## DB TIME SERIES ##
485. ## ##
486. #########################################################################################
487. => !POST => http://{{server}}/api/test/create => {"_payload":[{"name":"dipp","number":10}, {"name":"dipp","number":20}, {"name":"dipp1","number":20}]} => success
488. => GET => http://{{server}}/api/test/ts => "count":12
489. => GET => http://{{server}}/api/test/ts?name=dipp&_field=dummy => "count":2,
490.
491.
492. #########################################################################################
493. ## ##
494. ## APP ANALYTICS ##
495. ## ##
496. #########################################################################################
497. # Note it is causing the perf issue for we black listed the analytics API
498. # _analytics will provides Analytics in the app.
499. #=> context => app_id => test.app
500. #=> !GET => http://{{server}}/api/analytics/delete?app_id={{app_id}}&_confirmstr=analytics => success
501. #=> POST => http://{{server}}/api/_analytics/launch => {"app_id":"{{app_id}}","app_version":"1.0","device_os":"android", "device_id":"abc","device_api":"27"} => "session":"(?.*?)"
502. #=> POST => http://{{server}}/api/_analytics/action => {"app_id":"{{app_id}}","session":"{{session}}","type":"click", "target_id":"btn1"} => Tracked action
503. #=> POST => http://{{server}}/api/_analytics/exception => {"app_id":"{{app_id}}", "session":"{{session}}","type":"RuntimeException", "location":"Main.c:20","stack":"full stack here"} => Tracked exception
504. #=> POST => http://{{server}}/api/_analytics/timeit => {"app_id":"{{app_id}}", "session":"{{session}}", "total_time": 10000, "type" :"Activity", "block":"MainActivity"} => Tracked timeit
505. #=> GET => http://{{server}}/api/_analytics/hit_tracker?app_id={{app_id}}&action=play => 1
506. #=> GET => http://{{server}}/api/_analytics/hit_tracker?app_id={{app_id}}&action=play => 2
507. #=> GET => http://{{server}}/api/_analytics/hit_tracker?app_id={{app_id}}&action=play => 3
508. #=> GET => http://{{server}}/api/_analytics/hit_tracker?app_id={{app_id}}&action=pause => 1
509. #=> GET => http://{{server}}/api/_analytics/hit_tracker?app_id={{app_id}}&action=pause => 2
510. #=> POST => http://{{server}}/api/_analytics/logs => {"app_id":"{{app_id}}"} => found all logs
511. #=> POST => http://{{server}}/api/_analytics/logs => {"app_id":"Invalid"} => "out":\[\],
512. #=> POST => http://{{server}}/api/_analytics/session_history => {"session":"{{session}}"} => History returned
513. #=> GET => http://{{server}}/api/_analytics/session_history?session={{session}} => History returned
514. #=> POST => http://{{server}}/api/_analytics/app_summary_today => {"app_id":"{{app_id}}"} => not yet supported
515. #=> POST => http://{{server}}/api/_analytics/app_summary_week => {"app_id":"{{app_id}}"} => not yet supported
516. #
517. #
518. #=> context => app_id => test.app
519. #=> !GET => http://{{server}}/api/analytics/delete?app_id={{app_id}}&_confirmstr=analytics => success
520. #=> POST => http://{{server}}/api/analytics/launch => {"app_id":"{{app_id}}","app_version":"1.0","device_os":"android", "device_id":"abc","device_api":"27"} => "session":"(?.*?)"
521. #=> POST => http://{{server}}/api/analytics/action => {"app_id":"{{app_id}}","session":"{{session}}","type":"click", "target_id":"btn1","tag":"btn_click"} => Tracked action
522. #=> POST => http://{{server}}/api/analytics/action => {"app_id":"{{app_id}}","session":"{{session}}","type":"click", "target_id":"btn1", "tag":"btn_click"} => Tracked action
523. #=> POST => http://{{server}}/api/analytics/exception => {"app_id":"{{app_id}}", "session":"{{session}}","type":"RuntimeException", "location":"Main.c:20","stack":"full stack here"} => Tracked exception
524. #=> POST => http://{{server}}/api/analytics/exception => {"app_id":"{{app_id}}", "session":"{{session}}","type":"RuntimeException", "location":"Main.c:20","stack":"full stack here"} => Tracked exception
525. #=> POST => http://{{server}}/api/analytics/timeit => {"app_id":"{{app_id}}", "session":"{{session}}", "total_time": 10000, "type" :"Activity", "block":"MainActivity"} => Tracked timeit
526. #=> GET => http://{{server}}/api/analytics/hit_tracker?app_id={{app_id}}&action=play => 1
527. #=> GET => http://{{server}}/api/analytics/hit_tracker?app_id={{app_id}}&action=play => 2
528. #=> GET => http://{{server}}/api/analytics/hit_tracker?app_id={{app_id}}&action=play => 3
529. #=> GET => http://{{server}}/api/analytics/hit_tracker?app_id={{app_id}}&action=pause => 1
530. #=> GET => http://{{server}}/api/analytics/hit_tracker?app_id={{app_id}}&action=pause => 2
531. #=> POST => http://{{server}}/api/analytics/logs => {"app_id":"{{app_id}}"} => found all logs
532. #=> POST => http://{{server}}/api/analytics/logs => {"app_id":"Invalid"} => "out":\[\],
533. #=> POST => http://{{server}}/api/analytics/session_history => {"session":"{{session}}"} => History returned
534. #=> GET => http://{{server}}/api/analytics/session_history?session={{session}} => History returned
535. #=> POST => http://{{server}}/api/analytics/app_summary_today => {"app_id":"{{app_id}}"} => We have not yet support this api
536. #=> POST => http://{{server}}/api/analytics/app_summary_week => {"app_id":"{{app_id}}"} => We have not yet support this api
537. #=> GET => http://{{server}}/api/analytics/show => Please select a app id:
538. #=> GET => http://{{server}}/api/analytics/show?app_id={{app_id}} => Main.c:20
539.
540.
541. ## appconfig allows you gate your feature and do A/B testing.
542. # This is api allows to set data for a app
543. => GET => http://localhost/api/appconfig/insert?app_id=in.co.dipankar.test&name=hello => Duplicate item found: app_id
544. => GET => http://localhost/api/appconfig/save?app_id=in.co.dipankar.busbondhdu&name=hello1 => Duplicate item found: app_id
545. => GET => http://localhost/api/appconfig/stat?app_id=in.co.dipankar.test&name=hello => success
546. => GET => http://localhost/api/appconfig/stat2?app_id=in.co.dipankar.test&name=hello => DAU
547.
548.
549. # ======= exist API ===================
550. => !POST => http://{{server}}/api/test/create?_confirmstr=test0 => {"_payload":[{"name":"dip","roll":1}, {"name":"dip1","roll":2}]} => success
551. => POST => http://{{server}}/api/test/exist => {} => You have not send either _field or _value
552. => POST => http://{{server}}/api/test/exist => {"_field":"name"} => You have not send either _field or _value
553. => POST => http://{{server}}/api/test/exist => {"_field":"name","_value":""} => You have not send either _field or _value.
554. => POST => http://{{server}}/api/test/exist => {"_field":"name","_value":",,,"} => You must NOT send a not empty _value as a list or equivalent comma separated string
555. => POST => http://{{server}}/api/test/exist => {"_field":"name","_value":"dip"} => Found 1 out of 1.
556. => POST => http://{{server}}/api/test/exist => {"_field":"name","_value":"dip, dip1"} => Found 2 out of 2.
557. => POST => http://{{server}}/api/test/exist => {"_field":"name","_value":["dip","dip1"]} => Found 2 out of 2.
558.
559. # ===== _viewas =====================
560. => GET => http://{{server}}/api/test/find?_viewas=compressed => Find successfully
561. => GET => http://{{server}}/api/test/find?_viewas=invalid => Network request contains invalid _viewas
562. => GET => http://{{server}}/api/test/find?name=dip&_viewas=input => "input":\{"name":"dip"
563. => GET => http://{{server}}/api/test/?_edit=1 => button type="button" onclick="clone
564.
565.
566. #=== aggregate API ===========
567. => !POST => http://{{server}}/api/test/create?_confirmstr=test => {"_payload":[{"product":"X","type":"type1"}, {"product":"X","type":"type1"}, {"product":"Y","type":"type1"}, {"product":"Y","type":"type2"}, {"product":"Z","type":"type2"}]} => success
568. => POST => http://{{server}}/api/test/aggregate => {} => you must send _payload as list
569. => POST => http://{{server}}/api/test/aggregate => {"_payload":{"hello":"hello"}} => you must send _payload as list
570. => POST => http://{{server}}/api/test/aggregate => {"_payload": [ {"$match":{"type":"type1"}}, {"$group": {"_id": "$product","count": {"$sum": 1}}}] } => {"_id":"X","count":2}
571.
572. #====== date api ======
573. => POST => http://{{server}}/api/utils/date => {} => 202
574. => GET => http://{{server}}/api/utils/date => 202
575.
576. # ============ test /dbconfig ====================
577. => GET => http://{{server}}/api/test10/dbconfig => DbConfig not found
578. => GET => http://{{server}}/api/test_r/dbconfig => \{"local":false\}
579.
580. # ========== type-sefty and data validation ======
581. # define rules as per https://github.com/skaterdav85/validatorjs
582. # supported type: string, array, boolean, date, email, integer, numeric,regex:pattern,
583. # Supported constraints: required, not_in:foo,bar , max:value. min:value, in:foo,bar
584. => GET => http://{{server}}/api/test_v/insert?aa=aa => The name field is required
585. => POST => http://{{server}}/api/test_v/insert =>{"name":""}=> name field must not empty
586. # Also detect empty string
587. => POST => http://{{server}}/api/test_v/insert =>{"name":" "}=> name field must not empty
588. => POST => http://{{server}}/api/test_v/insert =>{"name":" "}=> name field must not empty
589. => GET => http://{{server}}/api/test_v/insert?name=dip => The email field is required
590. => GET => http://{{server}}/api/test_v/insert?name=aa&email=dip => email must be email
591. => GET => http://{{server}}/api/test_v/insert?name=aa&email=dip@dip.com => insert successfully
592. => POST => http://{{server}}/api/test_v/insert => {"name":"aa","email":"dip@dip.com","array":"hello"} => array must be a array
593. => POST => http://{{server}}/api/test_v/insert => {"name":"aa","email":"dip@dip.com","array":["hello"]} => insert successfully
594.
595. => POST => http://{{server}}/api/test_v/insert => {"name":"aa","email":"dip@dip.com","boolean":100} => boolean must be a boolean
596. => POST => http://{{server}}/api/test_v/insert => {"name":"aa","email":"dip@dip.com","boolean":true} => insert successfully
597.
598. => POST => http://{{server}}/api/test_v/insert => {"name":"aa","email":"dip@dip.com","number":"hello"} => number must be a number
599. => POST => http://{{server}}/api/test_v/insert => {"name":"aa","email":"dip@dip.com","number":1000} => "_id":"(?.*?)"
600. => POST => http://{{server}}/api/test_v/update => {"_id":"{{id}}","number":"1D000"} => number must be a number
601. => POST => http://{{server}}/api/test_v/update => {"_id":"{{id}}","number":"10000"} => success
602. => POST => http://{{server}}/api/test_v/update => {"_id":"{{id}}","number":10000} => success
603. => POST => http://{{server}}/api/test_v/update => {"_id":"{{id}}","array":"1D000"} => array must be a array
604. => POST => http://{{server}}/api/test_v/update => {"_id":"{{id}}","array":["1D000"]} => success
605. => GET => http://{{server}}/api/test_v/update?number="123D"&_confirmstr=test_v => number must be a number
606. => GET => http://{{server}}/api/test_v/update?number=123&_confirmstr=test_v => success
607. => POST => http://{{server}}/api/test_v/insert => {"_payload":[{"name":"aa","email":"dip@dip.com","number":1000},{"name":"aa","email":"dip@dip.com","number":1000}]} => success
608. => POST => http://{{server}}/api/test_v/insert => {"_payload":[{"name":"aa","email":"dip@dip.com","number":"WRONG"},{"name":"aa","email":"dip@dip.com","number":1000}]} => error
609. => POST => http://{{server}}/api/test_v/insert => {"_payload":[{"name":"aa","email":"dip@dip.com","number":"WRONG"},{"name":"aa","email":"dip@dip.com","number":"WRONG"}]} => error
610.
611.
612. ###################################################################
613. #
614. # Advance Search with RHS Color search
615. # Supported annotation:
616. # eq, ne, starts, ends:, regex:, in:, all:,int:eqi, nei, date:
617. ###################################################################
618. => !GET => http://{{server}}/api/test/delete?_confirmstr=test =>success
619. => !POST => http://{{server}}/api/test/insert => {"name":"A123","roll":10,"color":["red","green"]} => success
620. => !POST => http://{{server}}/api/test/insert => {"name":"B123","roll":11,"color":["red","blue"]} => success
621. => !POST => http://{{server}}/api/test/insert => {"name":"C124","roll":12,"color":["blue","green"]} => success
622. => !POST => http://{{server}}/api/test/insert => {"name":"xxx:xx66"} => success
623. => GET => http://{{server}}/api/test/count?name=eq:A123 => Count: 1
624. => GET => http://{{server}}/api/test/count?name=ne:A123 => Count: 3
625. => GET => http://{{server}}/api/test/count?name=starts:A => Count: 1
626. => GET => http://{{server}}/api/test/count?name=ends:3 => Count: 2
627. => GET => http://{{server}}/api/test/count?name=regex:12 => Count: 3
628. => GET => http://{{server}}/api/test/count?color=in:red => Count: 2
629. => GET => http://{{server}}/api/test/count?color=in:red,green => Count: 3
630. => GET => http://{{server}}/api/test/count?color=in:red, green,,,, => Count: 3
631. => GET => http://{{server}}/api/test/count?color=in:green,red => Count: 3
632. => GET => http://{{server}}/api/test/count?color=all:green,red => Count: 1
633. => GET => http://{{server}}/api/test/count?color=all:green,red,blue => Count: 0
634. => GET => http://{{server}}/api/test/count?color=all:green,red, blue, => Count: 0
635. => GET => http://{{server}}/api/test/count?color=in: green, red, blue, => Count: 3
636. => GET => http://{{server}}/api/test/count?color=in:green,red, blue,&name=starts:A => Count: 1
637. => GET => http://{{server}}/api/test/count?name=xxx:xx66 => Count: 1
638. => GET => http://{{server}}/api/test/count?roll=int:10 => Count: 1
639. => GET => http://{{server}}/api/test/count?roll=eqi:10 => Count: 1
640. => GET => http://{{server}}/api/test/count?roll=nei:10 => Count: 3
641. => GET => http://{{server}}/api/test/count?roll=eqi:XX => Count: 0
642.
643. # Test Params annotation
644. => !GET => http://{{server}}/api/test/delete?_confirmstr=test =>success
645. => GET => http://{{server}}/api/test/insert?rate=number:abc => params starts with number:XX
646. => GET => http://{{server}}/api/test/insert?rate=number:100 => "rate":100
647. => GET => http://{{server}}/api/test/insert?rate=number:100.100 => "rate":100.1,
648. => GET => http://{{server}}/api/test/insert?join_date=date:abc => params starts with date:
649. => GET => http://{{server}}/api/test/insert?join_date=date:2014-11-03T19:38:34.203Z => "join_date":"2014-11-03T19:38:34.203Z",
650. => POST => http://{{server}}/api/test/insert => {"join_date":"date:2014-11-03T19:38:34.203Z"} => "join_date":"2014-11-03T19:38:34.203Z",
651. => GET => http://{{server}}/api/test/insert?join_date=date:2014-11-03 => "join_date":"2014-11-03T00:00:00.000Z",
652. => GET => http://{{server}}/api/test/insert?join_date=date:2014-11-03X => must be a valid ISO Date
653.
654.
655.
656. => !GET => http://{{server}}/api/test/delete?_confirmstr=test => success
657.
658.
659.
660. # == Download
661. => !POST => http://{{server}}/api/test/insert => {"name":"A123","roll":10,"color":["red","green"]} => success
662. => GET => http://{{server}}/api/test/download => \[\{"_id":
663. => GET => http://{{server}}/api/test/export => \[\{"_id":
664.
665. # override db selection.
666. # its not possible to test as in testing all are local db.
667. => GET => http://{{server}}/api/test/count?_targetdb=local => success
668. => GET => http://{{server}}/api/test/count?_targetdb=remote => success
669.
670. # pivoit Table.
671. => !GET => http://{{server}}/api/test/delete?_confirmstr=test =>success
672. => POST => http://{{server}}/api/test/insert => {"_payload":[{"name":"A", "country":"india"},{"name":"B", "country":"india"},{"name":"A", "country":"uk"},{"name":"B", "country":"uk"},{"name":"C", "country":"uk"}, {"name":"A", "country":"usa"}]} =>success
673. => GET => http://{{server}}/api/test/pivot?_field=name,country => 6 distribution found
674.
675. # Timeseries on multiple fuilds.
676. => POST => http://{{server}}/api/test/insert => {"_payload":[{"name":"A", "event":"play_error"},{"name":"A", "event":"play_error"},{"name":"A", "event":"play_error"},{"name":"A", "event":"play_success"},{"name":"A", "event":"play_success"},{"name":"A", "event":"play_success"},{"name":"A", "event":"play_success"},{"name":"A", "event":"play_hit"},{"name":"A", "event":"play_hit"}]} =>success
677. => POST => http://{{server}}/api/test/ts_multi => {} => you must send _payload as non empty list
678. => POST => http://{{server}}/api/test/ts_multi => {"_payload":{"":""}} => you must send _payload as list
679. => POST => http://{{server}}/api/test/ts_multi => {"_payload":[]} => you must send _payload as non empty list
680. => POST => http://{{server}}/api/test/ts_multi => {"_payload":["a"]} => each element of _payload must be a object
681. => POST => http://{{server}}/api/test/ts_multi => {"_payload":[{"event":"play_error"},{"event":"play_success"},{"event":"play_hit"}]} => multi distribution found
682.
683. # testing hooks
684. => POST => http://{{server}}/api/test_hook/insert => {"_payload":[{"name":"A", "event":"play_error"}]} => onBeforeInsert
685. => POST => http://{{server}}/api/test_hook/create => {"name":"dip","count":1} =>onBeforeInsert
686. => GET => http://{{server}}/api/test_hook/delete?id={{id}} => onBeforeDelete
687. => GET => http://{{server}}/api/test_hook/update?id={{id}}&name=hari1 => onBeforeUpdate
688.
689. #Composute key
690. => GET => http://{{server}}/api/test_composite/delete?_confirmstr=test_composite => success
691. => POST => http://{{server}}/api/test_composite/create => {"key1":"dip"} => Data validation failed as key2 must be present as composite key
692. => POST => http://{{server}}/api/test_composite/create => {"key2":"dip"} => Data validation failed as key1 must be present as composite key
693. => POST => http://{{server}}/api/test_composite/create => {"key1":"z1","key2":"z2"} => insert successfully
694. => POST => http://{{server}}/api/test_composite/create => {"key1":"z1","key2":"z2"} => Data validation failed as composite key failed
695. => POST => http://{{server}}/api/test_composite/create => {"key1":"z1","key2":"z3"} =>insert successfully
696. => POST => http://{{server}}/api/test_composite/create => {"key1":"z1","key2":"z3","key3":"123"} =>Data validation failed as composite key failed
697. => POST => http://{{server}}/api/test_composite/bulk_insert => {"_payload":[{"key1":"z1","key2":"z2"},{"key1":"z1","key2":"z4","key3":"123"}]} =>1/2- Bulk Insert completed
698.
699. #schedule
700. # GET => http://{{server}}/api/schedule/count => 0
701. # GET => http://{{server}}/api/schedule/insert?url=http://google.com/1&cron_format=* * * * *&method=get&is_active=true => Insert Done. Schedule success:1, error:0. Active Job count:1
702. # GET => http://{{server}}/api/schedule/count => 1
703. # GET => http://{{server}}/api/schedule/insert?url=http://google.com/1&cron_format=* * * * *&method=get&is_active=false => Data validation failed as composite key failed
704. # GET => http://{{server}}/api/schedule/insert?url=http://google.com/2&cron_format=* * * * *&method=get&is_active=false => Schedule success:0, error:1. Active Job count:1
705. # GET => http://{{server}}/api/schedule/insert?url=http://google.com/3&cron_format=wrong&method=get&is_active=true => error:1
706. # GET => http://{{server}}/api/schedule/insert?url=http://google.com/3&cron_format=* 1 * * *&method=get&is_active=true => "_id":"(?.*?)"
707. # GET => http://{{server}}/api/schedule/update?id={{id2}}&cron_format=* 2 * * * => success
708. # GET => http://{{server}}/api/schedule/?id={{id2}}=> \* 2 \* \* \*
709. # GET => http://{{server}}/api/schedule/update?id={{id2}}&is_active=true => Update Done. Schedule Ops success:0, error:1. Active Job count:2
710. # GET => http://{{server}}/api/schedule/update?id={{id2}}&is_active=true => Update Done. Schedule Ops success:0, error:1. Active Job count:2
711. # GET => http://{{server}}/api/schedule/update?id={{id2}}&is_active=false => Update Done. Schedule Ops success:1, error:0. Active Job count:1
712. # GET => http://{{server}}/api/schedule/update?id={{id2}}&is_active=fass => The selected is active is invalid.
713. # GET => http://{{server}}/api/schedule/insert?url=http://google.com/4&cron_format=* * * * *&method=get&is_active=false => "_id":"(?.*?)"
714. # GET => http://{{server}}/api/schedule/update?id={{id2}}&is_active=false => Update Done. Schedule Ops success:0, error:1. Active Job count:1
715. # GET => http://{{server}}/api/schedule/update?id={{id2}}&is_active=true => Update Done. Schedule Ops success:1, error:0. Active Job count:2
716. # GET => http://{{server}}/api/schedule/update?is_active=false&_confirmstr=schedule => Update Done
717. # POST => http://{{server}}/api/schedule/insert => {"url":"http://{{server}}/api/test11/insert","cron_format":"*/1 * * * *","method":"post","is_active":true, "data":{"name":"dip"}} => "_id":"(?.*?)"
718. # sleep 65
719. # GET => http://{{server}}/api/schedule/?id={{id}} => "last_result":
720. # GET => http://{{server}}/api/schedule/delete?_confirmstr=schedule => Deleted count is :
721.
722.
723. # test Extension for /api/test/ext
724. => GET => http://{{server}}/api/test/ext => Ext API Called
725. => POST => http://{{server}}/api/test/ext => {} => Ext API Called
726.
727. # Google chnages backend impl of Push notification so below API will not work anymore
728. # Push Notification
729. #=> GET => http://{{server}}/api/push_notification/delete?_confirmstr=push_notification => success
730. #=> GET => http://{{server}}/api/push_notification/insert => Trying insert Empty Object
731. #=> GET => http://{{server}}/api/push_notification/insert?app_id=test&token=abc&os=android => insert successfully
732. #=> GET => http://{{server}}/api/push_notification/insert?app_id=test&token=abc&os=android => Data validation failed as composite key failed
733. #=> GET => http://{{server}}/api/push_notification/count => 1
734. #=> GET => http://{{server}}/api/push_notification/insert?app_id=test&token=abc1&os=android => insert successfully
735. #=> GET => http://{{server}}/api/push_notification/count => 2
736. #=> POST => http://{{server}}/api/push_notification/insert => {"_payload":[{"app_id":"test","token":"abc11", "os":"android"},{"app_id":"test","token":"abc2", "os":"android"},{"app_id":"test","token":"abc3", "os":"android"},{"app_id":"test","token":"abc4", "os":"android"},{"app_id":"test","token":"abc5", "os":"android"},{"app_id":"test","token":"abc6", "os":"android"},{"app_id":"test","token":"abc7", "os":"android"},{"app_id":"test","token":"abc8", "os":"android"},{"app_id":"test","token":"abc9", "os":"android"},{"app_id":"test","token":"abc10", "os":"android"}]} => insert successfully
737. #
738. #=> GET => http://{{server}}/api/push_notification/delete => You are trying to bulk operation.
739. #=> GET => http://{{server}}/api/push_notification/delete?token=abc=> missing _confirmstr
740. #=> GET => http://{{server}}/api/push_notification/delete?token=abc&_confirmstr=push_notification => Deleted count is : 1
741. #=> GET => http://{{server}}/api/push_notification/count => 1
742. #=> GET => http://{{server}}/api/push_notification/delete?token=invalid&_confirmstr=push_notification => Deleted count is : 0
743. #=> GET => http://{{server}}/api/push_notification/count => 1
744. #
745. #=> GET => http://{{server}}/api/push_notification/push => Input validation failed: Missing app_id
746. ###
747. ## It's dicult to test as we donb't have any token from mobile.
748. #=> GET => http://{{server}}/api/push_notification/push?app_id=test&page=0&title=hello&body=No Data&key=0 => succcss_count:0, error_count:1
749. #=> GET => http://{{server}}/api/push_notification/insert?app_id=test&token=abc1&os=android => insert successfully
750. #=> GET => http://{{server}}/api/push_notification/push?app_id=test&page=0&title=hello&body=No Data&key=0 => DRYRUN: true
751. #=> GET => http://{{server}}/api/push_notification/insert?app_id=test&token=abc1&os=android => insert successfully
752. #=> GET => http://{{server}}/api/push_notification/push?app_id=test&page=0&title=hello&body=No DATA&key=0&_no_dry_run=0 => [DRYRUN: false]
753. #=> GET => http://{{server}}/api/push_notification/insert?app_id=test&token=abc1&os=android => insert successfully
754. #=> GET => http://{{server}}/api/push_notification/push?app_id=test&page=0&title=hello&body=WITH DATA&key=0&pane=music&target=5e6d53f944526b7da8c0a844 => succcss_count:0, error_count:1
755. #=> GET => http://{{server}}/api/push_notification/insert?app_id=test&token=abc1&os=android => insert successfully
756. #=> GET => http://{{server}}/api/push_notification/push?app_id=test&page=0&title=hello&body=WITH DATA&key=0&pane=music&target=5e6d53f944526b7da8c0a844&_no_dry_run=0 => succcss_count:0, error_count:1
757. #
758. #=> GET => http://{{server}}/api/push_notification/push_one?title=hello&body=WITH DATA&key=0&pane=music&target=5e6d53f944526b7da8c0a844 => Missing token
759. #=> GET => http://{{server}}/api/push_notification/push_one?token=fgEljAT1Qzg:APA91bFFF2zSUg3MaMtepRUzoE0xWcOvg4DlSSlxx8-85qDWreGJLHGWIM6zUkVgHIm3M7oZmcCoWIO11y2ZPbizyKt88dk-aNMYxgAiCf_DKF53ypPmpEH1-SpwSOTkV2wacIqSMBcz&title=hello&body=WITH DATA&key=0&pane=music&target=5e6d53f944526b7da8c0a844 => succcss_count:0, error_count:1
760. #=> POST =>http://{{server}}/api/push_notification/push_one => { "token":"fgEljAT1Qzg:APA91bFFF2zSUg3MaMtepRUzoE0xWcOvg4DlSSlxx8-85qDWreGJLHGWIM6zUkVgHIm3M7oZmcCoWIO11y2ZPbizyKt88dk-aNMYxgAiCf_DKF53ypPmpEH1-SpwSOTkV2wacIqSMBcz","title":"test","body":"pane","pane":"webview","target":"https://covidout.in/"} => succcss_count:0, error_count:1
761. ## => GET => http://{{server}}/api/push_notification/push_one?token=fgEljAT1Qzg:APA91bFFF2zSUg3MaMtepRUzoE0xWcOvg4DlSSlxx8-85qDWreGJLHGWIM6zUkVgHIm3M7oZmcCoWIO11y2ZPbizyKt88dk-aNMYxgAiCf_DKF53ypPmpEH1-SpwSOTkV2wacIqSMBcz&title=এটা কিছু টেস্ট &body=এটা কিছু টেস্ট &key=0&pane=music&target=5e6d53f944526b7da8c0a844 => Successfully sent
762. #=> GET => http://{{server}}/api/push_notification/count?app_id=test => Count: 0
763.
764. # Testing Utilities
765. => GET => http://{{server}}/api/utils/test?app_id=test => You are hitting Test Utils
766. => GET => http://{{server}}/api/utils/date => The system time is
767. => GET => http://{{server}}/api/utils/bootcamp => Welcome to simplestore BootCamp!
768.
769. # Test Stategyies
770. => GET => http://{{server}}/api/test/insert?name=dip&_viewas=noresp => {"status":"success"}
771. => POST => http://{{server}}/api/test/insert?_viewas=noresp => {"name":"dip"}=> ^{"status":"success"}$
772. # We should get the exception evenif there is _viewas=noresp
773. => GET => http://{{server}}/api/test/insert?name=dip&_viewas=noresp&_viewas=xxx => Error while parsing request
774.
775.
776.
777. # test Bulk hits and rank
778. => !GET => http://{{server}}/api/test0/create?name=dip2 => "_id":"(?.*?)"
779. => POST => http://{{server}}/api/test0/bulk_hit => {"_payload":[{"id":"{{id}}","field":"count", "value":1}]} => s/e: 1/0
780. # Te hardcoded value treaded as a true.
781. => POST => http://{{server}}/api/test0/bulk_hit => {"_payload":[{"id":"{{id}}","field":"count", "value":1}, {"id":"56cafab06639904e9b68e73a","field":"count", "value":1}, {"id":"{{id}}","field":"count", "value":"wrong"}]} => s/e: 2/1
782. => GET => http://{{server}}/api/test0/?id={{id}} => "count":2
783. => POST => http://{{server}}/api/test0/bulk_hit => {"_payload":[{"id":"{{id}}","field":"count", "value":-1}]} => [s/e: 1/0]
784. => POST => http://{{server}}/api/test0/bulk_hit => {"_payload":[{"id":"{{id}}","field1":"count", "value":-1}]} => [s/e: 0/1]
785. => GET => http://{{server}}/api/test0/?id={{id}} => "count":1
786. => POST => http://{{server}}/api/test0/bulk_rank => {"_payload":[{"id":"{{id}}","field":"count", "up":true},{"id":"{{id}}","field":"count", "up":true},{"id":"{{id}}","field":"count", "up":true},{"id":"{{id}}","field":"count", "up":true},{"id":"{{id}}","field":"count", "up":true},{"id":"{{id}}","field":"count", "up":true},{"id":"{{id}}","field":"count", "up":true},{"id":"{{id}}","field":"count", "up":true},{"id":"{{id}}","field":"count", "up":true},{"id":"{{id}}","field":"count", "up":true},{"id":"{{id}}","field":"count", "up":true},{"id":"{{id}}","field":"count", "up":true},{"id":"{{id}}","field":"count", "up":true},{"id":"{{id}}","field":"count", "up":true},{"id":"{{id}}","field":"count", "up":true},{"id":"{{id}}","field":"count", "up":true}]} => [s/e: 16/0]
787. => GET => http://{{server}}/api/test0/?id={{id}} => "count":10
788. => POST => http://{{server}}/api/test0/bulk_rank => {"_payload":[{"id":"{{id}}","field":"count", "up":false},{"id":"{{id}}","field":"count", "up":false},{"id":"{{id}}","field":"count", "up":false},{"id":"{{id}}","field":"count", "up":false},{"id":"{{id}}","field":"count", "up":false},{"id":"{{id}}","field":"count", "up":false},{"id":"{{id}}","field":"count", "up":false},{"id":"{{id}}","field":"count", "up":false},{"id":"{{id}}","field":"count", "up":false},{"id":"{{id}}","field":"count", "up":false},{"id":"{{id}}","field":"count", "up":false},{"id":"{{id}}","field":"count", "up":false},{"id":"{{id}}","field":"count", "up":false},{"id":"{{id}}","field":"count", "up":false},{"id":"{{id}}","field":"count", "up":false},{"id":"{{id}}","field":"count", "up":false}]} => [s/e: 16/0]
789. => POST => http://{{server}}/api/test0/bulk_rank => {"_payload":[{"id":"{{id}}","field":"count", "up":false},{"id":"{{id}}","field":"count", "up":false},{"id":"{{id}}","field":"count", "up":false},{"id":"{{id}}","field":"count", "up":false},{"id":"{{id}}","field":"count", "up":false},{"id":"{{id}}","field":"count", "up":false},{"id":"{{id}}","field":"count", "up":false},{"id":"{{id}}","field":"count", "up":false},{"id":"{{id}}","field":"count", "up":false},{"id":"{{id}}","field":"count", "up":false},{"id":"{{id}}","field":"count", "up":false},{"id":"{{id}}","field":"count", "up":false},{"id":"{{id}}","field":"count", "up":false},{"id":"{{id}}","field":"count", "up":false},{"id":"{{id}}","field":"count", "up":false},{"id":"{{id}}","field":"count", "up":false}]} => [s/e: 16/0]
790. => GET => http://{{server}}/api/test0/?id={{id}} => "count":0
791.
792.
793.
794. ################################################################################
795. # Sending Email functinaly ( Broken Needs API redesign)
796. ################################################################################
797. ## TODO: Test are broken as we meshed up with body and html two data, I would perefr to have body and then isHtml as a flag so this need to be rredesigned
798. => GET => http://{{server}}/api/utils/email => Input validation failed: Missing to
799. => GET => http://{{server}}/api/utils/email?to=dutta.dipankar08@gmail.com&body=Simple Test =>Input validation failed: Missing subject
800. ## Please use dryrun to ensure to avoid getting so many mails.
801. => GET => http://{{server}}/api/utils/email?to=dutta.dipankar08@gmail.com&subject=Hello World&body=Simple Test&dry_run=1 => ACTUALY NOT SEND - JUST A DRY RUN
802. => GET => http://{{server}}/api/utils/email?to=dutta.dipankar08@gmail.com&subject=Hello World&dry_run=1 => Missing body
803. => GET => http://{{server}}/api/utils/email?to=dutta.dipankar08@gmail.com&subject=Hello World&body=Simple Test&dry_run=1 => ACTUALY NOT SEND - JUST A DRY RUN
804. => GET => http://{{server}}/api/utils/email?to=dutta.dipankar08@gmail.com&subject=Hello World&body=Simple Test&dry_run=1&is_html=1 => ACTUALY NOT SEND - JUST A DRY RUN
805.
806. ## Test multiple sendaccount by spaciating product
807.
808. => GET => http://{{server}}/api/utils/email?to=dutta.dipankar08@gmail.com&subject=Hello World&product=Grodok&body=hello&dry_run=1 => ACTUALY NOT SEND
809. => GET => http://{{server}}/api/utils/email?to=dutta.dipankar08@gmail.com&subject=Hello World&body=Simple Test&dry_run=1&product=hello => Mail is not supported for this product
810. => GET => http://{{server}}/api/utils/email?to=dutta.dipankar08@gmail.com&subject=Hello World&body=Simple Test&dry_run=1&product=default => \[DRYRUN\] Mail sent to
811.
812. ##send calender invitew - just add start_time as ISO date String and duration as number in minites
813. => GET => http://{{server}}/api/utils/email?to=dutta.dipankar08@gmail.com&subject=Hello World&body=Simple Test&start_time=2023-07-23T23:37:08.505Z => Missing duration
814. => GET => http://{{server}}/api/utils/email?to=dutta.dipankar08@gmail.com&subject=Hello World&body=Simple Test&start_time=2023-07-23T23:37:08.505Z&duration=xyz => has to be a valid date!
815. => GET => http://{{server}}/api/utils/email?to=dutta.dipankar08@gmail.com&subject=Hello World&body=Simple Test&start_time=INAVLID&duration=xyz => has to be a valid date
816. => GET => http://{{server}}/api/utils/email?to=dutta.dipankar08@gmail.com&subject=Hello World&body=Simple Test&start_time=2023-07-23T23:37:08.505Z&duration=30&dry_run=1 => ACTUALY NOT SEND
817. => GET => http://{{server}}/api/utils/email?to=dutta.dipankar08@gmail.com&subject=Hello World&body=Simple Test&start_time=2023-07-23T23:37:08.505Z&duration=30&cal_body=Cal Body &cal_subject=Cal_Subject&cal_location=Kolkata&dry_run=1 => ACTUALY NOT SEND
818.
819. ## test HTML Mail.
820. ## We are supported HTML mail - you need to send body and html but body would be droped. It just use the degault HTML
821. ## template to send the email. It works for both w/o calender
822. => POST => http://{{server}}/api/utils/email => {"to":"dutta.dipankar08@gmail.com", "subject":"Hello", "body":"hello", "body":"Hello\nHow ae you doing?\n\nThnaks,\nDipankar","dry_run":1, "is_html":1} => ACTUALY NOT SEND
823. => GET => http://{{server}}/api/utils/email?to=dutta.dipankar08@gmail.com&subject=Hello World&body=Simple Test&start_time=2023-07-23T23:37:08.505Z&duration=30&cal_body=Cal Body &cal_subject=Cal_Subject&cal_location=Kolkata&html=hello there&dry_run=1 => ACTUALY NOT SEND
824. => GET => http://{{server}}/api/utils/email?to=testuser@gmail.com&subject=Hello World&body=Simple Test => You must pass some valid email addess
825.
826. ## REAL SEND MAIL - DISABLE BELOW TEST
827. ## GET => http://{{server}}/api/utils/email?to=dutta.dipankar08@gmail.com&subject=Hello World&body=Simple Test => Mail sent to
828. ## GET => http://{{server}}/api/utils/email?to=dutta.dipankar08@gmail.com&subject=Hello World&body=Hello\n\nWorld\nDipankar\nTest=> Mail sent to
829. ## GET => http://{{server}}/api/utils/email?to=dutta.dipankar08@gmail.com&subject=Hello World&body=Simple Test&start_time=2023-07-23T23:37:08.505Z&duration=30 => [DRYRUN] Mail sent to
830.
831. ## HTML Norm : new line to
832. => GET => http://localhost/api/utils/email?to=dutta.dipankar08@gmail.com&subject=Hello World&body=Hello\nWorld&dry_run=1&is_html=1 => Hello
World
833. => GET => http://{{server}}/api/utils/email?to=dutta.dipankar08@gmail.com&subject=Hello World&body=\nHello\nWorld\n&dry_run=1&is_html=1 =>
Hello
World
834. => POST => http://{{server}}/api/utils/email => {"to":"dutta.dipankar08@gmail.com", "subject":"Hello World","body":"\nHello\nWorld\n","dry_run":1, "is_html":1 } =>
Hello
World
835.
836. ################################################
837. # Short code
838. ################################################
839. => GET => http://{{server}}/api/nodel_shortcode/insert => Trying insert Empty Object
840. => GET => http://{{server}}/api/nodel_shortcode/generate => Input validation failed: Missing target_db
841. => GET => http://{{server}}/api/nodel_shortcode/generate?target_id=123&target_db=xxxdb => "short_code":"(?.*?)"
842. => GET => http://{{server}}/api/nodel_shortcode/get?short_code={{short_code}} => xxxdb
843. => GET => http://{{server}}/api/nodel_shortcode/get?short_code=wrong => Find successfully with 0 items
844.
845.
846.
847.
848. # Support _sort.
849. => !GET => http://{{server}}/api/test0/delete?_confirmstr=test0 => success
850. => !POST => http://{{server}}/api/test0/create => {"_payload":[{"name":"dip3","roll":1},{"name":"dip3","roll":2}]} => success
851. => GET => http://{{server}}/api/test0/find?&_sort=roll => "roll":1.*?"roll":2
852. => GET => http://{{server}}/api/test0/find?&_sort=-roll => "roll":2.*?"roll":1
853.
854. # Support clone APIs
855. => !POST => http://{{server}}/api/test0/create => {"name":"dip","num":{"math":10, "eng":11}} => "_id":"(?.*?)"
856. => GET => http://{{server}}/api/test0/clone => You must pass a _id
857. => POST => http://{{server}}/api/test0/clone => {} => You must pass a _id
858. => GET => http://{{server}}/api/test0/clone?_id={{id}} => "name":"dip"
859. => GET => http://{{server}}/api/test0/clone?_id={{id}}&name=dip2 => "name":"dip2"
860. => POST => http://{{server}}/api/test0/clone => {"id":"{{id}}", "name":"dip3"} => "name":"dip3"
861.
862. # QR code generation:
863. => GET => http://{{server}}/api/utils/qr => Missing url
864. => GET => http://{{server}}/api/utils/qr?url=http://google.com => svg
865. => GET => http://{{server}}/api/utils/qr?url=http://google.com&size=100 => height="100"
866. => GET => http://{{server}}/api/utils/qr?url=http://google.com&size=100&color=%23ff0000 => \#ff0000
867.
868.
869. # test system_payment == Migrate to simple_auth
870. #=> GET => http://{{server}}/api/system_payment/stripe => Stripe API returns an unexpected resp
871. # => GET => http://{{server}}/api/system_payment/stripe?id=1234 => Stripe API returns an unexpected resp <<< FIX THIS
872. #=> GET => http://{{server}}/api/system_payment_not_webhook/?id=1234 => not a valid ID
873. # test invalid sqi
874. #=> POST => http://{{server}}/api/system_payment/stripe => {"data":{"object":{"amount":100,"currency":"inr","id":"123", "customer":"cus_123", "description":"tx description", "charges":{"data":[{"billing_details":{"email":"dip@fb.com"}}]}}}}=> SKU not configuired in SimpleStore
875. # test right parsing
876. #=> POST => http://{{server}}/api/system_payment/stripe => {"data":{"object":{"amount":100,"currency":"inr","id":"123", "customer":"cus_123", "description":"sku1", "charges":{"data":[{"billing_details":{"email":"dip@fb.com"}}]}}}}=> Payment is inserted
877. # test empty data
878. #=> POST => http://{{server}}/api/system_payment/stripe => {}=> Stripe API returns an unexpected resp
879. #=> GET => http://{{server}}/api/system_payment/points => Missing user_id
880. # this api should be used to get total points for an user
881. #=> GET => http://{{server}}/api/system_payment/points?user_id=123 => No matching query found
882. #=> GET => http://{{server}}/api/system_payment/points?user_id=dip@fb.com => Total points is:
883.
884. # test roserpay WebHook
885. #=> POST => http://{{server}}/api/system_payment/razorpay => { "entity": "event", "account_id": "acc_3xhNTlBQgmDD7g", "event": "payment.captured", "contains": ["payment" ], "payload": {"payment": { "entity": {"id": "pay_FVxUMaT3vnv78M","entity": "payment","amount": 20000,"currency": "INR","status": "captured","order_id": "order_FVxUBI0n9PhY5T","invoice_id": null,"international": false,"method": "netbanking","amount_refunded": 0,"refund_status": null,"captured": true,"description": null,"card_id": null,"bank": "HDFC","wallet": null,"vpa": null,"email": "dutta.dipankat08@gmail.com","contact": "+919933588184","notes": { "email": "dutta.dipankat08@gmail.com", "phone": "9933588184"},"fee": 590,"tax": 90,"error_code": null,"error_description": null,"error_source": null,"error_step": null,"error_reason": null,"acquirer_data": { "bank_transaction_id": "5972833"},"created_at": 1598568741 }} }, "created_at": 1598568744} => Payment is inserted
886. #=> POST => http://{{server}}/api/system_payment/razorpay => { "entity": "event", "account_id": "acc_3xhNTlBQgmDD7g", "event": "payment.failure", "contains": ["payment" ], "payload": {"payment": { "entity": {"id": "pay_FVxUMaT3vnv78M","entity": "payment","amount": 20000,"currency": "INR","status": "captured","order_id": "order_FVxUBI0n9PhY5T","invoice_id": null,"international": false,"method": "netbanking","amount_refunded": 0,"refund_status": null,"captured": true,"description": null,"card_id": null,"bank": "HDFC","wallet": null,"vpa": null,"email": "dutta.dipankat08@gmail.com","contact": "+919933588184","notes": { "email": "dutta.dipankat08@gmail.com", "phone": "9933588184"},"fee": 590,"tax": 90,"error_code": null,"error_description": null,"error_source": null,"error_step": null,"error_reason": null,"acquirer_data": { "bank_transaction_id": "5972833"},"created_at": 1598568741 }} }, "created_at": 1598568744} => Received invalid events - razorpay API returns an unexpected resp
887. #=> POST => http://{{server}}/api/system_payment/razorpay => { "entity": "event", "account_id": "acc_3xhNTlBQgmDD7g", "event": "payment.captured", "contains": ["payment" ], "payload": {"payment": { "entity": {"id": "pay_FVxUMaT3vnv78M","entity": "payment","amount": 20001,"currency": "INR","status": "captured","order_id": "order_FVxUBI0n9PhY5T","invoice_id": null,"international": false,"method": "netbanking","amount_refunded": 0,"refund_status": null,"captured": true,"description": null,"card_id": null,"bank": "HDFC","wallet": null,"vpa": null,"email": "dutta.dipankat08@gmail.com","contact": "+919933588184","notes": { "email": "dutta.dipankat08@gmail.com", "phone": "9933588184"},"fee": 590,"tax": 90,"error_code": null,"error_description": null,"error_source": null,"error_step": null,"error_reason": null,"acquirer_data": { "bank_transaction_id": "5972833"},"created_at": 1598568741 }} }, "created_at": 1598568744} => SKU not configuired in SimpleStore
888.
889. # Test Trial points.
890. #=> GET => http://{{server}}/api/system_payment/trial?user_id=trial_user1&sku=test_sku_trial => Your trail is activated!
891. #=> GET => http://{{server}}/api/system_payment/trial?user_id=trial_user1&sku=test_sku_trial => You aleady used your trial
892. #=> GET => http://{{server}}/api/system_payment/trial?user_id=trial_user1&sku=unknown => SKU not configuired in SimpleStore
893. #=> GET => http://{{server}}/api/system_payment/trial?user_id=trial_user1&sku=test_sku_trial_no => This SKU is not elligiable from trail
894. #=> GET => http://{{server}}/api/system_payment/points?user_id=trial_user1 => 10
895. #=> GET => http://{{server}}/api/system_payment/delete?_confirmstr=system_payment => success
896.
897.
898. # test friendly ID: ( test3 is config for friendly id so it would be a match)
899. # You should note that friendlyID should NOT necessaryly to be unique due to te perf.
900. => POST => http://{{server}}/api/test0/insert => {"name":"dip"} => ts_insert
901. => POST => http://{{server}}/api/test3/insert => {"name":"dip"} => friendly_id
902. => POST => http://{{server}}/api/test3/insert => {"name":"dip"} => friendly_id
903.
904. ######### Testing calender APIS #############
905. => POST => http://{{server}}/api/system_calender/grant => {} => Input validation failed
906. => POST => http://{{server}}/api/system_calender/grant => {"product":"test", "user_id":"123", "start_time":"invalid","duration":30, "type":"type1" } => Invalid start_time
907. #=> POST => http://{{server}}/api/system_calender/grant => {"product":"test", "user_id":"123", "start_time":"2013-03-10T02:00:00Z","duration":15, "type":"type1" } => success
908. #=> POST => http://{{server}}/api/system_calender/grant => {"product":"test", "user_id":"123", "start_time":"2013-03-10T02:00:00Z","duration":60, "type":"type1" } => 2/2 slots created
909. => POST => http://{{server}}/api/system_calender/grant => {"product":"test", "user_id":"123", "start_time":"2013-03-10T03:00:00Z","duration":60, "type":"type1","slot":10 } => 6/6 slots created
910. => POST => http://{{server}}/api/system_calender/grant => {"product":"test", "user_id":"123", "start_time":"2013-03-10T03:00:00Z","duration":60, "type":"type1","slot":10 } => error
911. => POST => http://{{server}}/api/system_calender/grant => {"product":"test", "user_id":"123", "start_time":"2013-03-10T03:10:00Z","duration":70, "type":"type1","slot":10 } => 2/7
912. => POST => http://{{server}}/api/system_calender/grant => {"product":"test", "user_id":"123", "start_time":"2014-03-10T03:10:00Z","duration":70, "type":"type1","slot":10 } => 7/7
913.
914. # Test Avilablity
915. => POST => http://{{server}}/api/system_calender/availability => {"product":"test", "date":"2013-03-10T03:10:00Z" } => ,"user_id":"123","type":"type1"
916. # There is an issue in the below test
917. => POST => http://{{server}}/api/system_calender/availability => {"product":"test", "date":"2015-03-10T03:10:00Z" } => 0 free slots found
918. => POST => http://{{server}}/api/system_calender/availability => {"product":"test", "date":"2013-03-10T03:10:00Z","type":"type1" } => ,"user_id":"123","type":"type1"
919. => POST => http://{{server}}/api/system_calender/availability => {"product":"test", "date":"2013-03-10T03:10:00Z","type":"type2" } => "out":\[\]
920. => POST => http://{{server}}/api/system_calender/availability => {"product":"test", "date":"2013-03-10T03:10:00Z","type":"pe1" } => ,"user_id":"123",
921. => POST => http://{{server}}/api/system_calender/availability => {"product":"test", "date":"2012-03-10T03:10:00Z","type":"pe2" } => "out":\[\]
922. => POST => http://{{server}}/api/system_calender/availability => {"date":"2013-03-10T03:10:00Z","type":"pe2" } => Missing product
923.
924. # test booking:
925. => POST => http://{{server}}/api/system_calender/grant => {"product":"doctor", "user_id":"123", "start_time":"2015-03-15T03:00:00Z","duration":60, "type":"type1","slot":10 } => 6/6
926. => POST => http://{{server}}/api/system_calender/availability => {"product":"doctor", "date":"2015-03-15T03:00:00Z"} => 6 free slots found
927. => POST => http://{{server}}/api/system_calender/availability => {"product":"doctor", "date":"2015-03-15T03:00:00Z"} => "_id":"(?.*?)"
928. => POST => http://{{server}}/api/system_calender/book => {"product":"test", "id" :"{{id2}}", "user_id":"booker2"} => successfully booked
929. => POST => http://{{server}}/api/system_calender/book => {"product":"test", "id" :"{{id2}}", "user_id":"booker2"} => This schedule is already taken
930. => POST => http://{{server}}/api/system_calender/availability => {"product":"doctor", "date":"2015-03-15T03:00:00Z" } => 5 free slots found
931.
932. # test cancel
933. => POST => http://{{server}}/api/system_calender/cancel => {"id" :"{{id2}}", "user_id":"booker3"} => not auth
934. => POST => http://{{server}}/api/system_calender/cancel => {"id" :"5f46e8952dd1ada69b161f91", "user_id":"booker3"} => Schedule not found"
935. => POST => http://{{server}}/api/system_calender/cancel => {"id" :"{{id2}}", "user_id":"booker2"} => successfully canceled
936. => POST => http://{{server}}/api/system_calender/availability => {"product":"doctor", "date":"2015-03-15T03:00:00Z" } => 6 free slots found
937. => GET => http://{{server}}/api/system_calender/delete?_confirmstr=system_calender => success
938.
939.
940. => GET => http://{{server}}/api/utils/email?to=dutta.dipankar08@gmail.com&subject=Hello World&body=Simple Test&dry_run=1&product=hello => Mail is not supported for this product
941. => GET => http://{{server}}/api/utils/email?to=dutta.dipankar08@gmail.com&subject=Hello World&body=Simple Test&dry_run=1&product=default => \[DRYRUN\] Mail sent to
942.
943. # Test promotion ## Needs a migration simple auth => admin_promotions DB instead
944. #=> !POST => http://{{server}}/api/auth2/login_by_token => {"token": "fake_token"} => "auth_token":"(?.*?)"
945. #=> POST => http://{{server}}/api/promotion/get_referral_code => {} => Missing auth_token
946. #=> POST => http://{{server}}/api/promotion/get_referral_code => {"auth_token": "wrong","product":"fake_product"} => Unauthorized request
947. #=> POST => http://{{server}}/api/promotion/get_referral_code => {"auth_token": "{{auth_token}}","product":"fake_product"} => "code":"(?.*?)"
948. #=> POST => http://{{server}}/api/promotion/get_referral_code => {"auth_token": "{{auth_token}}","product":"fake_product"} => You already have generated the ref code.
949. #=> POST => http://{{server}}/api/promotion/get_referral_code => {"auth_token": "{{auth_token}}","product":"fake_product1"} => "code":"(?.*?)"
950. #=> POST => http://{{server}}/api/promotion/check_referral_code => {"code": "{{code}}","product":"fake_product"} => "type":"REFER",
951. #=> POST => http://{{server}}/api/promotion/check_referral_code => {"code": "{{code}}","product":"fake_product1"} => This referral code is not valid
952. #=> POST => http://{{server}}/api/promotion/check_referral_code => {"code": "wrong","product":"fake_product1"} => This referral code is not valid
953. #=> GET => http://{{server}}/api/promotion/delete?_confirmstr=promotion => success
954.
955. # RCE - JUST BASIC TEST
956.
957. # Capabilities
958. => GET => http://{{server}}/api/utils/rce/capabilities?_dev_token=root => hello_world_code
959.
960. # Status
961. => GET => http://{{server}}/api/utils/rce/status?_dev_token=root&lang=c => Compiler works fine
962. => POST => http://{{server}}/api/utils/rce/execute => {"_dev_token":"root", "lang":"c", "code":"\#include"} => \"out\":{\"stderr\":\"/tmp/
963. => POST => http://{{server}}/api/utils/rce/execute => {"_dev_token":"root", "lang":"c","code": "\#include \n int main(){ while(1) printf(\"Hello Dipankar\"); \nreturn 0;}"} => DipankarHello DipankarHello DipankarHello DipankarHello DipankarHello
964. => POST => http://{{server}}/api/utils/rce/execute_ext => {"_dev_token":"root", "lang":"python", "code":"print 'hello123'"} => hello123
965. => POST => http://{{server}}/api/utils/rce/execute_input => {"_dev_token":"root", "lang":"c", "code": "\#include \n int main(){ char str[100]; scanf(\"%s\",&str);printf(\"%s\", str); \nreturn 0;}","lang":"c","input":"HelloWorld"} => HelloWorld
966.
967.
968.
969. # Test Youtube Download
970. #sudo curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl
971. # sudo chmod a+rx /usr/local/bin/youtube-dl
972. #=> GET => http://{{server}}/api/utils/youtubedl?id=sb_sMqAF_o => Incomplete YouTube ID
973. # => GET => http://{{server}}/api/utils/youtubedl?id=CP2AYEqoaZo => googlevideo.com
974. # => GET => http://{{server}}/api/utils/youtubedl/audio?id=CP2AYEqoaZo => googlevideo.com
975. # => GET => http://{{server}}/api/utils/youtubedl/video?id=CP2AYEqoaZo => googlevideo.com
976. # => GET => http://{{server}}/api/utils/youtubedl/info?id=CP2AYEqoaZo => googlevideo.com
977. # => GET => http://{{server}}/api/utils/youtubedl/audio?id=https://www.youtube.com/watch?v=De8UKeURlWU => googlevideo.com
978. # => GET => http://{{server}}/api/utils/youtubedl/dl?id=kEld6MLDXPI => A-V-mp4
979. #### USE TESING BELOW LINE ##
980.
981. # SimpleStore EXPLORE
982. => GET => http://{{server}}/api/explore/play => Simple Store API EXPLORE
983.
984. # SMS
985. => GET => http://{{server}}/api/utils/sms?to=8927476238&msg=hello&dryrun=true => \[Dryrun\] SMS sent to 8927476238
986.
987. # Dev key
988. GET => http://{{server}}/api/utils/rce/execute?code=hello&lang=kotlin => Access denied
989. GET => http://{{server}}/api/utils/rce/execute?code=hello&lang=kotlin&_dev_token=root1 => Access denied
990. GET => http://{{server}}/api/utils/rce/execute?code=hello&lang=kotlin&_dev_token=root => Error while executing this code
991.
992. # Status utils = This tracks the health of the endpoints
993. GET => http://{{server}}/api/status/ping?name=ServiceA => Missing endpoint
994. GET => http://{{server}}/api/status/ping?endpoint=www.google.com => Missing name
995. GET => http://{{server}}/api/status/ping?name=ServiceA&endpoint=www.google.com => pong
996. GET => http://{{server}}/api/status/ping?name=ServiceA&endpoint=www.google.com => pong
997. GET => http://{{server}}/api/status/show => Live Status of our Service
998. # HTML TEST NOT SUPPORTED GET => http://{{server}}/api/analytics/show?app_id=sample1 => Showing data for app id sample1
999. # HTML TEST NOT SUPPORTED GET => http://{{server}}/api/analytics/show?app_id=sample => Showing data for app id sample
1000.
1001. # Long tern Jobs
1002.
1003.
1004.
1005.
1006. ############################# license APIS. #############################
1007. # License APis allows you to create license for an app user for a app for a duration.
1008. # You can either grant, revoke and validate the license
1009. # All common api's needs root_key to access (TODO)
1010. # There is no renew supported, you just revoke and grant it again.
1011. #########################################################################
1012. => !GET => http://{{server}}/api/license/delete?_confirmstr=license => success
1013. # Root key
1014. # => GET => http://{{server}}/api/license/ => api access denied
1015. # => GET => http://{{server}}/api/license?root_key=WRONG => success
1016. # Grant, validate and revoke
1017. => GET => http://{{server}}/api/license/grant?app_id=test&user_id=test => Missing duration
1018. => GET => http://{{server}}/api/license/grant?app_id=test&user_id=test&duration=1&key=NO_KEY => "key":"NO_KEY"
1019. => GET => http://{{server}}/api/license/grant?app_id=test&user_id=test&duration=1&key=NO_KEY => license already granted
1020. => GET => http://{{server}}/api/license/grant?app_id=test&user_id=test1&duration=WRONG&key=NO_KEY => please pass a valid duration
1021. => GET => http://{{server}}/api/license/validate?app_id=test&user_id=test&key=NO_KEY => access granted
1022. => GET => http://{{server}}/api/license/validate?app_id=test&user_id=test&key=NO_KEY1 => access denied
1023. => GET => http://{{server}}/api/license/validate?app_id=WRONG&user_id=test&key=NO_KEY => access denied
1024. => GET => http://{{server}}/api/license/revoke?app_id=test&user_id=test => license revoked
1025. => GET => http://{{server}}/api/license/revoke?app_id=test&user_id=test => license not found
1026. => GET => http://{{server}}/api/license/revoke?app_id=test&user_id=test => license not found
1027. => GET => http://{{server}}/api/license/revoke?app_id=test=> Missing user_id
1028.
1029. # expairy
1030. => GET => http://{{server}}/api/license/grant?app_id=test&user_id=test2&duration=0&key=NO_KEY=> success
1031. => GET => http://{{server}}/api/license/validate?app_id=test&user_id=test2&key=NO_KEY => license expired
1032.
1033. # renew
1034. => GET => http://{{server}}/api/license/revoke?app_id=test&user_id=test2 => license revoked
1035. => GET => http://{{server}}/api/license/grant?app_id=test&user_id=test2&duration=1&key=NO_KEY=> success
1036. => GET => http://{{server}}/api/license/validate?app_id=test&user_id=test2&key=NO_KEY => access granted
1037.
1038. # generate key
1039. => GET => http://{{server}}/api/license/grant?app_id=test&user_id=test3&duration=1=> "key":"(?.*?)"
1040. => GET => http://{{server}}/api/license/validate?app_id=test&user_id=test3&key={{key}} => access granted
1041.
1042.
1043. ############################# Schedule Script #############################
1044. # You can schedule arbitrary script execution with SimpleStore
1045. # FIrst submit a task using /schedule_script/submit/
1046. # Then Activate the task using /schedule_script/submit/
1047. # Great! You job has scheduled.
1048. # Check a list of jobs which are current scheduled as /schedule_script/status/ and you can deactivate as /schedule_script/deactivate/
1049. #########################################################################
1050. => !GET => http://{{server}}/api/schedule_script/delete?_confirmstr=schedule_script => success
1051.
1052. => GET => http://{{server}}/api/schedule_script/submit?name=test&description=test&script=console.log(%22hello%20Dipankar%22)ZZ&cron=*/1%20*%20*%20*%20* => "_id":"(?.*?)"
1053. => GET => http://{{server}}/api/schedule_script/activate?id={{job_id}} => Job has scheduled
1054. => GET => http://{{server}}/api/schedule_script/activate?id={{job_id}} => already scheduled
1055. => GET => http://{{server}}/api/schedule_script/activate_all => 0/1 Job has scheduled
1056. => GET => http://{{server}}/api/schedule_script/reload => We have restarted 1 jobs
1057. => GET => http://{{server}}/api/schedule_script/status => {{job_id}}
1058. # => sleep => 30 # Disabled to just avoid waiting while testing -- works fine,
1059. # => GET => http://{{server}}/api/schedule_script/status => "successCount":1
1060. => GET => http://{{server}}/api/schedule_script/deactivate?id={{job_id}} => canceled
1061. => GET => http://{{server}}/api/schedule_script/deactivate?id={{job_id}} => is not scheduled
1062. => GET => http://{{server}}/api/schedule_script/status => We found 0 active scheduled Script
1063. => GET => http://{{server}}/api/schedule_script/dryrun?script=ABCD => ABCD
1064. => GET => http://{{server}}/api/schedule_script/dryrun?script=console.log('hello') => success
1065.
1066.
1067. # Delete all at the end this is needed as server auto load when stat
1068. => !GET => http://{{server}}/api/schedule_script/delete?_confirmstr=schedule_script => success
1069.
1070.
1071. ############################# Subscription #############################
1072. # Provides api for email subscription and resubscription
1073. # User can do subscribe and unscibe to an app by giving email id.
1074. # Admin can notify by ending mail to all the people who subscribe.
1075. # Maximum notification allow is 1000
1076. #########################################################################
1077. => !GET => http://{{server}}/api/subscription/delete?_confirmstr=subscription => success
1078. => GET => http://{{server}}/api/subscription/subscribe?app_id=test&email=dutta.dipankar08@gmail.com => success
1079. => GET => http://{{server}}/api/subscription/subscribe?app_id=test&email=dutta.dipankar08@gmail.com => Data validation failed as composite key failed
1080. => GET => http://{{server}}/api/subscription/count => Count: 1
1081. => GET => http://{{server}}/api/subscription/notify?subject=Hello&body=Some HTML Content&app_id=test&dry_run=1 => Email send to 1 subscriber
1082. => GET => http://{{server}}/api/subscription/notify?subject=Hello&body=Some HTML Content&app_id=wrong&dry_run=1 => Not able to notify as there is zero subscription for this app
1083. => GET => http://{{server}}/api/subscription/unsubscribe?app_id=test&email=dutta.dipankar08@gmail.com => success
1084. => GET => http://{{server}}/api/subscription/unsubscribe?app_id=test&email=dutta.dipankar08@gmail.com => Not able to unsubscribe
1085. => GET => http://{{server}}/api/subscription/count => Count: 0
1086.
1087.
1088. ############################ SOCIAL POST ##################################
1089. # This allow to post the text and image in FB, Tweeter, Linked-In and Telegram
1090. # We currently supports (1)FB abd (2) Tweeter
1091. # You need to update the key in /etc/SECURE
1092. ############################################################################
1093. # Comments to avoid spanning the profile
1094. # => GET => http://{{server}}/api/utils/social/twitter?text=automation test => Successfully tweeted
1095. # => GET => http://{{server}}/api/utils/social/twitter?text=automation test => Status is a duplicate
1096. # => GET => http://{{server}}/api/utils/social/facebook?text=automation test => Successfully tweeted
1097. => GET => http://{{server}}/api/utils/social/telegram => Missing text
1098. # => GET => http://{{server}}/api/utils/social/telegram?text=automationtest\&Test => success
1099. # You should you post method to pass data
1100. # Below two test is diable as missing real tokens
1101. # => POST => http://{{server}}/api/utils/social/telegram => {"text":"automation test & Test & test"} => success
1102. # => POST => http://{{server}}/api/utils/social/facebook => {"text":"Welcome to SimpleStore! This is post where we test our APIs"} => success
1103.
1104. ############################ TEST Universal Link page ##################################
1105. #
1106. ############################################################################
1107. => GET => http://{{server}}/api/utils/universal_link?app_id=in.co.dipankar.fmradio&key=1&app_name=FMRadio => https://play\.google\.com/store/apps/details\?id=in\.co\.dipankar\.fmradio
1108. => GET => http://{{server}}/api/utils/universal_link?app_id=in.co.dipankar.fmradio&key=1&app_name => Input validation failed: Missing app_name"
1109. => GET => http://{{server}}/api/utils/universal_link => Input validation failed: Missing app_id"
1110.
1111. ############################ Static File generator ##################################
1112. #
1113. ############################################################################
1114. => GET => http://{{server}}/api/utils/static/privacy?app_id=in.co.dipankar.fmradio&key=1&app_name=XXXXXXXXX => XXXXXXXXX
1115. => GET => http://{{server}}/api/utils/static/toc?app_id=in.co.dipankar.fmradio&key=1&app_name=XXXXXXXXX => XXXXXXXXX
1116.
1117. ############################## UPDATE ONE ###########################################
1118. # THIS API helps to update one entry entry in ethe system. you must by _filter and _payload to serch that
1119. # entry and update with the needed data. Should throw the error it it found many entry
1120. # >>> NOT WORKING ANY MORE <<<<
1121. #####################################################################################
1122. #=> !GET => http://{{server}}/api/test/delete?_confirmstr=test => success
1123. #=> POST => http://{{server}}/api/test/create => {"name":"dip", "roll":1} => success
1124. #=> POST => http://{{server}}/api/test/update_one => {} => _filter object must be non empty
1125. #=> POST => http://{{server}}/api/test/update_one => {"_filter":{}} => _filter object must be non empty
1126. #=> POST => http://{{server}}/api/test/update_one => {"_filter":{"name":"dip"} ,"_payload":{}} => You must pass some data in the request
1127. #=> POST => http://{{server}}/api/test/update_one => {"_filter":{"name":"dip1"},"_payload":{"roll":2}} => there is no matching entry
1128. #=> POST => http://{{server}}/api/test/update_one => {"_filter":{"name":"dip"},"_payload":{"roll":2}} => pdated 1 entry out of 1 matched
1129. #=> POST => http://{{server}}/api/test/create => {"name":"dip", "roll":1} => success
1130. #=> POST => http://{{server}}/api/test/update_one => {"_filter":{"name":"dip"},"_payload":{"roll":2}} => We found multiple entry
1131. => !GET => http://{{server}}/api/test/delete?_confirmstr=test => success
1132.
1133. ############################## INSERT OR UPDATE ONE ###########################################
1134. # THIS API helps to insert update one entry entry in ethe system. you must by _filter and _payload to pass
1135. # if the item is found that are updated with new payload - or it will create a new entry by marging _filter and _payload
1136. #####################################################################################
1137. => !GET => http://{{server}}/api/test/delete?_confirmstr=test => success
1138. => POST => http://{{server}}/api/test/insert_or_update_one => {} => _filter object must be non empty
1139. => POST => http://{{server}}/api/test/insert_or_update_one => {"_filter":{}} => _filter object must be non empty
1140. => POST => http://{{server}}/api/test/insert_or_update_one => {"_filter":{"name":"dip"} ,"_payload":{}} => Please send some non empty payload
1141. => POST => http://{{server}}/api/test/insert_or_update_one => {"_filter":{"name":"dip1"},"_payload":{"roll":2}} => inserted one entry
1142. => POST => http://{{server}}/api/test/insert_or_update_one => {"_filter":{"name":"dip1"},"_payload":{"roll":3}} => updated one entry
1143. => POST => http://{{server}}/api/test/insert_or_update_one => {"_filter":{"name":"dip1"},"_payload":{"roll":4}} => updated one entry
1144. => POST => http://{{server}}/api/test/create => {"name":"dip1", "roll":5} => success
1145. => POST => http://{{server}}/api/test/insert_or_update_one => {"_filter":{"name":"dip1"},"_payload":{"roll":4}} => We found multiple entry
1146. => !GET => http://{{server}}/api/test/delete?_confirmstr=test => success
1147.
1148.
1149. ################ LIST APIs #############################
1150. # append to list
1151. # remove from list
1152. # clean from list
1153. ######################################################
1154. => POST => http://{{server}}/api/test/delete?_confirmstr=test => {} => success
1155. => POST => http://{{server}}/api/test/insert => {"name":"dip"} => "_id":"(?.*?)"
1156. => GET => http://{{server}}/api/test/list/append?_id={{id1}}&_field=tag&_value=a => "tag":\["a"\]
1157. => GET => http://{{server}}/api/test/list/append?_id={{id1}}&_field=tag&_value=a,b,c => "tag":\["a","b","c"\]
1158. => GET => http://{{server}}/api/test/list/remove?_id={{id1}}&_field=tag&_value=a => "tag":\["b","c"\]
1159. => GET => http://{{server}}/api/test/list/remove?_id={{id1}}&_field=tag&_value=a,b => "tag":\["c"\]
1160. => GET => http://{{server}}/api/test/list/clear?_id={{id1}}&_field=tag&_value=a,b => "tag":\[\]
1161. => POST => http://{{server}}/api/test/delete?_confirmstr=test => {} => success
1162.
1163. ############# Raiseing tickets for the app #############
1164. # This api will raise github tickts
1165. #
1166. ###########################################################
1167. => GET => http://{{server}}/api/utils/ticket?app=test => error
1168. # TODO: FIX IT github expaired the token
1169. #=> GET => http://{{server}}/api/utils/ticket?app=test&title=Raise by e2e test&desc=ignore this bug&label=bug => Successfully created a tickets
1170. #=> POST => http://{{server}}/api/utils/ticket=> {"app":"test", "title":"Raise by e2e test", "desc":"ignore this bug", "label":"bug,test"} => Successfully created a tickets
1171.
1172. ######## Create or Get #######
1173. # If filter returns some result - just get it back or create with _payload + _filter data
1174. ###############################
1175. => POST => http://{{server}}/api/test/delete?_confirmstr=test => {} => success
1176. => POST => http://{{server}}/api/test/create_or_get => {"_filter":{"name":"dip"}, "_payload":{"roll":100}} => inserted the entry
1177. => POST => http://{{server}}/api/test/create_or_get => {"_filter":{"name":"dip"}, "_payload":{"roll":100}} => found entry
1178. => POST => http://{{server}}/api/test/create_or_get => {"_filter":{"name":"dip"}, "_payload":{"roll":100}} => found entry
1179.
1180. ############ Simple Login/AUth #################################################
1181. ## SImpel password based login.
1182. ## Support only login from obe devices.
1183. ## Hash password got stored
1184. ## Once you log successfully , it will return auth_token_
1185. #################################################################################
1186.
1187. # first clean the DB -> Below API will not work, use the UI tool to delete like https://www.mongodb.com/try/download/compass
1188. => POST => http://localhost/api/internal_auth_user_data/delete?_confirmstr=simple_auth => {} => Looks like you are trying to access the internal db
1189. => GET => http://localhost/api/internal_auth_user_data/delete?_root_user=1&_confirmstr=_auth_token => Looks like you are trying to access the internal db # You can't do that any more
1190.
1191. # Dfine three users: test and test1 and dutta.dipankar08+2@gmail.com as username
1192. #=> GET => http://localhost/api/simple_auth/register?username=test&password_=test123&email=dutta.dipankar08@gmail.com => registration success
1193. #=> GET => http://localhost/api/simple_auth/register?username=test1&password_=test123&email=dutta.dipankar08+1@gmail.com => registration success
1194. #=> GET => http://localhost/api/simple_auth/register?password_=test123&email=dutta.dipankar08+2@gmail.com => registration success # Email and password only no username
1195.
1196. # Duplicate res
1197. => GET => http://{{server}}/api/simple_auth/register?username=test&password_=test&email=dutta.dipankar08@gmail.com => already taken
1198. => GET => http://{{server}}/api/simple_auth/register?username=test4&password_=test&email=dutta.dipankar08@gmail.com => already taken
1199.
1200.
1201. # Login ( by user name)
1202. => GET => http://{{server}}/api/simple_auth/login?username=test&password_=test11 => Invalid username or password
1203. => GET => http://{{server}}/api/simple_auth/login?username=test11&password_=test => Invalid username or password
1204.
1205. # Login With Email and password or Email + Auth_token
1206. => GET => http://{{server}}/api/simple_auth/login_by_email?username=test&password_=test11 => Input validation failed: Missing email
1207. => GET => http://{{server}}/api/simple_auth/login_by_email?email=test11@test.com&password_=test => Invalid email or password
1208. => GET => http://localhost/api/simple_auth/login_by_email?_no_encode=1&email=dutta.dipankar08@gmail.com&password_=test123 => "auth_token_":"(?.*?)" #should be able to return the token
1209. => GET => http://{{server}}/api/simple_auth/login_by_email?_no_encode=1&email=dutta.dipankar08@gmail.com&auth_token_={{login_token1}} => You must pass any one of password_ # Note you can only login by token if you pass the username
1210.
1211. # login with username and password or authtoken and get login_token1 back
1212. => GET => http://localhost/api/simple_auth/login?_no_encode=1&username=test&password_=test123 => "auth_token_":"(?.*?)"
1213. => GET => http://{{server}}/api/simple_auth/login?_no_encode=1&username=test&auth_token_={{login_token1}} => dutta.dipankar08@gmail.com
1214. => GET => http://{{server}}/api/simple_auth/validate_login_session?_no_encode=1&auth_token_={{login_token1}} => success
1215.
1216. # getifo
1217. => GET => http://{{server}}/api/simple_auth/get_info?_no_encode=1&auth_token_={{login_token1}} => user data returned
1218.
1219. #update_info
1220. => GET => http://{{server}}/api/simple_auth/update_info?_no_encode=1&auth_token_={{login_token1}}&phone=7547564902 => user data returned
1221. => GET => http://{{server}}/api/simple_auth/get_info?_no_encode=1&auth_token_={{login_token1}} => 7547564902
1222.
1223. # login agaun get token2
1224. => GET => http://{{server}}/api/simple_auth/login?_no_encode=1&username=test&password_=test123 => "auth_token_":"(?.*?)"
1225. => GET => http://{{server}}/api/simple_auth/login?_no_encode=1&username=test&auth_token_={{login_token2}} => dutta.dipankar08@gmail.com
1226.
1227. # try login with invalid tokens.
1228. => GET => http://{{server}}/api/simple_auth/login?username=test&auth_token_=wrong => Invalid username or auth_token_
1229. => GET => http://{{server}}/api/simple_auth/login?_no_encode=1&username=test2&auth_token_={{login_token2}} => Invalid username or auth_token_
1230.
1231. # logout with one token but other token should works.
1232. => GET => http://{{server}}/api/simple_auth/logout?username=test&auth_token_={{login_token1}} => success
1233. => GET => http://{{server}}/api/simple_auth/logout?username=test&auth_token_={{login_token1}} => Logout done for
1234. => GET => http://{{server}}/api/simple_auth/logout?username=test&auth_token_={{login_token1}} => not able to logout as username or auth_token is wrong
1235. => GET => http://{{server}}/api/simple_auth/login?_no_encode=1&username=test&auth_token_={{login_token2}} => dutta.dipankar08@gmail.com
1236.
1237. # logout all session and no token should not work
1238. => GET => http://{{server}}/api/simple_auth/logout?username=test => Missing auth_token_
1239. => GET => http://{{server}}/api/simple_auth/logout_all?username=test => Missing auth_token_
1240. => GET => http://{{server}}/api/simple_auth/logout_all?username=test1&force=1 => Logout done for . session forcefully
1241. => GET => http://{{server}}/api/simple_auth/logout_all?username=test&force=1 => Logout done
1242. => GET => http://{{server}}/api/simple_auth/login?username=test&auth_token_={{login_token2}} => Invalid username or auth_token_
1243.
1244.
1245. #### The bwlo example shows how we can make a DB is accexx protected and to access it it must be logged in ###
1246. => GET => http://{{server}}/api/test_simple_auth => Please send auth_token_
1247. => GET => http://{{server}}/api/test_simple_auth?auth_token_=test => Wrong auth_token_ passed
1248. => GET => http://{{server}}/api/simple_auth/login?_no_encode=1&username=test&password_=test123 => "auth_token_":"(?.*?)"
1249. => GET => http://{{server}}/api/simple_auth/login?_no_encode=1&username=test1&password_=test123 => "auth_token_":"(?.*?)"
1250. => GET => http://{{server}}/api/test_simple_auth?auth_token_={{login_token}} => Find successfully with 0 items
1251. => GET => http://{{server}}/api/test_simple_auth/create?_no_encode=1&auth_token_={{login_token}}&name=Dip => "_username":"test"
1252. => GET => http://{{server}}/api/test_simple_auth?auth_token_={{login_token}} => Find successfully with 1 items
1253. => GET => http://{{server}}/api/test_simple_auth/create?_no_encode=1&auth_token_={{login_token1}}&name=Dip => "_username":"test1"
1254. => GET => http://{{server}}/api/test_simple_auth/create?_no_encode=1&auth_token_={{login_token1}}&name=Dip => "_username":"test1"
1255. => GET => http://{{server}}/api/test_simple_auth?auth_token_={{login_token1}} => Find successfully with 2 items ##
1256. => GET => http://{{server}}/api/test_simple_auth?auth_token_=skip => Find successfully with 3 items ####
1257. => GET => http://{{server}}/api/test_simple_auth/delete?auth_token_={{login_token}}&_confirmstr=test_simple_auth => Deleted count is : 1
1258. => GET => http://{{server}}/api/test_simple_auth/delete?auth_token_=skip&_confirmstr=test_simple_auth => Deleted count is : 2
1259.
1260. ## Forget and reset password to test5
1261. => GET => http://{{server}}/api/simple_auth/forgot_password => Missing username
1262. => GET => http://{{server}}/api/simple_auth/forgot_password?username=wrong => Invalid username
1263. => GET => http://{{server}}/api/simple_auth/forgot_password?_no_encode=1&username=test => "short_lived_token":"(?.*?)"
1264. => GET => http://{{server}}/api/simple_auth/reset_password?username=test => Missing short_lived_token
1265. => GET => http://{{server}}/api/simple_auth/reset_password?username=test&short_lived_token=wrong => Missing password_
1266. => GET => http://{{server}}/api/simple_auth/reset_password?username=wrong&short_lived_token={{short_lived_token}} => Missing password_
1267. => GET => http://{{server}}/api/simple_auth/reset_password?username=wrong&short_lived_token=wrong&password_=hello => Invalid username or token got expired
1268. => GET => http://{{server}}/api/simple_auth/reset_password?username=test_unknown&short_lived_token={{short_lived_token}}&password_=test5 => Invalid username or token got expired
1269. => GET => http://{{server}}/api/simple_auth/reset_password?username=test&short_lived_token={{short_lived_token}}&password_=test5 => Password changed successfully
1270. => GET => http://{{server}}/api/simple_auth/reset_password?username=test&short_lived_token={{short_lived_token}}&password_=test5 => Invalid username or token got expired
1271.
1272. # reset password back to test123
1273. => GET => http://{{server}}/api/simple_auth/forgot_password?_no_encode=1&username=test => "short_lived_token":"(?.*?)"
1274. => GET => http://{{server}}/api/simple_auth/reset_password?username=test&short_lived_token={{short_lived_token}}&password_=test123 => Password changed successfully
1275.
1276. # You can pass auth_token_ as a header or cookies
1277. # curl -H "auth_token_:skip" -X GET "http://localhost/api/test_simple_auth"
1278. # curl http://localhost/api/test_simple_auth--cookie "auth_token_=skip"
1279.
1280.
1281. # add_subscription_by_stipe
1282. => GET => http://{{server}}/api/simple_auth/login?_no_encode=1&username=test&password_=test123 => "auth_token_":"(?.*?)"
1283. => GET => http://localhost/api/simple_auth/add_subscription?_no_encode=1&payment_method_id=pm_1MQHD9CtA5cdHPVpgX6YpXRY&subscription_key=test&auth_token_={{login_token1}}&subscription_provider=dummy => subscription success
1284. => GET => http://localhost/api/simple_auth/add_subscription?_no_encode=1&payment_method_id=pm_1MQHD9CtA5cdHPVpgX6YpXRY&subscription_key=test&auth_token_={{login_token1}}&subscription_provider=dummy => subscription success
1285.
1286. # duplicate subscription
1287. => GET => http://localhost/api/simple_auth/add_subscription?_no_encode=1&payment_method_id=pm_1MQHD9CtA5cdHPVpgX6YpXRY&subscription_key=test&auth_token_={{login_token1}}&subscription_provider=dummy => subscription success
1288.
1289. # clear subscription
1290. => GET => http://localhost/api/simple_auth/clear_subscription?_no_encode=1&subscription_key=test&auth_token_={{login_token1}}&subscription_provider=dummy => subscription clear
1291.
1292.
1293. => GET => http://localhost/api/simple_auth/clear_subscription?_no_encode=1&subscription_key=test&auth_token_={{login_token1}}&subscription_provider=dummy => not able to find the subscription
1294.
1295.
1296. # For testng this you need to generate the payment_method_id first with public dat
1297. #=> GET => http://localhost/api/simple_auth/add_subscription?_no_encode=1&payment_method_id=pm_1MQHY0CtA5cdHPVpZpglF5a7&subscription_key=test&auth_token_={{login_token1}}&&subscription_provider=stripe => recept_url":"https://pay.stripe.com/receipts/payment
1298.
1299. # Google Login
1300. => POST => http://localhost/api/simple_auth/google_login => {"iss": "https://accounts.google.com","email": "test3@gmail.com", "name": "DIPANKAR DUTTA","picture": "https://lh3.googleusercontent.com/a/AEdFTp68hUhkoSvDnP6rAuuDqZwMVU4A5ULh6OoMogKdog=s96-c"} => Login success
1301.
1302.
1303. # Managing permission for other users
1304. # To perfrom this acton, you must have a superuser permission
1305. => GET => http://{{server}}/api/simple_auth/login?_no_encode=1&username=test&password_=test123 => "auth_token_":"(?.*?)"
1306. => GET => http://localhost/api/simple_auth/login?_no_encode=1&username=superuser@grodok.com&password_=superuser@123 => "auth_token_":"(?.*?)"
1307. => GET => http://localhost/api/simple_auth/get_info?_no_encode=1&auth_token_={{su_login_token}} => Grodok SuperUser
1308. => GET =>http://localhost/api/simple_auth/add_permission?permission=test&username=test&auth_token_={{su_login_token}} => permission is added
1309. => GET => http://localhost/api/simple_auth/get_info?_no_encode=1&auth_token_={{t_login_token}} => "permission_group":\["test"\]
1310. => GET =>http://localhost/api/simple_auth/remove_permission?permission=test&username=test&auth_token_={{su_login_token}} => permission is removed
1311. => GET => http://localhost/api/simple_auth/get_info?_no_encode=1&auth_token_={{t_login_token}} => "permission_group":\[\]
1312. => GET => http://localhost/api/simple_auth/add_permission?permission=test&username=test&auth_token_={{t_login_token}} => Not logged in as a super user
1313. => GET =>http://localhost/api/simple_auth/remove_permission?permission=test&username=test&auth_token_={{t_login_token}} => Not logged in as a super user
1314.
1315. # LOGIN WITH MAGIC LINK SUPPORT : generate and test Magic Link
1316. => GET => http://localhost/api/simple_auth/generate_magic_link => Missing email
1317. => GET => http://localhost/api/simple_auth/generate_magic_link?email=dutta.dipankar08@gmail.com => Missing url
1318. => GET => http://localhost/api/simple_auth/generate_magic_link?_no_encode=1&email=dutta.dipankar08@gmail.com&url=https://admin.grodok.com/account&app_name=admin => "magic_link_token":"(?.*?)"
1319. => GET => http://localhost/api/simple_auth/login_with_magic_link?_no_encode=1&magic_link_token={{magic_link_token1}} => success
1320. => GET => http://localhost/api/simple_auth/login_with_magic_link?_no_encode=1&magic_link_token={{magic_link_token1}} => Token not exist or expaired
1321. => GET => http://localhost/api/simple_auth/login_with_magic_link?magic_link_token=hello => Invalid token
1322.
1323.
1324.
1325. #########################################################################################
1326. ## ##
1327. ## IPTV APIS (DISABLED AS NOT USED) ##
1328. ## ##
1329. #########################################################################################
1330. #=> POST => http://{{server}}/api/ip_tv/delete?_confirmstr=ip_tv => {} => success
1331. #=> POST => http://{{server}}/api/ip_tv/add_seed => {"seed_url":"https://raw.githubusercontent.com/143maha/Sonuiptvnew/main/Indian15sep.m3u8", "name":"143maha"} => We have parsed seed
1332. #=> GET => http://{{server}}/api/ip_tv?_limit=1 => "_id":"(?.*?)"
1333. #=> GET => http://{{server}}/api/ip_tv/?id={{id1}} => "rank":
1334. #=> GET => http://{{server}}/api/ip_tv/rankup?id={{id1}}&_field=rank => Up voted
1335. #=> GET => http://{{server}}/api/ip_tv/?id={{id1}} => "rank":
1336. #=> GET => http://{{server}}/api/ip_tv/rankdown?id={{id1}}&_field=rank => Down voted
1337. #=> GET => http://{{server}}/api/ip_tv/?id={{id1}} => "rank":
1338. #=> GET => http://{{server}}/api/ip_tv/count => success
1339. # => GET => http://{{server}}/api/ip_tv/cleanup => clean up done by removing
1340. # => GET => http://localhost/api/ip_tv/cleanup?is_delete=false => success
1341. #=> GET => http://localhost/api/ip_tv/explore_seed?seed_url=https://raw.githubusercontent.com/mahmud31132/bdix-tv/main/BD%20working.m3u8 => success
1342.
1343. #########################################################################################
1344. ## ##
1345. ## TRADE APIS ##
1346. ## ##
1347. #########################################################################################
1348. # We have tested the api but disabling it=> POST => http://{{server}}/api/utils/trade/expert_call_result => {"symbol":"TCS.NS","target":"3600","stoploss":"3370","start_date":"2023-02-24T10:10:17.617Z","end_date":"2023-02-26T10:10:17.617Z"} => RESULT
1349. => GET => http://{{server}}/api/utils/trade/ltp => symbol list is empty
1350. => GET => http://{{server}}/api/utils/trade/ltp?symbols=TCS.NS,WIPRO.NS => success # This API is noy working anymore
1351.
1352. # Historical data
1353. => GET => http://localhost/api/utils/trade/history?symbol=MSFT => missing interval. possible value: 1d,5m,15m,1h
1354. => GET => http://localhost/api/utils/trade/history?symbol=MSFT&interval=1mo => missing range. possible value:
1355. => GET => http://localhost/api/utils/trade/history?symbol=MSFT&interval=1mo => missing range. possible value:
1356. => GET => http://localhost/api/utils/trade/history?symbol=MSFT&interval=1mo&range=max => success
1357. => GET => http://localhost/api/utils/trade/history?symbol=MSFT&interval=1mo&range=10y => success
1358.
1359. # Expart resilt
1360. => POST => http://{{server}}/api/utils/trade/expert_result_intraday => {"date":"2023-03-16T10:10:17.617Z", "symbol":"TCS.NS","buy_at":"3630","stoploss":"3590", "target":"3645","target2":"3665"} => success
1361. => POST => http://{{server}}/api/utils/trade/expert_result_intraday => {"date":"2023-03-16T10:10:17.617Z", "symbol":"TCS.NS","buy_at":"3630","stoploss":"3590", "target":"3645","target2":"3670"} => success
1362. => POST => http://{{server}}/api/utils/trade/expert_result_intraday => {"date":"2023-03-16T10:10:17.617Z", "symbol":"TCS.NS","buy_at":"3630","stoploss":"3620", "target":"3645","target2":"3695"} => success
1363. => POST => http://{{server}}/api/utils/trade/expert_result_intraday => {"date":"2023-03-16T10:10:17.617Z", "symbol":"TCS.NS","buy_at":"3630","stoploss":"3590", "target":"4000","target2":"4000"} => success
1364. => POST => http://{{server}}/api/utils/trade/expert_result_intraday => {"date":"2023-03-16T10:10:17.617Z", "symbol":"TCS.NS","buy_at":"3700","stoploss":"3590", "target":"3645","target2":"3695"} => success
1365. => POST => http://{{server}}/api/utils/trade/expert_result_intraday => {"date":"2023-03-16T10:10:17.617Z", "symbol":"TCS.NS","buy_at":"3598","stoploss":"3590", "target":"3645","target2":"3695"} => success
1366.
1367.
1368.
1369.
1370. #########################################################################################
1371. ## ##
1372. ## Youtube uploader ##
1373. ## ##
1374. ## FOR AUTH ISSUE: generate toekn: node bin/core/google/youtube.js ##
1375. #########################################################################################
1376.
1377. => GET => http://localhost/api/utils/yupload/m3u8upload => error
1378.
1379. => GET => http://localhost/api/utils/yupload/m3u8upload?uri=https://stream.live.vc.bbcmedia.co.uk/bbc_hindi_radio&duration=300 =>Please send a key
1380.
1381.
1382. #########################################################################################
1383. ## ##
1384. ## Error ##
1385. ## ##
1386. ## FOR AUTH ISSUE: generate toekn: node bin/core/google/youtube.js ##
1387. #########################################################################################
1388. => POST => http://{{server}}/api/error/delete?_confirmstr=error => {} => success
1389. => GET => http://localhost/api/error/test => Test Error
1390. => GET => http://localhost/api/error => Test Error
1391.
1392. #########################################################################################
1393. ## ##
1394. ## INFO ##
1395. ## ##
1396. ## GET API INFO ##
1397. #########################################################################################
1398. => GET => http://localhost/api/local_test/info => "isRemoteDB":false
1399. => GET => http://localhost/api/remote_test/info => "isRemoteDB":true
1400. # curl http://localhost/api/test/info --cookie "Cho=Kim;Greet=Hello"
1401. => GET => http://localhost/api/test/info => "isRemoteDB":false
1402. => GET => http://localhost/api/test_secure/info => "secure":false
1403. => GET => http://localhost/api/test_secure/ => success
1404. => GET => http://localhost/api/test_secure_/info => "secure":true # Note that You must have secure_ to pass the match
1405. => GET => http://localhost/api/test_secure_/ => Please send auth_token_
1406. => GET => http://localhost/api/test/info => "secure":false
1407.
1408.
1409. #########################################################################################
1410. ## ##
1411. ## STRIPE ##
1412. ## ##
1413. ## STRIPE validation api's helps to validate any purchase via simplestore ##
1414. #########################################################################################
1415. # ( need real setup )=> GET => http://localhost/api/stripe/check_subscription?customer_id=cus_Melrh5VwxSJB2v => "email":"dutta.dipankar08@gmail.com"
1416. => GET => http://localhost/api/stripe/check_payment?payment_id=unknwon => No such payment_intent
1417. # ( not real setup)=> GET => http://localhost/api/stripe/check_payment?payment_id=pi_3LvRVnCtA5cdHPVp0DrsawEx => "amount_captured":500
1418.
1419. #########################################################################################
1420. ## ##
1421. ## TEST Encript and dryption API output ##
1422. ## ##
1423. ## STRIPE validation api's helps to validate any purchase via simplestore ##
1424. #########################################################################################
1425. => GET => http://localhost/api/test_crypto/delete?_confirmstr=test_crypto => success
1426. => GET => http://localhost/api/test_crypto/insert?name=dip => insert successfully
1427. => GET => http://localhost/api/test_crypto => Find successfully
1428. => GET => http://localhost/api/test_crypto/count => success
1429. => GET => http://localhost/api/test_crypto/delete?_confirmstr=test_crypto => success
1430.
1431.
1432. ## Root users
1433. => GET => http://localhost/api/_auth_token/ => access db with db name with _
1434. => GET => http://localhost/api/_auth_token?_root_user=1 => success
1435.
1436. #########################################################################################
1437. ## test unset or delete fields
1438. ## This API allow you to delete a list of fileds ( just unset in the docs)
1439. ## How to unsert a field?
1440. ## How to unset multiple fields?
1441. ## how to unset fileds with nested documnets ? use dot notation.
1442. ## How to unset fields for all entrys by seraching? query + _field combination
1443. #########################################################################################
1444. => GET => http://localhost/api/test/delete?_confirmstr=test =>success
1445. => GET => http://localhost/api/test/insert?name=dip&roll=20&email=hello@hello.com => "_id":"(?.*?)"
1446. => GET => http://localhost/api/test/get?_id={{id1}} => "roll":"20"
1447. => GET => http://localhost/api/test/delete_fields?_id={{id1}}&_field=roll => We have un-set the filed for 1 entries
1448. => GET => http://localhost/api/test/get?_id={{id1}} => "name":"dip","email":"hello@hello.com",
1449.
1450. # unsetting nested object
1451. => POST => http://localhost/api/test/insert => {"name":{"first":"dip", "last":"dutta"}} => "_id":"(?.*?)"
1452. => GET => http://localhost/api/test/delete_fields?_id={{id1}}&_field=name.last => un-set the filed for 1 entries
1453. => GET => http://localhost/api/test/get?_id={{id1}} => "name":\{"first":"dip"\}
1454.
1455.
1456.
1457. #########################################################################################
1458. # File utilitiesv
1459. # This api define upload, download, delete and list files in the SimpleStore application
1460. # This is for the prototype purpose. Please don't use for scale
1461. # All test is passing - disabled for new file is missing
1462. #########################################################################################
1463. # curl -d @a.txt http://localhost/api/utils/files/upload use this for upload
1464. #=> GET => http://localhost/api/utils/files/download?filename=a.txt => Dipankar
1465. #=> GET => http://localhost/api/utils/files/list => a.txt
1466. #=> GET => http://localhost/api/utils/files/delete?filename=a.txt => success
1467. #=> GET => http://localhost/api/utils/files/delete?filename=a.txt => error
1468.
1469.
1470. #########################################################################################
1471. # remote_smb_manifest ()
1472. # This API will build the necessaryly function to support SMB.
1473. # Like Enable payment gateway
1474. #########################################################################################
1475. # [PASS ALL] (1) Test razorpay_create_order APIs
1476. ###>>>> Diabling all test as Key expaired
1477. #=> GET => http://localhost/api/remote_smb_manifest/delete?_confirmstr=remote_smb_manifest => success
1478. #=> POST => http://localhost/api/remote_smb_manifest/insert => {"public_keys":{"razor_key":"1"},"secret_keys_":{"razor_secret":"1"}} => "_id":"(?.*?)"
1479. #=> POST => http://localhost/api/remote_smb_manifest/razorpay_create_order => {"_no_encode":1, "amount":500, "currency":"INR", "smb_id":"{{id1}}"} => The api key provided is invalid
1480. #=> POST => http://localhost/api/remote_smb_manifest/razorpay_create_order => {"_no_encode":1, "amount":500, "currency":"INR", "smb_id":"wrong"} => Argument passed in must be a single String of 12 bytes
1481. #=> POST => http://localhost/api/remote_smb_manifest/razorpay_create_order => {"_no_encode":1, "currency":"INR", "smb_id":"wrong"} => Missing amount
1482. #=> POST => http://localhost/api/remote_smb_manifest/insert => {"public_keys":{"razor_key":"rzp_test_I2VzFwGWMekWJe"},"secret_keys_":{"razor_secret":"4Hk97bepWLg7PS0Lli1rCXmx"}} => "_id":"(?.*?)"
1483. #=> POST => http://localhost/api/remote_smb_manifest/razorpay_create_order => {"_no_encode":1, "amount":500, "currency":"INR", "smb_id":"{{id1}}"} => "order_id":"order_
1484.
1485.
1486. ####################
1487. ## Market APIs: As we wants to get the live market data, we can use goofle api to do that
1488. ##
1489. ####################
1490.
1491. # => GET => http://localhost/api/utils/market/google_ltp?symbol=VUSA.L => Vanguard S
1492.
1493. ####
1494. # Supporting revison
1495. # >>>> Update_one is not working any more <<<<<
1496. ####
1497. => GET => http://localhost/api/test/delete?_confirmstr=test => success
1498. => GET => http://localhost/api/test/insert?name=dip => "_id":"(?.*?)"
1499. # => POST => http://localhost/api/test/update_one => {"_id":"{{id1}}","_revision":true} => You must pass some data in the request
1500. # => POST => http://localhost/api/test/update_one => {"_id":"{{id1}}","name":"dip1","_revision":true} => "dip1"
1501. # => POST => http://localhost/api/test/update_one => {"_id":"{{id1}}","name":"dip2","_revision":true} => "dip2"
1502. => GET => http://localhost/api/test/revision?_id={{id1}} => All History\(revision\) returned
1503.
1504. ###
1505. # You need to mark remote_db to store in remote database
1506. ##
1507. => GET => http://localhost/api/remote_db_secure_merit/info => "isRemoteDB":true
1508. => GET => http://localhost/api/nodel_remote_db_secure_merit/info => "isRemoteDB":true
1509. => GET => http://localhost/api/nodel_secure_merit_remote_db/info => "isRemoteDB":true
1510. => GET => http://localhost/api/nodel_secure_merit_remoooote_db/info => "isRemoteDB":false
1511.
1512.
1513. #############################################
1514. # Test kill swicth - It provides way to set config which is globally store
1515. # this will help to switch code path based on remote coffi
1516. # This can be used for shipping experimeing features
1517. #############################################
1518. => GET => http://localhost/api/kill_switch/delete?_confirmstr=kill_switch => success
1519. => GET => http://localhost/api/kill_switch/set_bool?key=a&value=1 => "a":true
1520. => GET => http://localhost/api/kill_switch/set_bool?key=b&value=0 => "b":false
1521. => GET => http://localhost/api/kill_switch/set_bool?key=c&value=true => "c":true
1522. => GET => http://localhost/api/kill_switch/set_string?key=d&value=hello => "d":"hello"
1523. => GET => http://localhost/api/kill_switch/set_string?key=d&value=hello1 => "d":"hello1"
1524. => GET => http://localhost/api/kill_switch/get_current => "d":"hello1"
1525. => GET => http://localhost/api/kill_switch/reload => 4
1526.
1527.
1528. #############################################
1529. # Template store
1530. # this feature allow to create template in the tempalte store ( store in remote db)
1531. # and the you create_from_template api to create duplicate data from template
1532. #############################################
1533. => GET => http://localhost/api/template_store/delete?_confirmstr=template_store => success
1534. => POST => http://localhost/api/template_store/create => {"name":"dipankar", "roll":100} => template_name must be present as composite key
1535. => POST => http://localhost/api/template_store/create => {"name":"dipankar", "roll":100, "template_name":"test"} => success
1536. => POST => http://localhost/api/template_store/create => {"name":"dipankar", "roll":100, "template_name":"test"} => Duplicate item found: template_name
1537. # here how to create clone from templates
1538. => POST => http://localhost/api/test/create_from_template => {"template_name":"test", "more_info":"extra data"} => "name":"dipankar","roll":100
1539. => POST => http://localhost/api/test/create_from_template => {"template_name":"test1", "more_info":"extra data"} => template not found
1540.
1541.
1542.
1543. ################ SCHEULE 2 API ######################
1544. # Schedule2 allows you to schele HTTP cron job - this is the next version of schedule
1545. # a) insert an entry
1546. # b) activate it uisng /activate.
1547. # c) check the status = /status
1548. #####################################################
1549. => POST => http://localhost/api/schedule2/delete?_confirmstr=schedule2 => {} => success
1550. => POST => http://{{server}}/api/schedule2/insert => {"method":"get", "url":"https://google.com","cron_format":"*/10 * * * * *"} => "_id":"(?.*?)" # Just insert not activated
1551. => POST => http://{{server}}/api/schedule2/insert => {"method":"get", "url":"https://google.com","cron_format":"*/10 * * * * *"} => Duplicate item found
1552. => POST => http://{{server}}/api/schedule2/activate?id={{job_id}} => {} => Job is now scheduled
1553. => POST => http://{{server}}/api/schedule2/activate?id={{job_id}} => {} => is already scheduled
1554. => GET => http://{{server}}/api/schedule2/status => We have . jobs
1555. => GET => http://{{server}}/api/schedule2/reload => We have restarted . jobs
1556. => sleep => 12
1557. => GET => http://{{server}}/api/schedule2/?id={{job_id}} => doctype html # we are cjeking if the job got executed or not!
1558. => POST => http://{{server}}/api/schedule2/deactivate?id={{job_id}} => {} => canceled
1559. => POST => http://{{server}}/api/schedule2/deactivate?id={{job_id}} => {} => is not scheduled
1560. => GET => http://{{server}}/api/schedule2/status => We have 0 jobs
1561.
1562. # test post api call.
1563. => POST => http://{{server}}/api/schedule2/insert => {"method":"post", "url":"http://localhost/api/test/insert","cron_format":"*/10 * * * * *","data":{"name":"dip432"}} => "_id":"(?.*?)"
1564. => GET => http://{{server}}/api/schedule2/activate?id={{job_id2}} => Job is now scheduled
1565. => sleep => 12 # will execute in 12 sec
1566. => GET => http://{{server}}/api/schedule2/?id={{job_id2}} => insert successfully
1567. #=> POST => http://{{server}}/api/schedule2/deactivate?id={{job_id2}} => {} => canceled
1568.
1569. # Stop everything
1570. => POST => http://localhost/api/schedule2/delete?_confirmstr=schedule2 => {} => success
1571. => GET => http://localhost/api/schedule2/reload => We have restarted 0 jobs
1572.
1573. # check reload on boot
1574. => POST => http://{{server}}/api/schedule2/insert => {"method":"get", "url":"https://google.com","cron_format":"*/60 * * * * *"} => "_id":"(?.*?)" # Just insert not activated
1575. => POST => http://{{server}}/api/schedule2/activate?id={{job_id}} => {} => Job is now scheduled
1576. # now restart.
1577. => GET => http://localhost/api/schedule2/status => We have 1 jobs
1578.
1579. #check timezoe support
1580. => POST => http://{{server}}/api/schedule2/insert => {"method":"get", "url":"https://google.com/test1","cron_format":"*/60 * * * * *", "time_zone":"invalid"} => "_id":"(?.*?)" # Just insert not activated
1581. => POST => http://{{server}}/api/schedule2/activate?id={{job_id}} => {} => Not a valid timezone:invalid
1582.
1583. => POST => http://{{server}}/api/schedule2/insert => {"method":"get", "url":"https://google.com/test2","cron_format":"*/60 * * * * *", "time_zone":"Europe/London"} => "_id":"(?.*?)" # Just insert not activated
1584. => POST => http://{{server}}/api/schedule2/activate?id={{job_id}} => {} => Job is now scheduled
1585.
1586.
1587. ################ Test Webhooks######################
1588. # Webhoks allowsto add endpoint when some db data is getting updated
1589. #####################################################
1590. => GET => http://localhost/api/webhook/status_clear => {"CALl_COUNT":0}
1591. => POST => http://localhost/api/webhook/insert => {"db_name":"test_webhook", "hook_url":"https://google.com"} => success
1592. => POST => http://localhost/api/test_webhook/insert => {"name":"Dipankar"} => success
1593. => GET => http://localhost/api/webhook/status => {"CALl_COUNT":1}
1594.
1595.
1596.
1597. ################ SECURE DB and Visibility Rules ######################
1598. # This allows to build secure DB protected by access_token.
1599. # 1. Secure DB contains the letter secure in it's name.
1600. # 2. When you define a db as secure you must pass a valid auth_token_ to create, insert. update.
1601. # 3. They are only visiuble to you and no others
1602. # 4. You can add other username as __visibility list to ensure they can be edited. But you still own that. add "public" to indicate they are public
1603. # 5. You can also create those db annonomously using spacial access token called "anonymous" - They are budefult make public visibility.
1604. # 6. Acess token "debug" can work for debug evn and skip all the secure rules
1605. #####################################################
1606.
1607. # Step1: Adding or remiving visibiity
1608. => GET => http://localhost/api/secure_test/insert?auth_token_=debug&name=hello => "_id":"(?.*?)"
1609. => GET => http://localhost/api/secure_test/visibility/add?_id1={{id1}}&auth_token_=debug => You must pass a _id or id
1610. => GET => http://localhost/api/test/visibility/add?_id={{id1}} => You can only make this action on secure db
1611. => GET => http://localhost/api/secure_test/visibility/add?_id={{id1}} => Missing auth_token_
1612. => GET => http://localhost/api/secure_test/visibility/add?_id={{id1}}&auth_token_=debug1 => Invalid token
1613. => GET => http://localhost/api/secure_test/visibility/add?_id={{id1}}&auth_token_=debug&username=user1 => Successfully added
1614. => GET => http://localhost/api/secure_test/?auth_token_=debug&_id={{id1}} => "_visibility":\["user1"\]
1615. => GET => http://localhost/api/secure_test/visibility/add?_id={{id1}}&auth_token_=debug&username=user1 => Not updated
1616. => GET => http://localhost/api/secure_test/visibility/add?_id={{id1}}&auth_token_=debug&username=user2 => Successfully added
1617.
1618. => GET => http://localhost/api/secure_test/visibility/remove?_id={{id1}}&auth_token_=debug&username=user1 => Successfully removed
1619. => GET => http://localhost/api/secure_test/visibility/remove?_id={{id1}}&auth_token_=debug&username=user1 => Not updated
1620. => GET => http://localhost/api/secure_test/visibility/remove?_id={{id1}}&auth_token_=debug&username=user2 => Successfully removed
1621. => GET => http://localhost/api/secure_test/?auth_token_=debug&_id={{id1}} => "_visibility":\[\]
1622. => GET => http://localhost/api/secure_test/visibility/add?_id={{id1}}&auth_token_=debug&username=user1 => Successfully added
1623. => GET => http://localhost/api/secure_test/visibility/clear?_id={{id1}}&auth_token_=debug => Successfully
1624. => GET => http://localhost/api/secure_test/?auth_token_=debug&_id={{id1}} => "_visibility":\[\]
1625.
1626.
1627.
1628. # Step 2: test secure access via visibility
1629. # In this case I will login as user1 and then create entry and add visibility for user2 and then try to access from user 2
1630.
1631. # first clean the DB
1632. => POST => http://localhost/api/simple_auth/delete?_confirmstr=simple_auth => {} => success
1633. => GET => http://localhost/api/_auth_token/delete?_root_user=1&_confirmstr=_auth_token => success # This will clean the token DB -> Note that it must be a root_user
1634.
1635. # Register user
1636. #=> GET => http://localhost/api/simple_auth/register?username=user1&password_=test123&email=dutta.dipankar08@gmail.com => registration success
1637. #=> GET => http://localhost/api/simple_auth/register?username=user2&password_=test123&email=dutta.dipankar08+0@gmail.com => registration success
1638.
1639. # login user
1640. => GET => http://{{server}}/api/simple_auth/login?_no_encode=1&username=user1&password_=test123 => "auth_token_":"(?.*?)"
1641. => GET => http://{{server}}/api/simple_auth/login?_no_encode=1&username=user2&password_=test123 => "auth_token_":"(?.*?)"
1642. # Create an ietm by user1 and add visibility to user 2
1643. => GET => http://localhost/api/secure_test/insert?auth_token_={{login_token1}}&name=share with user2 => "_id":"(?.*?)"
1644. => GET => http://localhost/api/secure_test/get?auth_token_={{login_token2}}&_id={{id1}} => Find successfully with 0 items
1645. => GET => http://localhost/api/secure_test/visibility/add?_id={{id1}}&auth_token_={{login_token1}}&username=user2 => Successfully added
1646. # Access by user 2
1647. => GET => http://localhost/api/secure_test/get?auth_token_={{login_token2}}&_id={{id1}} => share with user2
1648. #Revoke access
1649. => GET => http://localhost/api/secure_test/visibility/remove?_id={{id1}}&auth_token_={{login_token1}}&username=user2 => Successfully removed
1650. => GET => http://localhost/api/secure_test/get?auth_token_={{login_token2}}&_id={{id1}} => Find successfully with 0 items
1651.
1652. # Update Visibility in a go using /replace
1653. => GET => http://localhost/api/secure_test/visibility/replace?_id={{id1}}&auth_token_={{login_token1}}&username=user1,user2,user3 => Successfully replaced with 3
1654. => GET => http://localhost/api/secure_test/visibility/replace?_id={{id1}}&auth_token_={{login_token1}}&username=user1,user2,user3 ,user4 => Successfully replaced with 4
1655. => GET => http://localhost/api/secure_test/visibility/replace?_id={{id1}}&auth_token_={{login_token1}}&username=user1 => Successfully replaced with 1
1656. => POST => http://localhost/api/secure_test/visibility/replace => {"_id":"{{id1}}","auth_token_":"{{login_token1}}","username":["user1"]} => Successfully replaced with 1
1657. # In the below case, you need use clear API to replace
1658. => POST => http://localhost/api/secure_test/visibility/replace => {"_id":"{{id1}}","auth_token_":"{{login_token1}}","username":[]} => you must pass username
1659.
1660.
1661. # Testing anonymous entries.
1662. => GET => http://localhost/api/secure_test/insert?auth_token_=anonymous&name=test_anonymous => "_id":"(?.*?)"
1663. => GET => http://localhost/api/secure_test?id={{id3}} => Please send auth_token_
1664. => GET => http://localhost/api/secure_test?id={{id3}}&auth_token_=anonymous => "_visibility":\["public"\]
1665. => GET => http://localhost/api/secure_test?id={{id3}}&auth_token_=test => Wrong auth_token_ passed # So you must pass valid access token or anonymous
1666. => GET => http://localhost/api/secure_test?id={{id3}}&auth_token_={{login_token1}} => "_visibility":\["public"\]
1667.
1668.
1669. ################ PDF GEN API ######################
1670. # This allow to a secure entry to other user
1671. #####################################################
1672. => GET => http://localhost/api/utils/pdf/letter?from=Dipankar\nDutta&to=dip&subject=hello&content=hello\nworld => company_name missing
1673. => GET => http://localhost/api/utils/pdf/letter?from=Dipankar\nDutta&to=dip&subject=hello&content=hello\nworld&company_name=hello&company_address=hello => /PDF /Text
1674.
1675.
1676. ################ HEARTBEAT API ######################
1677. # This allow to a secure entry to other user
1678. #####################################################
1679. => GET => http://localhost/api/utils/heartbeat/ping => please pass name
1680. => GET => http://localhost/api/utils/heartbeat/ping?name=test =>pong
1681. => GET => http://localhost/api/utils/heartbeat/status?name=test => status: active
1682. => GET => http://localhost/api/utils/heartbeat/ping?name=test&status=error =>pong
1683. => GET => http://localhost/api/utils/heartbeat/status?name=test => status: error
1684. => GET => http://localhost/api/utils/heartbeat/ping?name=test&status=error&last_error=error_stack =>pong
1685. => GET => http://localhost/api/utils/heartbeat/status?name=test => error_stack
1686. => GET => http://localhost/api/utils/heartbeat/status?name=test1 => status: not found
1687.
1688. # Test auto expaire ( must be pinnged in every 60 sec - we delete the entry in 120 sec)
1689. # This give two chnages to ensure your pingged in reached to the server
1690. => GET => http://localhost/api/utils/heartbeat/status?name=test => error_stack
1691. # => sleep => 120 <<< DIabled as perf reason
1692. # => GET => http://localhost/api/utils/heartbeat/status?name=test => status: inactive
1693.
1694. ################ TUNNEL REQUEST ######################
1695. # This mecahnisn allows to execute a JSON request to 3p wesbite and allow to pass a custum function to process the output.
1696. #####################################################
1697. => GET => http://localhost/api/tunnel_request/delete?_confirmstr=tunnel_request =>success
1698. => POST => http://localhost/api/tunnel_request/add_tunnel => {"name":"test", "type":"get", "url":"https://market.tipranks.com/api/details/GetRealTimeQuotes", "process_fn" : "none"} => success
1699. => POST => http://localhost/api/tunnel_request/add_tunnel => {"name":"test", "type":"get", "url":"https://market.tipranks.com/api/details/GetRealTimeQuotes", "process_fn" : "none"} => Duplicate item found: name
1700.
1701. # Once we setup a tunnel, execute it using get or post
1702. => GET => http://localhost/api/tunnel_request/execute?name=test => Request failed with status code 404
1703. => GET => http://localhost/api/tunnel_request/execute?name=test&tickers=MSFT => Issue with processing function
1704.
1705. # thsi will override thr process fucntion to test purpose ( you can use both lamda and nameed function)
1706. => POST => http://localhost/api/tunnel_request/execute => {"name":"test","tickers":"MSFT","process_fn":"function(a){return a}"} => successfully executeed the process fiunction
1707.
1708. # DONT USE LAMDA FUNCTION for test as => can't eb used
1709. # curl -X POST -H "Content-Type: application/json" -d '{"name":"test","tickers":"MSFT","process_fn":"(a)=>a"}' 'http://localhost/api/tunnel_request/execute' should work but test will fail
1710. #=> POST => http://localhost/api/tunnel_request/execute => {"name":"test","tickers":"MSFT","process_fn":"(a)=>a"} => successfully executeed the process fiunction
1711.
1712. # You can add revision for that tunnel and latest revisition will be used
1713. => POST => http://localhost/api/tunnel_request/add_revision => {"name":"test", "type":"get", "url":"https://market.tipranks.com/api/details/GetRealTimeQuotes", "process_fn" : "function(a){return a[0].ticker}"} =>new revisions added
1714. => GET => http://localhost/api/tunnel_request/execute?name=test&tickers=MSFT => MSFT
1715.
1716. ################ Crash Report ######################
1717. # Thsi APi provides to report crashes from any app.
1718. #####################################################
1719. => GET => http://localhost/api/crash_log/delete?_confirmstr=crash_log =>success
1720. => POST => http://localhost/api/crash_log/report_crash => {"app_name":"test", "message":"hello","stack":"stack1"} => first_line_hash:-1e788fb6
1721. => POST => http://localhost/api/crash_log/report_crash => {"app_name":"test", "message":"hello","stack":"stack1 "} => first_line_hash:-1e788fb6
1722. => GET => http://localhost/api/crash_log => "total_count":2
1723.
1724. ################ System DB ######################
1725. # Simple store supports system db which load all SimpleStore Server realted remote config on DB start.
1726. # This will override any local config so that we can control the service remotely.
1727. # One of the example is the SERCURE_KEYS which could be reset remotely
1728. # >>>> NOT WORKING <<<<
1729. #####################################################
1730. # => GET => http://localhost/api/internal_nodel_system_db/delete?_confirmstr=internal_nodel_system_db => The DB has marked as nodel
1731. # => GET => http://localhost/api/utils/system_db/dump => system db dump -> use db UI
1732. # /update will add, update, delete all in a single api. for delete pass null
1733. # => POST => http://localhost/api/utils/system_db/update => {"db_name":"SECURE_KEYS", "test_key1":"test_key_value1","test_key2":"test_key_value2"} => "test_key2":"test_key_value2"
1734. # => POST => http://localhost/api/utils/system_db/update => {"db_name":"SECURE_KEYS", "test_key1":"test_key_value1","test_key2":"null"} => "test_key2":null
1735. # => POST => http://localhost/api/utils/system_db/update => {"db_name":"SECURE_KEYS", "test_key1":"test_key_value1","test_key2":"test_key_value3"} => "test_key2":"test_key_value3"
1736. # => GET => http://localhost/api/utils/system_db/dump => "test_key2":"test_key_value3"
1737.
1738. ######### SERVER INFO ######
1739. => GET => http://localhost/info => "secureKeys":"Un autorized"
1740. => GET => http://localhost/info?admin=1 => "secureKeys"
1741.
1742. ##############
1743. # Test for stock_alert
1744. #
1745. ############
1746. => GET => http://localhost/api/stock_alert/delete?_confirmstr=stock_alert => success
1747. => POST => http://localhost/api/stock_alert/create => {"email":"dutta.dipankar08@gmail.com"} => "_id":"(?.*?)"
1748. => POST => http://localhost/api/stock_alert/tags/add => {"id":"{{id1}}","_field":"symbol_list", "_value":"AAPL"} => "symbol_list":\["AAPL"\]
1749. => POST => http://localhost/api/stock_alert/tags/add => {"id":"{{id1}}","_field":"subscription_list", "_value":"NOTIFY_BEGIN_5,NOTIFY_END_5"} => "subscription_list":\["NOTIFY_BEGIN_5","NOTIFY_END_5"\]
1750. => POST => http://localhost/api/stock_alert => {"id":"{{id1}}"} => "email":"dutta.dipankar08@gmail.com"
1751. => GET => http://localhost/api/stock_alert/trigger?exchange=NASDAQ&event=NOTIFY_BEGIN_5 => 1 Event processed
1752.
1753.
1754. ###########
1755. # Expose reliability for admin acess
1756. ###########
1757. => GET => http://localhost/reliability/ => success
1758.
1759. ##### Admin DB ####
1760. => GET => http://localhost/api/admin_hello => Missing admin_token_
1761. => GET => http://localhost/api/test_admin => Missing admin_token_
1762. => GET => http://localhost/api/test_admin?admin_token_=admin_test => Find successfully
1763. => GET => http://localhost/api/test_admin?admin_token_=admin_test_token_invalid => Invalid admin_token
1764. => GET => http://localhost/api/test_admin/insert?admin_token_=admin_test&name=test=> success
1765. => GET => http://localhost/api/test_admin/get?name=test=> Missing admin_token_
1766. => GET => http://localhost/api/test_admin/find?name=test=> Missing admin_token_
1767.
1768.
1769. # Get and Delete.
1770. => GET => http://localhost/api/test/insert?name=test => "_id":"(?.*?)"
1771. => GET => http://localhost/api/test/get_and_delete?id={{id1}} => success
1772. => GET => http://localhost/api/test/get_and_delete?id={{id1}} => error
1773.
1774.
1775. # Test case for AWS S3 utils
1776. => GET => http://localhost/api/utils/aws/list_files?folder_name=images&bucket_name=intellicogno-s3 => https://intellicogno-s3.s3.us-east-2.amazonaws.com
1777. => GET => http://localhost/api/utils/aws/list_files?folder_name=images => missing bucket_name
1778. => GET => http://localhost/api/utils/aws/list_files?bucket_name=images => missing folder_name
1779. => GET => http://localhost/api/utils/aws/list_files?folder_name=images&bucket_name=intellicogno-s4 => return a list of url
1780. => GET => http://localhost/api/utils/aws/list_files?folder_name=images1&bucket_name=intellicogno-s3 => return a list of url
1781. # Path = https://${bucketName}.s3.${region}.amazonaws.com/${path}
1782. => GET => http://localhost/api/utils/aws/get_download_url?path=images/017.jpg&bucket_name=intellicogno-s3 => success # get a link for a file
1783.
1784.
1785. # live log
1786. => GET => http://localhost/api/live_log/test => success
1787. => GET => http://localhost/api/live_log/get_log => error
1788. => GET => http://localhost/api/live_log/get_log?sender=live_log => html
1789.
1790.
1791. # Admin feature
1792. # 1. Server logs -> This works only if you login as super user
1793. => GET => http://localhost/api/utils/admin_tools/logs => success
1794. => GET => http://localhost/api/utils/admin_tools/clear_logs => success
1795. => GET => http://localhost/admin/routes => live_log
1796. => GET => http://localhost/api/utils/admin_tools/api_usages => API Usages
1797.
1798. # Power ful cron jobs scheulere
1799. # You can have job type lie ( not working anymore)
1800. # => GET => http://localhost/api/cron_job/submit?cron_format=* * * * *&job_type=debug&job_payload=json:{%22data%22:%22data%22} => success
1801. # => GET => http://localhost/api/cron_job/active_jobs => sucess
1802. # => GET => http://localhost/api/cron_job/reload => sucess
1803. # => GET => http://localhost/api/cron_job/run_now?id={xxx} => error # This api should be used to run the cron now now whcih would be helpful to test
1804.
1805. # Bash comamnd excutor
1806. => GET => http://localhost/api/utils/bash => error
1807. => GET => http://localhost/api/utils/bash?cmd=ls => success
1808. => GET => http://localhost/api/utils/bash?cmd=pwd => success
1809. => GET => http://localhost/api/utils/bash?cmd=sudo%20rm%20-rf => No rm or sudo allowed
1810. => GET => http://localhost/api/utils/bash?preset=git_pull => success
1811. => GET => http://localhost/api/utils/bash/get_all_presets => All Preset returned
1812.
1813. # yahoo_fin Historical data
1814. => GET => http://localhost/api/utils/yahoo_fin/historical_data?symbol=AAPL&interval=5m&range=1mo => success
1815. => GET => http://localhost/api/utils/yahoo_fin/historical_data?symbol=AAPL&interval=5m&range=1mo => cache
1816.
1817.
1818. # Generating OAuth token for Simple_AUth
1819. # Oauth allows to genete refersh and access token by 3p provider
1820. # Here is how to use
1821. # 1. Add a button in the UI to call : https://api.schwabapi.com/v1/oauth/authorize?client_id=BfQwxJGANBot1jWGO4e4LUuVjP33ckXs&redirect_uri=https://127.0.0.1:3000/oauth/schwab ( Note that your need get the client id from the Schwab and you define redirect_uri while creating the app)
1822. # 2. After reditecyion, you will getting a code, note the code and pass with below url
1823. # 3. Hit the URL: http://localhost/api/simple_auth/generate_oauth_tokens?auth_token_=9CC3B6&provider=SCHWAB&code=&redirect_uri=https://127.0.0.1:3000/oauth/schwab ( note to use same reditected URI)
1824. # 4. It need to do it quickly, once you are done, a access token will be generated and asscoited with the SimpleStoreAccount. For securiy reason, the access token will never be exposed outside. It is encriped and store in the SimpleStore internal DB.
1825. # 5. velidate if that is working fine http://simplestore.dipankar.co.in/api/utils/schwab/get_all_data?auth_token_=
1826. # 6. You dont need to acess refresh the auth_token as it is done automically by the system.
1827.
1828.
1829. #=> GET => http://localhost/api/simple_auth/register?username=test&email=test@test.com&password_=test => Duplicate item found: username
1830. #=> GET => http://localhost/api/simple_auth/login?username=test&email=test@test.com&password_=test&_no_encode=1 => "auth_token_":"(?.*?)" #auth_token_: "9CC3B6"
1831. #=> GET => http://localhost/api/simple_auth/generate_oauth_tokens?auth_token_=9CC3B6&provider=SCHWAB&code=C0.b2F1dGgyLmJkYy5zY2h3YWIuY29t.1JJrZ4ijqQQWX6Z92WtUH3ka2xKP0CNTR-I_dtBoNv0%40&redirect_uri=https://grodok-algoverse.web.app/oauth/schwab => OAuthToken generated and stored
1832. #=> GET => http://localhost/api/simple_auth/get_info?auth_token_=9CC3B6&_no_encode=1 =>"test" # Note it will never expose the oauth_tokens_ ouside
1833. #=> GET => http://localhost/api/utils/schwab/get_all_data?auth_token_=9CC3B6
1834.
1835.
1836.
1837. # Set APis -> This allow to insert a string into a list in the document
1838. => !POST => http://localhost/api/test0/create => {"name":"dip","count":1} => "_id":"(?.*?)"
1839. => GET => http://localhost/api/test/set/add?_id={{id}}&field=tags&value=1234 => "1234"
1840. => GET => http://localhost/api/test/set/add?_id={{id}}&field=tags&value=1234,1235,1236,1237 => "1234","1235","1236"
1841. => GET => http://localhost/api/test/set/remove?_id={{id}}&field=tags&value=1234=> "1235","1236"
1842. => GET => http://localhost/api/test/set/remove?_id={{id}}&field=tags&value= 1234,1235, 1236=> "1237"
1843. => GET => http://localhost/api/test/set/clear?_id={{id}}&field=tags&value==> "tags":\[\]
1844. => GET => http://localhost/api/test/delete?_id={{id}} => success
1845.
1846.
1847. # Private tokens store and send message in telegeraom: Private Tokens + Telegram Utilities
1848. => GET => http://localhost/api/simple_auth/login?username=test&email=test@test.com&password_=test123&_no_encode=1 => "auth_token_":"(?.*?)" #auth_token_: "9CC3B6"
1849. => GET => http://localhost/api/simple_auth/save_private_token?auth_token_={{login_token1}}&provider=TELEGRAM_BOT_PRIVATE_TOKEN&token=test => private tokens stored
1850. => GET => http://localhost/api/simple_auth/save_private_token?auth_token_={{login_token1}}&provider=UNKNOWN&token=test => Invalid enum string UNKNOWN,
1851. => GET => http://localhost/api/utils/telegram/send_msg?auth_token_={{login_token1}}&provider=UNKNOWN&chat_id=test&text=hello => 404
1852. => GET => http://localhost/api/simple_auth/save_private_token?auth_token_={{login_token1}}&provider=TELEGRAM_BOT_PRIVATE_TOKEN&token=7542704492:AAFivlt7Cu1Y7lbRjIAVmBguiVaDMr0w5RA => private tokens stored
1853. => GET => http://localhost/api/utils/telegram/send_msg?auth_token_={{login_token1}}&chat_id=test&text=hello => Bad Request: chat not found
1854. => GET => http://localhost/api/utils/telegram/send_msg?auth_token_={{login_token1}}&chat_id=-1002207345931&text=hello => Message sent successfully!
1855. => GET => http://localhost/api/simple_auth/logout?username=test&auth_token_={{login_token1}} => success
1856.
1857. # Interal db
1858. => GET => http://localhost/api/internal_test => access this information
1859.
1860. # testing passing osbucure data
1861. # Sometime you need to send a cyptic input in the request which will not allow to inspect by the client hacker, use the pass _data
1862. => GET => http://localhost/api/test/count?_data=eyJuYW1lIjogImRpcCJ9 => success
1863. => POST => http://localhost/api/test/count => {"_data":"eyJuYW1lIjogImRpcCJ9"} => success
1864. => GET => http://localhost/api/test/count?_data=eyJuYW1lIjogImRpcCJ9xx => Unexpected non-whitespace
1865.
1866. # Accessing preloaded Data stored in server
1867. => GET => http://localhost/api/utils/preload_data?name=ExampleData => success
1868.
1869.
1870. # schwab APIS ( not that you must have a valid access token - can;t test locally)
1871. => context => auth_token =>
1872. #=> GET => https://simplestore.dipankar.co.in/api/utils/schwab/get_all_data?auth_token_={{auth_token}} => success
1873. #=> GET => https://simplestore.dipankar.co.in/api/utils/schwab/quote?auth_token_={{auth_token}}&symbols=MSFT,AAPL => success
1874. #=> GET => https://simplestore.dipankar.co.in/api/utils/schwab/chains?auth_token_={{auth_token}}&symbol=AAPL => success
1875. #=> GET => http://localhost/api/utils/schwab/pricehistory?auth_token_={{auth_token}}&symbol=AAPL => success
1876. #=> GET => http://localhost/api/utils/schwab/net_delta?cmd=start => success
1877. #=> GET => http://localhost/api/utils/schwab/net_delta?cmd=stop => success
1878. #=> GET => http://localhost/api/utils/schwab/net_delta?cmd=error => success
1879. #=> GET => http://localhost/api/utils/schwab/net_delta?cmd=result => success
1880. #=> GET => http://localhost/api/utils/schwab/list_chains?symbol=AAPL => success
1881.
1882. # System_Config => This is a file based env store where we expose API to save and get it.
1883. # This is only access by SimpleStore Admin user
1884. # First generate a super user_token
1885. => GET => http://localhost/api/simple_auth/login?_no_encode=1&username=superuser@grodok.com&password_=superuser@123 => "auth_token_":"(?.*?)"
1886. => GET => http://localhost/api/utils/system_config/get?auth_token_={{su_login_token}} => data returned
1887. => GET => http://localhost/api/utils/system_config/set?auth_token_={{su_login_token}}&key=key&value=value => key
1888. => GET => http://localhost/api/utils/system_config/delete?auth_token_={{su_login_token}}&key=key&value=value => Deleted the key
1889.
1890.
1891. # Open api APIs
1892. # curl -X POST http://localhost/api/utils/openai/transcribe -F "audio=@audio.mpeg" shoild be use for testing , Put the audio file in same folder
1893. # => POST => http://localhost/api/utils/openai/transcribe => "audio=@audio.mpeg" => success # FIle upload is not supported by FEST
1894.
1895.
1896. # Product Subscription APIs
1897. => GET => http://localhost/api/simple_auth/login?_no_encode=1&username=test&password_=test123 => "auth_token_":"(?.*?)"
1898. => GET => http://localhost/api/simple_auth/login?_no_encode=1&username=superuser@grodok.com&password_=superuser@123 => "auth_token_":"(?.*?)"
1899. => GET => http://localhost/api/simple_auth/get_info?_no_encode=1&auth_token_={{su_login_token}} => Grodok SuperUser
1900.
1901. => GET => http://localhost/api/simple_auth/get_user_by_super_user?_no_encode=1&auth_token_={{su_login_token}}&username=test => "email":"dutta.dipankar08@gmail.com"
1902. => GET => http://localhost/api/simple_auth/get_user_by_super_user?_no_encode=1&auth_token_={{su_login_token}}&username=wrong => not able to find user
1903.
1904. => GET => http://localhost/api/simple_auth/add_product_subscription_by_super_user?_no_encode=1&auth_token_={{su_login_token}}&username=test&app_name=test&subscription_name=test&subscription_description=test&expaire_date=2025-01-01 => Date must be in the future
1905.
1906. => GET => http://localhost/api/simple_auth/add_product_subscription_by_super_user?_no_encode=1&auth_token_={{su_login_token}}&username=test&app_name=test&subscription_name=test&subscription_description=test&expaire_date=2027-01-01 => "entry_id":"(?.*?)"
1907.
1908. => GET => http://localhost/api/simple_auth/validate_product_subscription?_no_encode=1&auth_token_={{t_login_token}}&app_name=test => We found a valid subscription
1909.
1910. => GET => http://localhost/api/simple_auth/remove_product_subscription_by_super_user?_no_encode=1&auth_token_={{su_login_token}}&username=test&app_name=test&subscription_id={{subscription_id}} => subscription is removed with id
1911.
1912. => GET => http://localhost/api/simple_auth/validate_product_subscription?_no_encode=1&auth_token_={{t_login_token}}&app_name=test => No valid subsscription exist
1913.
1914. => GET => http://localhost/api/simple_auth/remove_product_subscription_by_super_user?_no_encode=1&auth_token_={{t_login_token}}&username=test&app_name=test&subscription_id={{subscription_id}} => Not logged in as a super user
1915.
1916.
1917. # SCHWAB Price history API
1918. #=> GET => http://localhost/api/simple_auth/login?username=test&email=test@test.com&password_=test123&_no_encode=1 => "auth_token_":"(?.*?)" #auth_token_: "9CC3B6"
1919. #=> GET => http://localhost/api/utils/schwab/pricehistory?auth_token_={{auth_token_}}&symbol=AAPL&candle_type=5m => success
1920. #=> GET => http://localhost/api/utils/schwab/pricehistory?auth_token_={{auth_token_}}&symbol=AAPL&candle_type=5m => success
1921. #=> GET => http://localhost/api/utils/schwab/pricehistory?auth_token_={{auth_token_}}&symbol=AAPL&candle_type=5m&include_extended_data=1 => success
1922. #=> GET => http://{{server}}/api/simple_auth/logout_all?username=test1&force=1 => Logout done for . session forcefully
1923.
1924. # Testing Hacker news
1925. => GET => http://localhost/api/utils/hacker_news/get?type=top => "title"
1926.
1927.
1928. # Testing LLM API.
1929. => GET => http://localhost/api/utils/llm/lamma?role=teacher&prompt=return a valid json string => success
1930.
1931. # Test Crypto data.
1932. => POST => http://localhost/api/test_crypto/insert => {"name":"DIP"} => "encrypted":true
1933. => GET => http://localhost/api/test_crypto/get => "encrypted":true
1934. => GET => http://localhost/api/test_crypto/get?_no_encode=1=> \"name\":\"DIP\"
1935.
1936. # Inline Edit
1937. => GET => http://localhost/api/test/?_edit=1 => button type="button" onclick="clone
1938. => GET => http://localhost/api/test/?_edit=true => button type="button" onclick="clone
1939. => GET => http://localhost/api/test/?_edit=True => button type="button" onclick="clone
1940. => GET => http://localhost/api/test/?_edit=0 => Find successfully
1941.
All Endpoint:GET /?(?=/|$)/api/test/ext/help
POST /?(?=/|$)/api/test/ext/help
GET /?(?=/|$)/api/test/ext
POST /?(?=/|$)/api/test/ext
GET /?(?=/|$)/api/analytics/launch/help
POST /?(?=/|$)/api/analytics/launch/help
GET /?(?=/|$)/api/analytics/launch
POST /?(?=/|$)/api/analytics/launch
GET /?(?=/|$)/api/analytics/action/help
POST /?(?=/|$)/api/analytics/action/help
GET /?(?=/|$)/api/analytics/action
POST /?(?=/|$)/api/analytics/action
GET /?(?=/|$)/api/analytics/time_spent/help
POST /?(?=/|$)/api/analytics/time_spent/help
GET /?(?=/|$)/api/analytics/time_spent
POST /?(?=/|$)/api/analytics/time_spent
GET /?(?=/|$)/api/analytics/exception/help
POST /?(?=/|$)/api/analytics/exception/help
GET /?(?=/|$)/api/analytics/exception
POST /?(?=/|$)/api/analytics/exception
GET /?(?=/|$)/api/analytics/hit_tracker/help
POST /?(?=/|$)/api/analytics/hit_tracker/help
GET /?(?=/|$)/api/analytics/hit_tracker
POST /?(?=/|$)/api/analytics/hit_tracker
GET /?(?=/|$)/api/analytics/adhoc/help
POST /?(?=/|$)/api/analytics/adhoc/help
GET /?(?=/|$)/api/analytics/adhoc
POST /?(?=/|$)/api/analytics/adhoc
GET /?(?=/|$)/api/analytics/session_history/help
POST /?(?=/|$)/api/analytics/session_history/help
GET /?(?=/|$)/api/analytics/session_history
POST /?(?=/|$)/api/analytics/session_history
GET /?(?=/|$)/api/analytics/logs/help
POST /?(?=/|$)/api/analytics/logs/help
GET /?(?=/|$)/api/analytics/logs
POST /?(?=/|$)/api/analytics/logs
GET /?(?=/|$)/api/analytics/show/help
POST /?(?=/|$)/api/analytics/show/help
GET /?(?=/|$)/api/analytics/show
POST /?(?=/|$)/api/analytics/show
GET /?(?=/|$)/api/push_notification/push/help
POST /?(?=/|$)/api/push_notification/push/help
GET /?(?=/|$)/api/push_notification/push
POST /?(?=/|$)/api/push_notification/push
GET /?(?=/|$)/api/push_notification/push_one/help
POST /?(?=/|$)/api/push_notification/push_one/help
GET /?(?=/|$)/api/push_notification/push_one
POST /?(?=/|$)/api/push_notification/push_one
GET /?(?=/|$)/api/nodel_shortcode/generate/help
POST /?(?=/|$)/api/nodel_shortcode/generate/help
GET /?(?=/|$)/api/nodel_shortcode/generate
POST /?(?=/|$)/api/nodel_shortcode/generate
GET /?(?=/|$)/api/system_calender/grant/help
POST /?(?=/|$)/api/system_calender/grant/help
GET /?(?=/|$)/api/system_calender/grant
POST /?(?=/|$)/api/system_calender/grant
GET /?(?=/|$)/api/system_calender/book/help
POST /?(?=/|$)/api/system_calender/book/help
GET /?(?=/|$)/api/system_calender/book
POST /?(?=/|$)/api/system_calender/book
GET /?(?=/|$)/api/system_calender/availability/help
POST /?(?=/|$)/api/system_calender/availability/help
GET /?(?=/|$)/api/system_calender/availability
POST /?(?=/|$)/api/system_calender/availability
GET /?(?=/|$)/api/system_calender/cancel/help
POST /?(?=/|$)/api/system_calender/cancel/help
GET /?(?=/|$)/api/system_calender/cancel
POST /?(?=/|$)/api/system_calender/cancel
GET /?(?=/|$)/api/dropbox/upload/help
POST /?(?=/|$)/api/dropbox/upload/help
GET /?(?=/|$)/api/dropbox/upload
POST /?(?=/|$)/api/dropbox/upload
GET /?(?=/|$)/api/dropbox/delete/help
POST /?(?=/|$)/api/dropbox/delete/help
GET /?(?=/|$)/api/dropbox/delete
POST /?(?=/|$)/api/dropbox/delete
GET /?(?=/|$)/api/promotion/get_referral_code/help
POST /?(?=/|$)/api/promotion/get_referral_code/help
GET /?(?=/|$)/api/promotion/get_referral_code
POST /?(?=/|$)/api/promotion/get_referral_code
GET /?(?=/|$)/api/promotion/check_referral_code/help
POST /?(?=/|$)/api/promotion/check_referral_code/help
GET /?(?=/|$)/api/promotion/check_referral_code
POST /?(?=/|$)/api/promotion/check_referral_code
GET /?(?=/|$)/api/nodel_screen_question/test/help
POST /?(?=/|$)/api/nodel_screen_question/test/help
GET /?(?=/|$)/api/nodel_screen_question/test
POST /?(?=/|$)/api/nodel_screen_question/test
GET /?(?=/|$)/api/nodel_screen_question/single_function_update/help
POST /?(?=/|$)/api/nodel_screen_question/single_function_update/help
GET /?(?=/|$)/api/nodel_screen_question/single_function_update
POST /?(?=/|$)/api/nodel_screen_question/single_function_update
GET /?(?=/|$)/api/explore/play/help
POST /?(?=/|$)/api/explore/play/help
GET /?(?=/|$)/api/explore/play
POST /?(?=/|$)/api/explore/play
GET /?(?=/|$)/api/status/ping/help
POST /?(?=/|$)/api/status/ping/help
GET /?(?=/|$)/api/status/ping
POST /?(?=/|$)/api/status/ping
GET /?(?=/|$)/api/status/show/help
POST /?(?=/|$)/api/status/show/help
GET /?(?=/|$)/api/status/show
POST /?(?=/|$)/api/status/show
GET /?(?=/|$)/api/license/grant/help
POST /?(?=/|$)/api/license/grant/help
GET /?(?=/|$)/api/license/grant
POST /?(?=/|$)/api/license/grant
GET /?(?=/|$)/api/license/revoke/help
POST /?(?=/|$)/api/license/revoke/help
GET /?(?=/|$)/api/license/revoke
POST /?(?=/|$)/api/license/revoke
GET /?(?=/|$)/api/license/validate/help
POST /?(?=/|$)/api/license/validate/help
GET /?(?=/|$)/api/license/validate
POST /?(?=/|$)/api/license/validate
GET /?(?=/|$)/api/schedule_script/submit/help
POST /?(?=/|$)/api/schedule_script/submit/help
GET /?(?=/|$)/api/schedule_script/submit
POST /?(?=/|$)/api/schedule_script/submit
GET /?(?=/|$)/api/schedule_script/activate/help
POST /?(?=/|$)/api/schedule_script/activate/help
GET /?(?=/|$)/api/schedule_script/activate
POST /?(?=/|$)/api/schedule_script/activate
GET /?(?=/|$)/api/schedule_script/deactivate/help
POST /?(?=/|$)/api/schedule_script/deactivate/help
GET /?(?=/|$)/api/schedule_script/deactivate
POST /?(?=/|$)/api/schedule_script/deactivate
GET /?(?=/|$)/api/schedule_script/status/help
POST /?(?=/|$)/api/schedule_script/status/help
GET /?(?=/|$)/api/schedule_script/status
POST /?(?=/|$)/api/schedule_script/status
GET /?(?=/|$)/api/schedule_script/activate_all/help
POST /?(?=/|$)/api/schedule_script/activate_all/help
GET /?(?=/|$)/api/schedule_script/activate_all
POST /?(?=/|$)/api/schedule_script/activate_all
GET /?(?=/|$)/api/schedule_script/dryrun/help
POST /?(?=/|$)/api/schedule_script/dryrun/help
GET /?(?=/|$)/api/schedule_script/dryrun
POST /?(?=/|$)/api/schedule_script/dryrun
GET /?(?=/|$)/api/schedule_script/reload/help
POST /?(?=/|$)/api/schedule_script/reload/help
GET /?(?=/|$)/api/schedule_script/reload
POST /?(?=/|$)/api/schedule_script/reload
GET /?(?=/|$)/api/subscription/subscribe/help
POST /?(?=/|$)/api/subscription/subscribe/help
GET /?(?=/|$)/api/subscription/subscribe
POST /?(?=/|$)/api/subscription/subscribe
GET /?(?=/|$)/api/subscription/unsubscribe/help
POST /?(?=/|$)/api/subscription/unsubscribe/help
GET /?(?=/|$)/api/subscription/unsubscribe
POST /?(?=/|$)/api/subscription/unsubscribe
GET /?(?=/|$)/api/subscription/notify/help
POST /?(?=/|$)/api/subscription/notify/help
GET /?(?=/|$)/api/subscription/notify
POST /?(?=/|$)/api/subscription/notify
GET /?(?=/|$)/api/stock_alert/get_ltp/help
POST /?(?=/|$)/api/stock_alert/get_ltp/help
GET /?(?=/|$)/api/stock_alert/get_ltp
POST /?(?=/|$)/api/stock_alert/get_ltp
GET /?(?=/|$)/api/stock_alert/trigger/help
POST /?(?=/|$)/api/stock_alert/trigger/help
GET /?(?=/|$)/api/stock_alert/trigger
POST /?(?=/|$)/api/stock_alert/trigger
GET /?(?=/|$)/api/stock_alert/supported_events/help
POST /?(?=/|$)/api/stock_alert/supported_events/help
GET /?(?=/|$)/api/stock_alert/supported_events
POST /?(?=/|$)/api/stock_alert/supported_events
GET /?(?=/|$)/api/schedule2/activate/help
POST /?(?=/|$)/api/schedule2/activate/help
GET /?(?=/|$)/api/schedule2/activate
POST /?(?=/|$)/api/schedule2/activate
GET /?(?=/|$)/api/schedule2/deactivate/help
POST /?(?=/|$)/api/schedule2/deactivate/help
GET /?(?=/|$)/api/schedule2/deactivate
POST /?(?=/|$)/api/schedule2/deactivate
GET /?(?=/|$)/api/schedule2/reload/help
POST /?(?=/|$)/api/schedule2/reload/help
GET /?(?=/|$)/api/schedule2/reload
POST /?(?=/|$)/api/schedule2/reload
GET /?(?=/|$)/api/schedule2/status/help
POST /?(?=/|$)/api/schedule2/status/help
GET /?(?=/|$)/api/schedule2/status
POST /?(?=/|$)/api/schedule2/status
GET /?(?=/|$)/api/ip_tv/cleanup/help
POST /?(?=/|$)/api/ip_tv/cleanup/help
GET /?(?=/|$)/api/ip_tv/cleanup
POST /?(?=/|$)/api/ip_tv/cleanup
GET /?(?=/|$)/api/ip_tv/add_seed/help
POST /?(?=/|$)/api/ip_tv/add_seed/help
GET /?(?=/|$)/api/ip_tv/add_seed
POST /?(?=/|$)/api/ip_tv/add_seed
GET /?(?=/|$)/api/ip_tv/reseed/help
POST /?(?=/|$)/api/ip_tv/reseed/help
GET /?(?=/|$)/api/ip_tv/reseed
POST /?(?=/|$)/api/ip_tv/reseed
GET /?(?=/|$)/api/ip_tv/explore_seed/help
POST /?(?=/|$)/api/ip_tv/explore_seed/help
GET /?(?=/|$)/api/ip_tv/explore_seed
POST /?(?=/|$)/api/ip_tv/explore_seed
GET /?(?=/|$)/api/stock_screen/get_data/help
POST /?(?=/|$)/api/stock_screen/get_data/help
GET /?(?=/|$)/api/stock_screen/get_data
POST /?(?=/|$)/api/stock_screen/get_data
GET /?(?=/|$)/api/simple_auth/register/help
POST /?(?=/|$)/api/simple_auth/register/help
GET /?(?=/|$)/api/simple_auth/register
POST /?(?=/|$)/api/simple_auth/register
GET /?(?=/|$)/api/simple_auth/login/help
POST /?(?=/|$)/api/simple_auth/login/help
GET /?(?=/|$)/api/simple_auth/login
POST /?(?=/|$)/api/simple_auth/login
GET /?(?=/|$)/api/simple_auth/login_by_email/help
POST /?(?=/|$)/api/simple_auth/login_by_email/help
GET /?(?=/|$)/api/simple_auth/login_by_email
POST /?(?=/|$)/api/simple_auth/login_by_email
GET /?(?=/|$)/api/simple_auth/logout/help
POST /?(?=/|$)/api/simple_auth/logout/help
GET /?(?=/|$)/api/simple_auth/logout
POST /?(?=/|$)/api/simple_auth/logout
GET /?(?=/|$)/api/simple_auth/get_info/help
POST /?(?=/|$)/api/simple_auth/get_info/help
GET /?(?=/|$)/api/simple_auth/get_info
POST /?(?=/|$)/api/simple_auth/get_info
GET /?(?=/|$)/api/simple_auth/update_info/help
POST /?(?=/|$)/api/simple_auth/update_info/help
GET /?(?=/|$)/api/simple_auth/update_info
POST /?(?=/|$)/api/simple_auth/update_info
GET /?(?=/|$)/api/simple_auth/forgot_password/help
POST /?(?=/|$)/api/simple_auth/forgot_password/help
GET /?(?=/|$)/api/simple_auth/forgot_password
POST /?(?=/|$)/api/simple_auth/forgot_password
GET /?(?=/|$)/api/simple_auth/reset_password/help
POST /?(?=/|$)/api/simple_auth/reset_password/help
GET /?(?=/|$)/api/simple_auth/reset_password
POST /?(?=/|$)/api/simple_auth/reset_password
GET /?(?=/|$)/api/simple_auth/logout_all/help
POST /?(?=/|$)/api/simple_auth/logout_all/help
GET /?(?=/|$)/api/simple_auth/logout_all
POST /?(?=/|$)/api/simple_auth/logout_all
GET /?(?=/|$)/api/simple_auth/validate_login_session/help
POST /?(?=/|$)/api/simple_auth/validate_login_session/help
GET /?(?=/|$)/api/simple_auth/validate_login_session
POST /?(?=/|$)/api/simple_auth/validate_login_session
GET /?(?=/|$)/api/simple_auth/get_all_active_session/help
POST /?(?=/|$)/api/simple_auth/get_all_active_session/help
GET /?(?=/|$)/api/simple_auth/get_all_active_session
POST /?(?=/|$)/api/simple_auth/get_all_active_session
GET /?(?=/|$)/api/simple_auth/add_subscription/help
POST /?(?=/|$)/api/simple_auth/add_subscription/help
GET /?(?=/|$)/api/simple_auth/add_subscription
POST /?(?=/|$)/api/simple_auth/add_subscription
GET /?(?=/|$)/api/simple_auth/clear_subscription/help
POST /?(?=/|$)/api/simple_auth/clear_subscription/help
GET /?(?=/|$)/api/simple_auth/clear_subscription
POST /?(?=/|$)/api/simple_auth/clear_subscription
GET /?(?=/|$)/api/simple_auth/generate_oauth_tokens/help
POST /?(?=/|$)/api/simple_auth/generate_oauth_tokens/help
GET /?(?=/|$)/api/simple_auth/generate_oauth_tokens
POST /?(?=/|$)/api/simple_auth/generate_oauth_tokens
GET /?(?=/|$)/api/simple_auth/add_permission/help
POST /?(?=/|$)/api/simple_auth/add_permission/help
GET /?(?=/|$)/api/simple_auth/add_permission
POST /?(?=/|$)/api/simple_auth/add_permission
GET /?(?=/|$)/api/simple_auth/remove_permission/help
POST /?(?=/|$)/api/simple_auth/remove_permission/help
GET /?(?=/|$)/api/simple_auth/remove_permission
POST /?(?=/|$)/api/simple_auth/remove_permission
GET /?(?=/|$)/api/simple_auth/save_private_token/help
POST /?(?=/|$)/api/simple_auth/save_private_token/help
GET /?(?=/|$)/api/simple_auth/save_private_token
POST /?(?=/|$)/api/simple_auth/save_private_token
GET /?(?=/|$)/api/simple_auth/generate_magic_link/help
POST /?(?=/|$)/api/simple_auth/generate_magic_link/help
GET /?(?=/|$)/api/simple_auth/generate_magic_link
POST /?(?=/|$)/api/simple_auth/generate_magic_link
GET /?(?=/|$)/api/simple_auth/login_with_magic_link/help
POST /?(?=/|$)/api/simple_auth/login_with_magic_link/help
GET /?(?=/|$)/api/simple_auth/login_with_magic_link
POST /?(?=/|$)/api/simple_auth/login_with_magic_link
GET /?(?=/|$)/api/simple_auth/login_by_google/help
POST /?(?=/|$)/api/simple_auth/login_by_google/help
GET /?(?=/|$)/api/simple_auth/login_by_google
POST /?(?=/|$)/api/simple_auth/login_by_google
GET /?(?=/|$)/api/simple_auth/add_product_subscription_by_super_user/help
POST /?(?=/|$)/api/simple_auth/add_product_subscription_by_super_user/help
GET /?(?=/|$)/api/simple_auth/add_product_subscription_by_super_user
POST /?(?=/|$)/api/simple_auth/add_product_subscription_by_super_user
GET /?(?=/|$)/api/simple_auth/remove_product_subscription_by_super_user/help
POST /?(?=/|$)/api/simple_auth/remove_product_subscription_by_super_user/help
GET /?(?=/|$)/api/simple_auth/remove_product_subscription_by_super_user
POST /?(?=/|$)/api/simple_auth/remove_product_subscription_by_super_user
GET /?(?=/|$)/api/simple_auth/validate_product_subscription/help
POST /?(?=/|$)/api/simple_auth/validate_product_subscription/help
GET /?(?=/|$)/api/simple_auth/validate_product_subscription
POST /?(?=/|$)/api/simple_auth/validate_product_subscription
GET /?(?=/|$)/api/simple_auth/get_user_by_super_user/help
POST /?(?=/|$)/api/simple_auth/get_user_by_super_user/help
GET /?(?=/|$)/api/simple_auth/get_user_by_super_user
POST /?(?=/|$)/api/simple_auth/get_user_by_super_user
GET /?(?=/|$)/api/error/test/help
POST /?(?=/|$)/api/error/test/help
GET /?(?=/|$)/api/error/test
POST /?(?=/|$)/api/error/test
GET /?(?=/|$)/api/stripe/check_subscription/help
POST /?(?=/|$)/api/stripe/check_subscription/help
GET /?(?=/|$)/api/stripe/check_subscription
POST /?(?=/|$)/api/stripe/check_subscription
GET /?(?=/|$)/api/stripe/check_payment/help
POST /?(?=/|$)/api/stripe/check_payment/help
GET /?(?=/|$)/api/stripe/check_payment
POST /?(?=/|$)/api/stripe/check_payment
GET /?(?=/|$)/api/stripe/payment/help
POST /?(?=/|$)/api/stripe/payment/help
GET /?(?=/|$)/api/stripe/payment
POST /?(?=/|$)/api/stripe/payment
GET /?(?=/|$)/api/remote_smb_manifest/razorpay_create_order/help
POST /?(?=/|$)/api/remote_smb_manifest/razorpay_create_order/help
GET /?(?=/|$)/api/remote_smb_manifest/razorpay_create_order
POST /?(?=/|$)/api/remote_smb_manifest/razorpay_create_order
GET /?(?=/|$)/api/kill_switch/set_bool/help
POST /?(?=/|$)/api/kill_switch/set_bool/help
GET /?(?=/|$)/api/kill_switch/set_bool
POST /?(?=/|$)/api/kill_switch/set_bool
GET /?(?=/|$)/api/kill_switch/set_string/help
POST /?(?=/|$)/api/kill_switch/set_string/help
GET /?(?=/|$)/api/kill_switch/set_string
POST /?(?=/|$)/api/kill_switch/set_string
GET /?(?=/|$)/api/kill_switch/reload/help
POST /?(?=/|$)/api/kill_switch/reload/help
GET /?(?=/|$)/api/kill_switch/reload
POST /?(?=/|$)/api/kill_switch/reload
GET /?(?=/|$)/api/kill_switch/get_current/help
POST /?(?=/|$)/api/kill_switch/get_current/help
GET /?(?=/|$)/api/kill_switch/get_current
POST /?(?=/|$)/api/kill_switch/get_current
GET /?(?=/|$)/api/webhook/status/help
POST /?(?=/|$)/api/webhook/status/help
GET /?(?=/|$)/api/webhook/status
POST /?(?=/|$)/api/webhook/status
GET /?(?=/|$)/api/webhook/status_clear/help
POST /?(?=/|$)/api/webhook/status_clear/help
GET /?(?=/|$)/api/webhook/status_clear
POST /?(?=/|$)/api/webhook/status_clear
GET /?(?=/|$)/api/tunnel_request/add_tunnel/help
POST /?(?=/|$)/api/tunnel_request/add_tunnel/help
GET /?(?=/|$)/api/tunnel_request/add_tunnel
POST /?(?=/|$)/api/tunnel_request/add_tunnel
GET /?(?=/|$)/api/tunnel_request/execute/help
POST /?(?=/|$)/api/tunnel_request/execute/help
GET /?(?=/|$)/api/tunnel_request/execute
POST /?(?=/|$)/api/tunnel_request/execute
GET /?(?=/|$)/api/tunnel_request/add_revision/help
POST /?(?=/|$)/api/tunnel_request/add_revision/help
GET /?(?=/|$)/api/tunnel_request/add_revision
POST /?(?=/|$)/api/tunnel_request/add_revision
GET /?(?=/|$)/api/crash_log/report_crash/help
POST /?(?=/|$)/api/crash_log/report_crash/help
GET /?(?=/|$)/api/crash_log/report_crash
POST /?(?=/|$)/api/crash_log/report_crash
GET /?(?=/|$)/api/sev_manager/help/help
POST /?(?=/|$)/api/sev_manager/help/help
GET /?(?=/|$)/api/sev_manager/help
POST /?(?=/|$)/api/sev_manager/help
GET /?(?=/|$)/api/task/test/help
POST /?(?=/|$)/api/task/test/help
GET /?(?=/|$)/api/task/test
POST /?(?=/|$)/api/task/test
GET /?(?=/|$)/api/cron_job/submit/help
POST /?(?=/|$)/api/cron_job/submit/help
GET /?(?=/|$)/api/cron_job/submit
POST /?(?=/|$)/api/cron_job/submit
GET /?(?=/|$)/api/cron_job/reload/help
POST /?(?=/|$)/api/cron_job/reload/help
GET /?(?=/|$)/api/cron_job/reload
POST /?(?=/|$)/api/cron_job/reload
GET /?(?=/|$)/api/cron_job/active_jobs/help
POST /?(?=/|$)/api/cron_job/active_jobs/help
GET /?(?=/|$)/api/cron_job/active_jobs
POST /?(?=/|$)/api/cron_job/active_jobs
GET /?(?=/|$)/api/cron_job/run_now/help
POST /?(?=/|$)/api/cron_job/run_now/help
GET /?(?=/|$)/api/cron_job/run_now
POST /?(?=/|$)/api/cron_job/run_now
GET /?(?=/|$)/api/live_log/test/help
POST /?(?=/|$)/api/live_log/test/help
GET /?(?=/|$)/api/live_log/test
POST /?(?=/|$)/api/live_log/test
GET /?(?=/|$)/api/live_log/get_log/help
POST /?(?=/|$)/api/live_log/get_log/help
GET /?(?=/|$)/api/live_log/get_log
POST /?(?=/|$)/api/live_log/get_log
GET /?(?=/|$)/api/secure_remote_oauth_store/gen_access_token/help
POST /?(?=/|$)/api/secure_remote_oauth_store/gen_access_token/help
GET /?(?=/|$)/api/secure_remote_oauth_store/gen_access_token
POST /?(?=/|$)/api/secure_remote_oauth_store/gen_access_token
GET /?(?=/|$)/api/algo_trade_engine/restart/help
POST /?(?=/|$)/api/algo_trade_engine/restart/help
GET /?(?=/|$)/api/algo_trade_engine/restart
POST /?(?=/|$)/api/algo_trade_engine/restart
GET /?(?=/|$)/api/algo_trade_engine/status/help
POST /?(?=/|$)/api/algo_trade_engine/status/help
GET /?(?=/|$)/api/algo_trade_engine/status
POST /?(?=/|$)/api/algo_trade_engine/status
GET /?(?=/|$)/api/algo_trade_engine/submit_order/help
POST /?(?=/|$)/api/algo_trade_engine/submit_order/help
GET /?(?=/|$)/api/algo_trade_engine/submit_order
POST /?(?=/|$)/api/algo_trade_engine/submit_order
GET /?(?=/|$)/api/secure_remote_js_code_execution/execute/help
POST /?(?=/|$)/api/secure_remote_js_code_execution/execute/help
GET /?(?=/|$)/api/secure_remote_js_code_execution/execute
POST /?(?=/|$)/api/secure_remote_js_code_execution/execute
GET /?(?=/|$)/api/appconfig/get/help
POST /?(?=/|$)/api/appconfig/get/help
GET /?(?=/|$)/api/appconfig/get
POST /?(?=/|$)/api/appconfig/get
GET /?(?=/|$)/api/appconfig/save/help
POST /?(?=/|$)/api/appconfig/save/help
GET /?(?=/|$)/api/appconfig/save
POST /?(?=/|$)/api/appconfig/save
GET /?(?=/|$)/api/appconfig/stat/help
POST /?(?=/|$)/api/appconfig/stat/help
GET /?(?=/|$)/api/appconfig/stat
POST /?(?=/|$)/api/appconfig/stat
GET /?(?=/|$)/api/appconfig/stat2/help
POST /?(?=/|$)/api/appconfig/stat2/help
GET /?(?=/|$)/api/appconfig/stat2
POST /?(?=/|$)/api/appconfig/stat2
GET /?(?=/|$)/api/utils/pdf/letter/help
POST /?(?=/|$)/api/utils/pdf/letter/help
GET /?(?=/|$)/api/utils/pdf/letter
POST /?(?=/|$)/api/utils/pdf/letter
GET /?(?=/|$)/api/utils/test//help
POST /?(?=/|$)/api/utils/test//help
GET /?(?=/|$)/api/utils/test/
POST /?(?=/|$)/api/utils/test/
GET /?(?=/|$)/api/utils/date//help
POST /?(?=/|$)/api/utils/date//help
GET /?(?=/|$)/api/utils/date/
POST /?(?=/|$)/api/utils/date/
GET /?(?=/|$)/api/utils/ticket//help
POST /?(?=/|$)/api/utils/ticket//help
GET /?(?=/|$)/api/utils/ticket/
POST /?(?=/|$)/api/utils/ticket/
GET /?(?=/|$)/api/utils/bootcamp//help
POST /?(?=/|$)/api/utils/bootcamp//help
GET /?(?=/|$)/api/utils/bootcamp/
POST /?(?=/|$)/api/utils/bootcamp/
GET /?(?=/|$)/api/utils/rce/status/help
POST /?(?=/|$)/api/utils/rce/status/help
GET /?(?=/|$)/api/utils/rce/status
POST /?(?=/|$)/api/utils/rce/status
GET /?(?=/|$)/api/utils/rce/capabilities/help
POST /?(?=/|$)/api/utils/rce/capabilities/help
GET /?(?=/|$)/api/utils/rce/capabilities
POST /?(?=/|$)/api/utils/rce/capabilities
GET /?(?=/|$)/api/utils/rce/execute/help
POST /?(?=/|$)/api/utils/rce/execute/help
GET /?(?=/|$)/api/utils/rce/execute
POST /?(?=/|$)/api/utils/rce/execute
GET /?(?=/|$)/api/utils/rce/execute_ext/help
POST /?(?=/|$)/api/utils/rce/execute_ext/help
GET /?(?=/|$)/api/utils/rce/execute_ext
POST /?(?=/|$)/api/utils/rce/execute_ext
GET /?(?=/|$)/api/utils/rce/execute_input/help
POST /?(?=/|$)/api/utils/rce/execute_input/help
GET /?(?=/|$)/api/utils/rce/execute_input
POST /?(?=/|$)/api/utils/rce/execute_input
GET /?(?=/|$)/api/utils/rce/generate_stub/help
POST /?(?=/|$)/api/utils/rce/generate_stub/help
GET /?(?=/|$)/api/utils/rce/generate_stub
POST /?(?=/|$)/api/utils/rce/generate_stub
GET /?(?=/|$)/api/utils/rce/generate_code/help
POST /?(?=/|$)/api/utils/rce/generate_code/help
GET /?(?=/|$)/api/utils/rce/generate_code
POST /?(?=/|$)/api/utils/rce/generate_code
GET /?(?=/|$)/api/utils/rce/sf_execute/help
POST /?(?=/|$)/api/utils/rce/sf_execute/help
GET /?(?=/|$)/api/utils/rce/sf_execute
POST /?(?=/|$)/api/utils/rce/sf_execute
GET /?(?=/|$)/api/utils/rce/sf_test/help
POST /?(?=/|$)/api/utils/rce/sf_test/help
GET /?(?=/|$)/api/utils/rce/sf_test
POST /?(?=/|$)/api/utils/rce/sf_test
GET /?(?=/|$)/api/utils/email//help
POST /?(?=/|$)/api/utils/email//help
GET /?(?=/|$)/api/utils/email/
POST /?(?=/|$)/api/utils/email/
GET /?(?=/|$)/api/utils/qr//help
POST /?(?=/|$)/api/utils/qr//help
GET /?(?=/|$)/api/utils/qr/
POST /?(?=/|$)/api/utils/qr/
GET /?(?=/|$)/api/utils/stripe//help
POST /?(?=/|$)/api/utils/stripe//help
GET /?(?=/|$)/api/utils/stripe/
POST /?(?=/|$)/api/utils/stripe/
GET /?(?=/|$)/api/utils/upload//help
POST /?(?=/|$)/api/utils/upload//help
GET /?(?=/|$)/api/utils/upload/
POST /?(?=/|$)/api/utils/upload/
GET /?(?=/|$)/api/utils/youtubedl//help
POST /?(?=/|$)/api/utils/youtubedl//help
GET /?(?=/|$)/api/utils/youtubedl/
POST /?(?=/|$)/api/utils/youtubedl/
GET /?(?=/|$)/api/utils/youtubedl/dl/help
POST /?(?=/|$)/api/utils/youtubedl/dl/help
GET /?(?=/|$)/api/utils/youtubedl/dl
POST /?(?=/|$)/api/utils/youtubedl/dl
GET /?(?=/|$)/api/utils/youtubedl/video/help
POST /?(?=/|$)/api/utils/youtubedl/video/help
GET /?(?=/|$)/api/utils/youtubedl/video
POST /?(?=/|$)/api/utils/youtubedl/video
GET /?(?=/|$)/api/utils/youtubedl/audio/help
POST /?(?=/|$)/api/utils/youtubedl/audio/help
GET /?(?=/|$)/api/utils/youtubedl/audio
POST /?(?=/|$)/api/utils/youtubedl/audio
GET /?(?=/|$)/api/utils/youtubedl/info/help
POST /?(?=/|$)/api/utils/youtubedl/info/help
GET /?(?=/|$)/api/utils/youtubedl/info
POST /?(?=/|$)/api/utils/youtubedl/info
GET /?(?=/|$)/api/utils/social/facebook/help
POST /?(?=/|$)/api/utils/social/facebook/help
GET /?(?=/|$)/api/utils/social/facebook
POST /?(?=/|$)/api/utils/social/facebook
GET /?(?=/|$)/api/utils/social/telegram/help
POST /?(?=/|$)/api/utils/social/telegram/help
GET /?(?=/|$)/api/utils/social/telegram
POST /?(?=/|$)/api/utils/social/telegram
GET /?(?=/|$)/api/utils/social/twitter/help
POST /?(?=/|$)/api/utils/social/twitter/help
GET /?(?=/|$)/api/utils/social/twitter
POST /?(?=/|$)/api/utils/social/twitter
GET /?(?=/|$)/api/utils/social//help
POST /?(?=/|$)/api/utils/social//help
GET /?(?=/|$)/api/utils/social/
POST /?(?=/|$)/api/utils/social/
GET /?(?=/|$)/api/utils/social/linkedin/help
POST /?(?=/|$)/api/utils/social/linkedin/help
GET /?(?=/|$)/api/utils/social/linkedin
POST /?(?=/|$)/api/utils/social/linkedin
GET /?(?=/|$)/api/utils/social/all/help
POST /?(?=/|$)/api/utils/social/all/help
GET /?(?=/|$)/api/utils/social/all
POST /?(?=/|$)/api/utils/social/all
GET /?(?=/|$)/api/utils/sms//help
POST /?(?=/|$)/api/utils/sms//help
GET /?(?=/|$)/api/utils/sms/
POST /?(?=/|$)/api/utils/sms/
GET /?(?=/|$)/api/utils/universal_link//help
POST /?(?=/|$)/api/utils/universal_link//help
GET /?(?=/|$)/api/utils/universal_link/
POST /?(?=/|$)/api/utils/universal_link/
GET /?(?=/|$)/api/utils/static//help
POST /?(?=/|$)/api/utils/static//help
GET /?(?=/|$)/api/utils/static/
POST /?(?=/|$)/api/utils/static/
GET /?(?=/|$)/api/utils/static/privacy/help
POST /?(?=/|$)/api/utils/static/privacy/help
GET /?(?=/|$)/api/utils/static/privacy
POST /?(?=/|$)/api/utils/static/privacy
GET /?(?=/|$)/api/utils/static/toc/help
POST /?(?=/|$)/api/utils/static/toc/help
GET /?(?=/|$)/api/utils/static/toc
POST /?(?=/|$)/api/utils/static/toc
GET /?(?=/|$)/api/utils/trade//help
POST /?(?=/|$)/api/utils/trade//help
GET /?(?=/|$)/api/utils/trade/
POST /?(?=/|$)/api/utils/trade/
GET /?(?=/|$)/api/utils/trade/update_nse/help
POST /?(?=/|$)/api/utils/trade/update_nse/help
GET /?(?=/|$)/api/utils/trade/update_nse
POST /?(?=/|$)/api/utils/trade/update_nse
GET /?(?=/|$)/api/utils/trade/latest/help
POST /?(?=/|$)/api/utils/trade/latest/help
GET /?(?=/|$)/api/utils/trade/latest
POST /?(?=/|$)/api/utils/trade/latest
GET /?(?=/|$)/api/utils/trade/screen/help
POST /?(?=/|$)/api/utils/trade/screen/help
GET /?(?=/|$)/api/utils/trade/screen
POST /?(?=/|$)/api/utils/trade/screen
GET /?(?=/|$)/api/utils/trade/compute_indicator/help
POST /?(?=/|$)/api/utils/trade/compute_indicator/help
GET /?(?=/|$)/api/utils/trade/compute_indicator
POST /?(?=/|$)/api/utils/trade/compute_indicator
GET /?(?=/|$)/api/utils/trade/build_nse_indicator/help
POST /?(?=/|$)/api/utils/trade/build_nse_indicator/help
GET /?(?=/|$)/api/utils/trade/build_nse_indicator
POST /?(?=/|$)/api/utils/trade/build_nse_indicator
GET /?(?=/|$)/api/utils/trade/build_yahoo_indicator/help
POST /?(?=/|$)/api/utils/trade/build_yahoo_indicator/help
GET /?(?=/|$)/api/utils/trade/build_yahoo_indicator
POST /?(?=/|$)/api/utils/trade/build_yahoo_indicator
GET /?(?=/|$)/api/utils/trade/get_nse_eod/help
POST /?(?=/|$)/api/utils/trade/get_nse_eod/help
GET /?(?=/|$)/api/utils/trade/get_nse_eod
POST /?(?=/|$)/api/utils/trade/get_nse_eod
GET /?(?=/|$)/api/utils/trade/get_indicator/help
POST /?(?=/|$)/api/utils/trade/get_indicator/help
GET /?(?=/|$)/api/utils/trade/get_indicator
POST /?(?=/|$)/api/utils/trade/get_indicator
GET /?(?=/|$)/api/utils/trade/execute_screen/help
POST /?(?=/|$)/api/utils/trade/execute_screen/help
GET /?(?=/|$)/api/utils/trade/execute_screen
POST /?(?=/|$)/api/utils/trade/execute_screen
GET /?(?=/|$)/api/utils/trade/execute_backtest/help
POST /?(?=/|$)/api/utils/trade/execute_backtest/help
GET /?(?=/|$)/api/utils/trade/execute_backtest
POST /?(?=/|$)/api/utils/trade/execute_backtest
GET /?(?=/|$)/api/utils/trade/expert_call_result/help
POST /?(?=/|$)/api/utils/trade/expert_call_result/help
GET /?(?=/|$)/api/utils/trade/expert_call_result
POST /?(?=/|$)/api/utils/trade/expert_call_result
GET /?(?=/|$)/api/utils/trade/expert_result_intraday/help
POST /?(?=/|$)/api/utils/trade/expert_result_intraday/help
GET /?(?=/|$)/api/utils/trade/expert_result_intraday
POST /?(?=/|$)/api/utils/trade/expert_result_intraday
GET /?(?=/|$)/api/utils/trade/call_for_action/help
POST /?(?=/|$)/api/utils/trade/call_for_action/help
GET /?(?=/|$)/api/utils/trade/call_for_action
POST /?(?=/|$)/api/utils/trade/call_for_action
GET /?(?=/|$)/api/utils/trade/ltp/help
POST /?(?=/|$)/api/utils/trade/ltp/help
GET /?(?=/|$)/api/utils/trade/ltp
POST /?(?=/|$)/api/utils/trade/ltp
GET /?(?=/|$)/api/utils/trade/history/help
POST /?(?=/|$)/api/utils/trade/history/help
GET /?(?=/|$)/api/utils/trade/history
POST /?(?=/|$)/api/utils/trade/history
GET /?(?=/|$)/api/utils/heartbeat/ping/help
POST /?(?=/|$)/api/utils/heartbeat/ping/help
GET /?(?=/|$)/api/utils/heartbeat/ping
POST /?(?=/|$)/api/utils/heartbeat/ping
GET /?(?=/|$)/api/utils/heartbeat/status/help
POST /?(?=/|$)/api/utils/heartbeat/status/help
GET /?(?=/|$)/api/utils/heartbeat/status
POST /?(?=/|$)/api/utils/heartbeat/status
GET /?(?=/|$)/api/utils/system_db/reload/help
POST /?(?=/|$)/api/utils/system_db/reload/help
GET /?(?=/|$)/api/utils/system_db/reload
POST /?(?=/|$)/api/utils/system_db/reload
GET /?(?=/|$)/api/utils/system_db/update/help
POST /?(?=/|$)/api/utils/system_db/update/help
GET /?(?=/|$)/api/utils/system_db/update
POST /?(?=/|$)/api/utils/system_db/update
GET /?(?=/|$)/api/utils/aws/gen_presigned_s3_url/help
POST /?(?=/|$)/api/utils/aws/gen_presigned_s3_url/help
GET /?(?=/|$)/api/utils/aws/gen_presigned_s3_url
POST /?(?=/|$)/api/utils/aws/gen_presigned_s3_url
GET /?(?=/|$)/api/utils/aws/list_files/help
POST /?(?=/|$)/api/utils/aws/list_files/help
GET /?(?=/|$)/api/utils/aws/list_files
POST /?(?=/|$)/api/utils/aws/list_files
GET /?(?=/|$)/api/utils/aws/get_download_url/help
POST /?(?=/|$)/api/utils/aws/get_download_url/help
GET /?(?=/|$)/api/utils/aws/get_download_url
POST /?(?=/|$)/api/utils/aws/get_download_url
GET /?(?=/|$)/api/utils/bash//help
POST /?(?=/|$)/api/utils/bash//help
GET /?(?=/|$)/api/utils/bash/
POST /?(?=/|$)/api/utils/bash/
GET /?(?=/|$)/api/utils/bash/get_all_presets/help
POST /?(?=/|$)/api/utils/bash/get_all_presets/help
GET /?(?=/|$)/api/utils/bash/get_all_presets
POST /?(?=/|$)/api/utils/bash/get_all_presets
GET /?(?=/|$)/api/utils/yahoo_fin/historical_data/help
POST /?(?=/|$)/api/utils/yahoo_fin/historical_data/help
GET /?(?=/|$)/api/utils/yahoo_fin/historical_data
POST /?(?=/|$)/api/utils/yahoo_fin/historical_data
GET /?(?=/|$)/api/utils/yahoo_fin/historical_data_by_date/help
POST /?(?=/|$)/api/utils/yahoo_fin/historical_data_by_date/help
GET /?(?=/|$)/api/utils/yahoo_fin/historical_data_by_date
POST /?(?=/|$)/api/utils/yahoo_fin/historical_data_by_date
GET /?(?=/|$)/api/utils/schwab/pricehistory/help
POST /?(?=/|$)/api/utils/schwab/pricehistory/help
GET /?(?=/|$)/api/utils/schwab/pricehistory
POST /?(?=/|$)/api/utils/schwab/pricehistory
GET /?(?=/|$)/api/utils/schwab/quote/help
POST /?(?=/|$)/api/utils/schwab/quote/help
GET /?(?=/|$)/api/utils/schwab/quote
POST /?(?=/|$)/api/utils/schwab/quote
GET /?(?=/|$)/api/utils/schwab/chains/help
POST /?(?=/|$)/api/utils/schwab/chains/help
GET /?(?=/|$)/api/utils/schwab/chains
POST /?(?=/|$)/api/utils/schwab/chains
GET /?(?=/|$)/api/utils/schwab/get_all_data/help
POST /?(?=/|$)/api/utils/schwab/get_all_data/help
GET /?(?=/|$)/api/utils/schwab/get_all_data
POST /?(?=/|$)/api/utils/schwab/get_all_data
GET /?(?=/|$)/api/utils/schwab/submit_order/help
POST /?(?=/|$)/api/utils/schwab/submit_order/help
GET /?(?=/|$)/api/utils/schwab/submit_order
POST /?(?=/|$)/api/utils/schwab/submit_order
GET /?(?=/|$)/api/utils/schwab/cancel_order/help
POST /?(?=/|$)/api/utils/schwab/cancel_order/help
GET /?(?=/|$)/api/utils/schwab/cancel_order
POST /?(?=/|$)/api/utils/schwab/cancel_order
GET /?(?=/|$)/api/utils/schwab/list_chains/help
POST /?(?=/|$)/api/utils/schwab/list_chains/help
GET /?(?=/|$)/api/utils/schwab/list_chains
POST /?(?=/|$)/api/utils/schwab/list_chains
GET /?(?=/|$)/api/utils/schwab/submit_trailing_stop_order/help
POST /?(?=/|$)/api/utils/schwab/submit_trailing_stop_order/help
GET /?(?=/|$)/api/utils/schwab/submit_trailing_stop_order
POST /?(?=/|$)/api/utils/schwab/submit_trailing_stop_order
GET /?(?=/|$)/api/utils/schwab/submit_oco_order/help
POST /?(?=/|$)/api/utils/schwab/submit_oco_order/help
GET /?(?=/|$)/api/utils/schwab/submit_oco_order
POST /?(?=/|$)/api/utils/schwab/submit_oco_order
GET /?(?=/|$)/api/utils/schwab/submit_oto_order/help
POST /?(?=/|$)/api/utils/schwab/submit_oto_order/help
GET /?(?=/|$)/api/utils/schwab/submit_oto_order
POST /?(?=/|$)/api/utils/schwab/submit_oto_order
GET /?(?=/|$)/api/utils/schwab/submit_ott_order/help
POST /?(?=/|$)/api/utils/schwab/submit_ott_order/help
GET /?(?=/|$)/api/utils/schwab/submit_ott_order
POST /?(?=/|$)/api/utils/schwab/submit_ott_order
GET /?(?=/|$)/api/utils/schwab/submit_raw_order/help
POST /?(?=/|$)/api/utils/schwab/submit_raw_order/help
GET /?(?=/|$)/api/utils/schwab/submit_raw_order
POST /?(?=/|$)/api/utils/schwab/submit_raw_order
GET /?(?=/|$)/api/utils/schwab/submit_otooco_order/help
POST /?(?=/|$)/api/utils/schwab/submit_otooco_order/help
GET /?(?=/|$)/api/utils/schwab/submit_otooco_order
POST /?(?=/|$)/api/utils/schwab/submit_otooco_order
GET /?(?=/|$)/api/utils/schwab/net_delta/help
POST /?(?=/|$)/api/utils/schwab/net_delta/help
GET /?(?=/|$)/api/utils/schwab/net_delta
POST /?(?=/|$)/api/utils/schwab/net_delta
GET /?(?=/|$)/api/utils/schwab/proxy/help
POST /?(?=/|$)/api/utils/schwab/proxy/help
GET /?(?=/|$)/api/utils/schwab/proxy
POST /?(?=/|$)/api/utils/schwab/proxy
GET /?(?=/|$)/api/utils/telegram/send_msg/help
POST /?(?=/|$)/api/utils/telegram/send_msg/help
GET /?(?=/|$)/api/utils/telegram/send_msg
POST /?(?=/|$)/api/utils/telegram/send_msg
GET /?(?=/|$)/api/utils/preload_data//help
POST /?(?=/|$)/api/utils/preload_data//help
GET /?(?=/|$)/api/utils/preload_data/
POST /?(?=/|$)/api/utils/preload_data/
GET /?(?=/|$)/api/utils/system_config/get/help
POST /?(?=/|$)/api/utils/system_config/get/help
GET /?(?=/|$)/api/utils/system_config/get
POST /?(?=/|$)/api/utils/system_config/get
GET /?(?=/|$)/api/utils/system_config/set/help
POST /?(?=/|$)/api/utils/system_config/set/help
GET /?(?=/|$)/api/utils/system_config/set
POST /?(?=/|$)/api/utils/system_config/set
GET /?(?=/|$)/api/utils/system_config/delete/help
POST /?(?=/|$)/api/utils/system_config/delete/help
GET /?(?=/|$)/api/utils/system_config/delete
POST /?(?=/|$)/api/utils/system_config/delete
GET /?(?=/|$)/api/utils/system_config/copy_schwab_oauth_to_system_config/help
POST /?(?=/|$)/api/utils/system_config/copy_schwab_oauth_to_system_config/help
GET /?(?=/|$)/api/utils/system_config/copy_schwab_oauth_to_system_config
POST /?(?=/|$)/api/utils/system_config/copy_schwab_oauth_to_system_config
GET /?(?=/|$)/api/utils/admin_tools/logs/help
POST /?(?=/|$)/api/utils/admin_tools/logs/help
GET /?(?=/|$)/api/utils/admin_tools/logs
POST /?(?=/|$)/api/utils/admin_tools/logs
GET /?(?=/|$)/api/utils/admin_tools/clear_logs/help
POST /?(?=/|$)/api/utils/admin_tools/clear_logs/help
GET /?(?=/|$)/api/utils/admin_tools/clear_logs
POST /?(?=/|$)/api/utils/admin_tools/clear_logs
GET /?(?=/|$)/api/utils/admin_tools/api_usages/help
POST /?(?=/|$)/api/utils/admin_tools/api_usages/help
GET /?(?=/|$)/api/utils/admin_tools/api_usages
POST /?(?=/|$)/api/utils/admin_tools/api_usages
GET /?(?=/|$)/api/utils/openai/transcribe/help
POST /?(?=/|$)/api/utils/openai/transcribe/help
GET /?(?=/|$)/api/utils/openai/transcribe
POST /?(?=/|$)/api/utils/openai/transcribe
GET /?(?=/|$)/api/utils/proxy/get/help
POST /?(?=/|$)/api/utils/proxy/get/help
GET /?(?=/|$)/api/utils/proxy/get
POST /?(?=/|$)/api/utils/proxy/get
GET /?(?=/|$)/api/utils/hacker_news/get/help
POST /?(?=/|$)/api/utils/hacker_news/get/help
GET /?(?=/|$)/api/utils/hacker_news/get
POST /?(?=/|$)/api/utils/hacker_news/get
GET /?(?=/|$)/api/utils/llm/lamma/help
POST /?(?=/|$)/api/utils/llm/lamma/help
GET /?(?=/|$)/api/utils/llm/lamma
POST /?(?=/|$)/api/utils/llm/lamma
GET /?(?=/|$)/api/:_dbname/todo/help
POST /?(?=/|$)/api/:_dbname/todo/help
GET /?(?=/|$)/api/:_dbname/todo
POST /?(?=/|$)/api/:_dbname/todo
GET /?(?=/|$)/api/:_dbname/create/help
POST /?(?=/|$)/api/:_dbname/create/help
GET /?(?=/|$)/api/:_dbname/create
POST /?(?=/|$)/api/:_dbname/create
GET /?(?=/|$)/api/:_dbname/insert/help
POST /?(?=/|$)/api/:_dbname/insert/help
GET /?(?=/|$)/api/:_dbname/insert
POST /?(?=/|$)/api/:_dbname/insert
GET /?(?=/|$)/api/:_dbname/clone/help
POST /?(?=/|$)/api/:_dbname/clone/help
GET /?(?=/|$)/api/:_dbname/clone
POST /?(?=/|$)/api/:_dbname/clone
GET /?(?=/|$)/api/:_dbname/bulk_insert/help
POST /?(?=/|$)/api/:_dbname/bulk_insert/help
GET /?(?=/|$)/api/:_dbname/bulk_insert
POST /?(?=/|$)/api/:_dbname/bulk_insert
GET /?(?=/|$)/api/:_dbname/insertorupdate/help
POST /?(?=/|$)/api/:_dbname/insertorupdate/help
GET /?(?=/|$)/api/:_dbname/insertorupdate
POST /?(?=/|$)/api/:_dbname/insertorupdate
GET /?(?=/|$)/api/:_dbname/create_or_update_one/help
POST /?(?=/|$)/api/:_dbname/create_or_update_one/help
GET /?(?=/|$)/api/:_dbname/create_or_update_one
POST /?(?=/|$)/api/:_dbname/create_or_update_one
GET /?(?=/|$)/api/:_dbname/insert_or_update_one/help
POST /?(?=/|$)/api/:_dbname/insert_or_update_one/help
GET /?(?=/|$)/api/:_dbname/insert_or_update_one
POST /?(?=/|$)/api/:_dbname/insert_or_update_one
GET /?(?=/|$)/api/:_dbname/find/help
POST /?(?=/|$)/api/:_dbname/find/help
GET /?(?=/|$)/api/:_dbname/find
POST /?(?=/|$)/api/:_dbname/find
GET /?(?=/|$)/api/:_dbname/get/help
POST /?(?=/|$)/api/:_dbname/get/help
GET /?(?=/|$)/api/:_dbname/get
POST /?(?=/|$)/api/:_dbname/get
GET /?(?=/|$)/api/:_dbname//help
POST /?(?=/|$)/api/:_dbname//help
GET /?(?=/|$)/api/:_dbname/
POST /?(?=/|$)/api/:_dbname/
GET /?(?=/|$)/api/:_dbname/update/help
POST /?(?=/|$)/api/:_dbname/update/help
GET /?(?=/|$)/api/:_dbname/update
POST /?(?=/|$)/api/:_dbname/update
GET /?(?=/|$)/api/:_dbname/find_random/help
POST /?(?=/|$)/api/:_dbname/find_random/help
GET /?(?=/|$)/api/:_dbname/find_random
POST /?(?=/|$)/api/:_dbname/find_random
GET /?(?=/|$)/api/:_dbname/get_random/help
POST /?(?=/|$)/api/:_dbname/get_random/help
GET /?(?=/|$)/api/:_dbname/get_random
POST /?(?=/|$)/api/:_dbname/get_random
GET /?(?=/|$)/api/:_dbname//help
POST /?(?=/|$)/api/:_dbname//help
GET /?(?=/|$)/api/:_dbname/
POST /?(?=/|$)/api/:_dbname/
GET /?(?=/|$)/api/:_dbname/update_one/help
POST /?(?=/|$)/api/:_dbname/update_one/help
GET /?(?=/|$)/api/:_dbname/update_one
POST /?(?=/|$)/api/:_dbname/update_one
GET /?(?=/|$)/api/:_dbname/revision/help
POST /?(?=/|$)/api/:_dbname/revision/help
GET /?(?=/|$)/api/:_dbname/revision
POST /?(?=/|$)/api/:_dbname/revision
GET /?(?=/|$)/api/:_dbname/bulkupdate/help
POST /?(?=/|$)/api/:_dbname/bulkupdate/help
GET /?(?=/|$)/api/:_dbname/bulkupdate
POST /?(?=/|$)/api/:_dbname/bulkupdate
GET /?(?=/|$)/api/:_dbname/delete/help
POST /?(?=/|$)/api/:_dbname/delete/help
GET /?(?=/|$)/api/:_dbname/delete
POST /?(?=/|$)/api/:_dbname/delete
GET /?(?=/|$)/api/:_dbname/remove/help
POST /?(?=/|$)/api/:_dbname/remove/help
GET /?(?=/|$)/api/:_dbname/remove
POST /?(?=/|$)/api/:_dbname/remove
GET /?(?=/|$)/api/:_dbname/delete_fields/help
POST /?(?=/|$)/api/:_dbname/delete_fields/help
GET /?(?=/|$)/api/:_dbname/delete_fields
POST /?(?=/|$)/api/:_dbname/delete_fields
GET /?(?=/|$)/api/:_dbname/remove_fields/help
POST /?(?=/|$)/api/:_dbname/remove_fields/help
GET /?(?=/|$)/api/:_dbname/remove_fields
POST /?(?=/|$)/api/:_dbname/remove_fields
GET /?(?=/|$)/api/:_dbname/mdg/help
POST /?(?=/|$)/api/:_dbname/mdg/help
GET /?(?=/|$)/api/:_dbname/mdg
POST /?(?=/|$)/api/:_dbname/mdg
GET /?(?=/|$)/api/utils/mail/help
POST /?(?=/|$)/api/utils/mail/help
GET /?(?=/|$)/api/utils/mail
POST /?(?=/|$)/api/utils/mail
GET /?(?=/|$)/api/:_dbname/regex/help
POST /?(?=/|$)/api/:_dbname/regex/help
GET /?(?=/|$)/api/:_dbname/regex
POST /?(?=/|$)/api/:_dbname/regex
GET /?(?=/|$)/api/:_dbname/excel/help
POST /?(?=/|$)/api/:_dbname/excel/help
GET /?(?=/|$)/api/:_dbname/excel
POST /?(?=/|$)/api/:_dbname/excel
GET /?(?=/|$)/api/:_dbname/csv/help
POST /?(?=/|$)/api/:_dbname/csv/help
GET /?(?=/|$)/api/:_dbname/csv
POST /?(?=/|$)/api/:_dbname/csv
GET /?(?=/|$)/api/:_dbname/hits/help
POST /?(?=/|$)/api/:_dbname/hits/help
GET /?(?=/|$)/api/:_dbname/hits
POST /?(?=/|$)/api/:_dbname/hits
GET /?(?=/|$)/api/:_dbname/increment/help
POST /?(?=/|$)/api/:_dbname/increment/help
GET /?(?=/|$)/api/:_dbname/increment
POST /?(?=/|$)/api/:_dbname/increment
GET /?(?=/|$)/api/:_dbname/count/help
POST /?(?=/|$)/api/:_dbname/count/help
GET /?(?=/|$)/api/:_dbname/count
POST /?(?=/|$)/api/:_dbname/count
GET /?(?=/|$)/api/:_dbname/rankup/help
POST /?(?=/|$)/api/:_dbname/rankup/help
GET /?(?=/|$)/api/:_dbname/rankup
POST /?(?=/|$)/api/:_dbname/rankup
GET /?(?=/|$)/api/:_dbname/rankdown/help
POST /?(?=/|$)/api/:_dbname/rankdown/help
GET /?(?=/|$)/api/:_dbname/rankdown
POST /?(?=/|$)/api/:_dbname/rankdown
GET /?(?=/|$)/api/:_dbname/sum/help
POST /?(?=/|$)/api/:_dbname/sum/help
GET /?(?=/|$)/api/:_dbname/sum
POST /?(?=/|$)/api/:_dbname/sum
GET /?(?=/|$)/api/:_dbname/bulk_rank/help
POST /?(?=/|$)/api/:_dbname/bulk_rank/help
GET /?(?=/|$)/api/:_dbname/bulk_rank
POST /?(?=/|$)/api/:_dbname/bulk_rank
GET /?(?=/|$)/api/:_dbname/bulk_hit/help
POST /?(?=/|$)/api/:_dbname/bulk_hit/help
GET /?(?=/|$)/api/:_dbname/bulk_hit
POST /?(?=/|$)/api/:_dbname/bulk_hit
GET /?(?=/|$)/api/:_dbname/constraints/add/help
POST /?(?=/|$)/api/:_dbname/constraints/add/help
GET /?(?=/|$)/api/:_dbname/constraints/add
POST /?(?=/|$)/api/:_dbname/constraints/add
GET /?(?=/|$)/api/:_dbname/constraints/remove/help
POST /?(?=/|$)/api/:_dbname/constraints/remove/help
GET /?(?=/|$)/api/:_dbname/constraints/remove
POST /?(?=/|$)/api/:_dbname/constraints/remove
GET /?(?=/|$)/api/:_dbname/constraints/clear/help
POST /?(?=/|$)/api/:_dbname/constraints/clear/help
GET /?(?=/|$)/api/:_dbname/constraints/clear
POST /?(?=/|$)/api/:_dbname/constraints/clear
GET /?(?=/|$)/api/:_dbname/constraints/get/help
POST /?(?=/|$)/api/:_dbname/constraints/get/help
GET /?(?=/|$)/api/:_dbname/constraints/get
POST /?(?=/|$)/api/:_dbname/constraints/get
GET /?(?=/|$)/api/:_dbname/tags/add/help
POST /?(?=/|$)/api/:_dbname/tags/add/help
GET /?(?=/|$)/api/:_dbname/tags/add
POST /?(?=/|$)/api/:_dbname/tags/add
GET /?(?=/|$)/api/:_dbname/tags/remove/help
POST /?(?=/|$)/api/:_dbname/tags/remove/help
GET /?(?=/|$)/api/:_dbname/tags/remove
POST /?(?=/|$)/api/:_dbname/tags/remove
GET /?(?=/|$)/api/:_dbname/tags/clear/help
POST /?(?=/|$)/api/:_dbname/tags/clear/help
GET /?(?=/|$)/api/:_dbname/tags/clear
POST /?(?=/|$)/api/:_dbname/tags/clear
GET /?(?=/|$)/api/:_dbname/set/add/help
POST /?(?=/|$)/api/:_dbname/set/add/help
GET /?(?=/|$)/api/:_dbname/set/add
POST /?(?=/|$)/api/:_dbname/set/add
GET /?(?=/|$)/api/:_dbname/set/remove/help
POST /?(?=/|$)/api/:_dbname/set/remove/help
GET /?(?=/|$)/api/:_dbname/set/remove
POST /?(?=/|$)/api/:_dbname/set/remove
GET /?(?=/|$)/api/:_dbname/set/clear/help
POST /?(?=/|$)/api/:_dbname/set/clear/help
GET /?(?=/|$)/api/:_dbname/set/clear
POST /?(?=/|$)/api/:_dbname/set/clear
GET /?(?=/|$)/api/:_dbname/list/append/help
POST /?(?=/|$)/api/:_dbname/list/append/help
GET /?(?=/|$)/api/:_dbname/list/append
POST /?(?=/|$)/api/:_dbname/list/append
GET /?(?=/|$)/api/:_dbname/list/remove/help
POST /?(?=/|$)/api/:_dbname/list/remove/help
GET /?(?=/|$)/api/:_dbname/list/remove
POST /?(?=/|$)/api/:_dbname/list/remove
GET /?(?=/|$)/api/:_dbname/list/clear/help
POST /?(?=/|$)/api/:_dbname/list/clear/help
GET /?(?=/|$)/api/:_dbname/list/clear
POST /?(?=/|$)/api/:_dbname/list/clear
GET /?(?=/|$)/api/:_dbname/exist/help
POST /?(?=/|$)/api/:_dbname/exist/help
GET /?(?=/|$)/api/:_dbname/exist
POST /?(?=/|$)/api/:_dbname/exist
GET /?(?=/|$)/api/:_dbname/aggregate/help
POST /?(?=/|$)/api/:_dbname/aggregate/help
GET /?(?=/|$)/api/:_dbname/aggregate
POST /?(?=/|$)/api/:_dbname/aggregate
GET /?(?=/|$)/api/:_dbname/distribution/help
POST /?(?=/|$)/api/:_dbname/distribution/help
GET /?(?=/|$)/api/:_dbname/distribution
POST /?(?=/|$)/api/:_dbname/distribution
GET /?(?=/|$)/api/:_dbname/pivot/help
POST /?(?=/|$)/api/:_dbname/pivot/help
GET /?(?=/|$)/api/:_dbname/pivot
POST /?(?=/|$)/api/:_dbname/pivot
GET /?(?=/|$)/api/:_dbname/ts/help
POST /?(?=/|$)/api/:_dbname/ts/help
GET /?(?=/|$)/api/:_dbname/ts
POST /?(?=/|$)/api/:_dbname/ts
GET /?(?=/|$)/api/:_dbname/ts_multi/help
POST /?(?=/|$)/api/:_dbname/ts_multi/help
GET /?(?=/|$)/api/:_dbname/ts_multi
POST /?(?=/|$)/api/:_dbname/ts_multi
GET /?(?=/|$)/api/:_dbname/index/help
POST /?(?=/|$)/api/:_dbname/index/help
GET /?(?=/|$)/api/:_dbname/index
POST /?(?=/|$)/api/:_dbname/index
GET /?(?=/|$)/api/:_dbname/dbconfig/help
POST /?(?=/|$)/api/:_dbname/dbconfig/help
GET /?(?=/|$)/api/:_dbname/dbconfig
POST /?(?=/|$)/api/:_dbname/dbconfig
GET /?(?=/|$)/api/:_dbname/download/help
POST /?(?=/|$)/api/:_dbname/download/help
GET /?(?=/|$)/api/:_dbname/download
POST /?(?=/|$)/api/:_dbname/download
GET /?(?=/|$)/api/:_dbname/export/help
POST /?(?=/|$)/api/:_dbname/export/help
GET /?(?=/|$)/api/:_dbname/export
POST /?(?=/|$)/api/:_dbname/export
GET /?(?=/|$)/api/:_dbname/subentry/add/help
POST /?(?=/|$)/api/:_dbname/subentry/add/help
GET /?(?=/|$)/api/:_dbname/subentry/add
POST /?(?=/|$)/api/:_dbname/subentry/add
GET /?(?=/|$)/api/:_dbname/subentry/add_many/help
POST /?(?=/|$)/api/:_dbname/subentry/add_many/help
GET /?(?=/|$)/api/:_dbname/subentry/add_many
POST /?(?=/|$)/api/:_dbname/subentry/add_many
GET /?(?=/|$)/api/:_dbname/subentry/remove/help
POST /?(?=/|$)/api/:_dbname/subentry/remove/help
GET /?(?=/|$)/api/:_dbname/subentry/remove
POST /?(?=/|$)/api/:_dbname/subentry/remove
GET /?(?=/|$)/api/:_dbname/subentry/update/help
POST /?(?=/|$)/api/:_dbname/subentry/update/help
GET /?(?=/|$)/api/:_dbname/subentry/update
POST /?(?=/|$)/api/:_dbname/subentry/update
GET /?(?=/|$)/api/:_dbname/subentry/get/help
POST /?(?=/|$)/api/:_dbname/subentry/get/help
GET /?(?=/|$)/api/:_dbname/subentry/get
POST /?(?=/|$)/api/:_dbname/subentry/get
GET /?(?=/|$)/api/:_dbname/create_or_get/help
POST /?(?=/|$)/api/:_dbname/create_or_get/help
GET /?(?=/|$)/api/:_dbname/create_or_get
POST /?(?=/|$)/api/:_dbname/create_or_get
GET /?(?=/|$)/api/:_dbname/insert_or_get/help
POST /?(?=/|$)/api/:_dbname/insert_or_get/help
GET /?(?=/|$)/api/:_dbname/insert_or_get
POST /?(?=/|$)/api/:_dbname/insert_or_get
GET /?(?=/|$)/api/:_dbname/create_from_template/help
POST /?(?=/|$)/api/:_dbname/create_from_template/help
GET /?(?=/|$)/api/:_dbname/create_from_template
POST /?(?=/|$)/api/:_dbname/create_from_template
GET /?(?=/|$)/api/:_dbname/clone_from_template/help
POST /?(?=/|$)/api/:_dbname/clone_from_template/help
GET /?(?=/|$)/api/:_dbname/clone_from_template
POST /?(?=/|$)/api/:_dbname/clone_from_template
GET /?(?=/|$)/api/:_dbname/visibility/add/help
POST /?(?=/|$)/api/:_dbname/visibility/add/help
GET /?(?=/|$)/api/:_dbname/visibility/add
POST /?(?=/|$)/api/:_dbname/visibility/add
GET /?(?=/|$)/api/:_dbname/visibility/remove/help
POST /?(?=/|$)/api/:_dbname/visibility/remove/help
GET /?(?=/|$)/api/:_dbname/visibility/remove
POST /?(?=/|$)/api/:_dbname/visibility/remove
GET /?(?=/|$)/api/:_dbname/visibility/clear/help
POST /?(?=/|$)/api/:_dbname/visibility/clear/help
GET /?(?=/|$)/api/:_dbname/visibility/clear
POST /?(?=/|$)/api/:_dbname/visibility/clear
GET /?(?=/|$)/api/:_dbname/visibility/replace/help
POST /?(?=/|$)/api/:_dbname/visibility/replace/help
GET /?(?=/|$)/api/:_dbname/visibility/replace
POST /?(?=/|$)/api/:_dbname/visibility/replace
GET /?(?=/|$)/api/:_dbname/get_and_delete/help
POST /?(?=/|$)/api/:_dbname/get_and_delete/help
GET /?(?=/|$)/api/:_dbname/get_and_delete
POST /?(?=/|$)/api/:_dbname/get_and_delete
GET /?(?=/|$)/api/:_dbname/info/help
POST /?(?=/|$)/api/:_dbname/info/help
GET /?(?=/|$)/api/:_dbname/info
POST /?(?=/|$)/api/:_dbname/info
POST /api/raw/test
GET /examples/?(?=/|$)/
GET /examples/?(?=/|$)/:filename
GET /restart/?(?=/|$)/