File tree 2 files changed +8099
-0
lines changed
2 files changed +8099
-0
lines changed Original file line number Diff line number Diff line change
1
+ -- surrealdb wrapper
2
+ --
3
+ -- Usage : Surreal.sql("select * from customers").result
4
+ --
5
+
6
+ SurrealToken = " "
7
+ SurrealConfig = {}
8
+
9
+ LastDBConnect = GetTime ()
10
+
11
+ local function auth (db_config )
12
+ SurrealConfig = db_config
13
+
14
+ local ok , headers , body =
15
+ Fetch (
16
+ SurrealConfig .url .. " /signin" ,
17
+ {
18
+ method = " POST" ,
19
+ body = EncodeJson ({
20
+ user = db_config .username ,
21
+ pass = db_config .password
22
+ }) or " " ,
23
+ headers = {
24
+ [" Accept" ] = " application/json"
25
+ }
26
+ }
27
+ )
28
+
29
+ if ok == 200 then
30
+ SurrealToken = DecodeJson (body )[" token" ]
31
+ end
32
+
33
+ return SurrealToken
34
+ end
35
+
36
+ local function surreal_sql (sql )
37
+ local ok , headers , body =
38
+ Fetch (
39
+ SurrealConfig .url .. " /sql" ,
40
+ {
41
+ method = " POST" ,
42
+ body = sql ,
43
+ headers = {
44
+ [" Authorization" ] = " Bearer " .. SurrealToken ,
45
+ [" NS" ] = SurrealConfig .ns ,
46
+ [" DB" ] = SurrealConfig .db ,
47
+ [" Accept" ] = " application/json"
48
+ }
49
+ }
50
+ )
51
+
52
+ return DecodeJson (body )[1 ]
53
+ end
54
+
55
+ local function refresh_token ()
56
+ if GetTime () - LastDBConnect > 600 then
57
+ auth (SurrealConfig )
58
+ LastDBConnect = GetTime ()
59
+ end
60
+ end
61
+
62
+ return {
63
+ auth = auth ,
64
+ sql = surreal_sql ,
65
+ refresh_token = refresh_token
66
+ }
You can’t perform that action at this time.
0 commit comments