Skip to content

Commit b6ba1e7

Browse files
authored
Merge pull request #35 from fenix-hub/dev
update plugin
2 parents 2618b61 + 85eb346 commit b6ba1e7

File tree

6 files changed

+98
-58
lines changed

6 files changed

+98
-58
lines changed

addons/supabase/Auth/auth.gd

Lines changed: 43 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ func sign_out() -> AuthTask:
168168
var auth_task : AuthTask = AuthTask.new(
169169
AuthTask.Task.LOGOUT,
170170
_config.supabaseUrl + _logout_endpoint,
171-
_header)
171+
_header + _bearer)
172172
_process_task(auth_task)
173173
return auth_task
174174

@@ -273,45 +273,49 @@ func _process_task(task : AuthTask, _fake : bool = false) -> void:
273273

274274
func _on_task_completed(task : AuthTask) -> void:
275275
if task._handler!=null: task._handler.queue_free()
276-
if task.user != null:
277-
client = task.user
278-
_auth = client.access_token
279-
_bearer[0] = _bearer[0] % _auth
280-
_expires_in = client.expires_in
281-
match task._code:
282-
AuthTask.Task.SIGNUP:
283-
emit_signal("signed_up", client)
284-
AuthTask.Task.SIGNUPPHONEPASSWORD:
285-
emit_signal("signed_up_phone", client)
286-
AuthTask.Task.SIGNIN:
287-
emit_signal("signed_in", client)
288-
AuthTask.Task.SIGNINOTP:
289-
emit_signal("signed_in_otp", client)
290-
AuthTask.Task.UPDATE:
291-
emit_signal("user_updated", client)
292-
AuthTask.Task.REFRESH:
293-
emit_signal("token_refreshed", client)
294-
AuthTask.Task.VERIFYOTP:
295-
emit_signal("otp_verified")
296-
AuthTask.Task.SIGNINANONYM:
297-
emit_signal("signed_in_anonyous")
298-
refresh_token()
299-
elif task.data == null:
300-
match task._code:
301-
AuthTask.Task.MAGICLINK:
302-
emit_signal("magic_link_sent")
303-
AuthTask.Task.RECOVER:
304-
emit_signal("reset_email_sent")
305-
AuthTask.Task.INVITE:
306-
emit_signal("user_invited")
307-
AuthTask.Task.LOGOUT:
308-
emit_signal("signed_out")
309-
client = null
310-
_auth = ""
311-
_bearer = ["Authorization: Bearer %s"]
312-
_expires_in = 0
313-
elif task.error != null:
276+
277+
if task.error != null:
314278
emit_signal("error", task.error)
279+
else:
280+
if task.user != null:
281+
client = task.user
282+
_auth = client.access_token
283+
_bearer[0] = _bearer[0] % _auth
284+
_expires_in = client.expires_in
285+
match task._code:
286+
AuthTask.Task.SIGNUP:
287+
emit_signal("signed_up", client)
288+
AuthTask.Task.SIGNUPPHONEPASSWORD:
289+
emit_signal("signed_up_phone", client)
290+
AuthTask.Task.SIGNIN:
291+
emit_signal("signed_in", client)
292+
AuthTask.Task.SIGNINOTP:
293+
emit_signal("signed_in_otp", client)
294+
AuthTask.Task.UPDATE:
295+
emit_signal("user_updated", client)
296+
AuthTask.Task.REFRESH:
297+
emit_signal("token_refreshed", client)
298+
AuthTask.Task.VERIFYOTP:
299+
emit_signal("otp_verified")
300+
AuthTask.Task.SIGNINANONYM:
301+
emit_signal("signed_in_anonyous")
302+
refresh_token()
303+
else:
304+
if task.data.empty() or task.data == null:
305+
match task._code:
306+
AuthTask.Task.MAGICLINK:
307+
emit_signal("magic_link_sent")
308+
AuthTask.Task.RECOVER:
309+
emit_signal("reset_email_sent")
310+
AuthTask.Task.INVITE:
311+
emit_signal("user_invited")
312+
AuthTask.Task.LOGOUT:
313+
emit_signal("signed_out")
314+
client = null
315+
_auth = ""
316+
_bearer = ["Authorization: Bearer %s"]
317+
_expires_in = 0
318+
315319

316320
# A timer used to listen through TCP on the redirect uri of the request
317321
func _tcp_stream_timer() -> void:

addons/supabase/Auth/auth_task.gd

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,8 @@ func push_request(httprequest : HTTPRequest) -> void:
5454
_handler = httprequest
5555
_handler.connect("request_completed", self, "_on_task_completed")
5656
_handler.request(_endpoint, _headers, true, _method, to_json(_payload))
57+
yield(_handler, "request_completed")
58+
5759

5860
func _on_task_completed(result : int, response_code : int, headers : PoolStringArray, body : PoolByteArray) -> void:
5961
var result_body : Dictionary = JSON.parse(body.get_string_from_utf8()).result if body.get_string_from_utf8() else {}

addons/supabase/Database/database.gd

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ func _init(conf : Dictionary, head : PoolStringArray) -> void:
2424

2525
# Issue a query on your database
2626
func query(supabase_query : SupabaseQuery) -> DatabaseTask:
27-
_bearer = Supabase.auth._bearer
27+
_bearer = get_parent().auth._bearer
2828
var endpoint : String = _config.supabaseUrl + _rest_endpoint + supabase_query.build_query()
2929
var task : DatabaseTask = DatabaseTask.new()
3030
task._setup(
@@ -38,7 +38,7 @@ func query(supabase_query : SupabaseQuery) -> DatabaseTask:
3838

3939
# Issue an rpc() call to a function
4040
func rpc(function_name : String, arguments : Dictionary = {}, supabase_query : SupabaseQuery = null) -> DatabaseTask:
41-
_bearer = Supabase.auth._bearer
41+
_bearer = get_parent().auth._bearer
4242
var endpoint : String = _config.supabaseUrl + _rest_endpoint + "rpc/{function}".format({function = function_name}) + (supabase_query.build_query() if supabase_query!=null else "")
4343
var task : DatabaseTask = DatabaseTask.new()
4444
task._setup(

addons/supabase/Storage/storage.gd

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ func _init(config : Dictionary) -> void:
2323
name = "Storage"
2424

2525
func list_buckets() -> StorageTask:
26-
_bearer = Supabase.auth._bearer
26+
_bearer = get_parent().auth._bearer
2727
var endpoint : String = _config.supabaseUrl + _rest_endpoint + "bucket"
2828
var task : StorageTask = StorageTask.new()
2929
task._setup(
@@ -35,7 +35,7 @@ func list_buckets() -> StorageTask:
3535

3636

3737
func get_bucket(id : String) -> StorageTask:
38-
_bearer = Supabase.auth._bearer
38+
_bearer = get_parent().auth._bearer
3939
var endpoint : String = _config.supabaseUrl + _rest_endpoint + "bucket/" + id
4040
var task : StorageTask = StorageTask.new()
4141
task._setup(
@@ -47,7 +47,7 @@ func get_bucket(id : String) -> StorageTask:
4747

4848

4949
func create_bucket(_name : String, id : String, public : bool = false) -> StorageTask:
50-
_bearer = Supabase.auth._bearer
50+
_bearer = get_parent().auth._bearer
5151
var endpoint : String = _config.supabaseUrl + _rest_endpoint + "bucket"
5252
var task : StorageTask = StorageTask.new()
5353
task._setup(
@@ -60,7 +60,7 @@ func create_bucket(_name : String, id : String, public : bool = false) -> Storag
6060

6161

6262
func update_bucket(id : String, public : bool) -> StorageTask:
63-
_bearer = Supabase.auth._bearer
63+
_bearer = get_parent().auth._bearer
6464
var endpoint : String = _config.supabaseUrl + _rest_endpoint + "bucket/" + id
6565
var task : StorageTask = StorageTask.new()
6666
task._setup(
@@ -73,7 +73,7 @@ func update_bucket(id : String, public : bool) -> StorageTask:
7373

7474

7575
func empty_bucket(id : String) -> StorageTask:
76-
_bearer = Supabase.auth._bearer
76+
_bearer = get_parent().auth._bearer
7777
var endpoint : String = _config.supabaseUrl + _rest_endpoint + "bucket/" + id + "/empty"
7878
var task : StorageTask = StorageTask.new()
7979
task._setup(
@@ -85,7 +85,7 @@ func empty_bucket(id : String) -> StorageTask:
8585

8686

8787
func delete_bucket(id : String) -> StorageTask:
88-
_bearer = Supabase.auth._bearer
88+
_bearer = get_parent().auth._bearer
8989
var endpoint : String = _config.supabaseUrl + _rest_endpoint + "bucket/" + id
9090
var task : StorageTask = StorageTask.new()
9191
task._setup(
@@ -100,7 +100,7 @@ func from(id : String) -> StorageBucket:
100100
for bucket in get_children():
101101
if bucket.id == id:
102102
return bucket
103-
var storage_bucket : StorageBucket = StorageBucket.new(id, _config)
103+
var storage_bucket : StorageBucket = StorageBucket.new(id, _config, get_parent().auth._bearer)
104104
add_child(storage_bucket)
105105
return storage_bucket
106106

addons/supabase/Storage/storage_bucket.gd

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -62,16 +62,15 @@ var _response_code : int
6262
var id : String
6363

6464

65-
func _init(id : String , config : Dictionary) -> void:
65+
func _init(id : String , config : Dictionary, bearer : PoolStringArray) -> void:
6666
_config = config
6767
self.id = id
68-
_http_client
68+
_bearer = bearer
6969
name = "Bucket_"+id
7070
set_process_internal(false)
7171

7272

7373
func list(prefix : String = "", limit : int = 100, offset : int = 0, sort_by : Dictionary = {column = "name", order = "asc"} ) -> StorageTask:
74-
_bearer = Supabase.auth._bearer
7574
var endpoint : String = _config.supabaseUrl + _rest_endpoint + "list/" + id
7675
var task : StorageTask = StorageTask.new()
7776
var header : PoolStringArray = [_header[0] % "application/json"]
@@ -86,7 +85,6 @@ func list(prefix : String = "", limit : int = 100, offset : int = 0, sort_by : D
8685

8786
func upload(object : String, file_path : String, upsert : bool = false) -> StorageTask:
8887
requesting_raw = true
89-
_bearer = Supabase.auth._bearer
9088
var task : StorageTask = StorageTask.new()
9189
var endpoint : String = _config.supabaseUrl + _rest_endpoint + id + "/" + object
9290
var file : File = File.new()
@@ -114,7 +112,6 @@ func upload(object : String, file_path : String, upsert : bool = false) -> Stora
114112

115113
func update(bucket_path : String, file_path : String) -> StorageTask:
116114
requesting_raw = true
117-
_bearer = Supabase.auth._bearer
118115
var endpoint : String = _config.supabaseUrl + _rest_endpoint + id + "/" + bucket_path
119116
var file : File = File.new()
120117
file.open(file_path, File.READ)
@@ -136,7 +133,6 @@ func update(bucket_path : String, file_path : String) -> StorageTask:
136133

137134

138135
func move(source_path : String, destination_path : String) -> StorageTask:
139-
_bearer = Supabase.auth._bearer
140136
var endpoint : String = _config.supabaseUrl + _rest_endpoint + "move"
141137
var task : StorageTask = StorageTask.new()
142138
var header : PoolStringArray = [_header[0] % "application/json"]
@@ -150,7 +146,6 @@ func move(source_path : String, destination_path : String) -> StorageTask:
150146

151147

152148
func create_signed_url(object : String, expires_in : int = 60000) -> StorageTask:
153-
_bearer = Supabase.auth._bearer
154149
var endpoint : String = _config.supabaseUrl + _rest_endpoint + "sign/" + id + "/" + object
155150
var task : StorageTask = StorageTask.new()
156151
var header : PoolStringArray = [_header[0] % "application/json"]
@@ -166,7 +161,6 @@ func create_signed_url(object : String, expires_in : int = 60000) -> StorageTask
166161

167162
func download(object : String, to_path : String = "", private : bool = false) -> StorageTask:
168163
if not private:
169-
_bearer = Supabase.auth._bearer
170164
var endpoint : String = _config.supabaseUrl + _rest_endpoint + "public/" + id + "/" + object
171165
var task : StorageTask = StorageTask.new()
172166
var header : PoolStringArray = [_header[0] % "application/json"]
@@ -178,7 +172,6 @@ func download(object : String, to_path : String = "", private : bool = false) ->
178172
_process_task(task, {download_file = to_path})
179173
return task
180174
else:
181-
_bearer = Supabase.auth._bearer
182175
var endpoint : String = _config.supabaseUrl + _rest_endpoint + "authenticated/" + id + "/" + object
183176
var task : StorageTask = StorageTask.new()
184177
var header : PoolStringArray = [_header[0] % "application/json"]
@@ -196,7 +189,6 @@ func get_public_url(object : String) -> String:
196189

197190

198191
func remove(objects : PoolStringArray) -> StorageTask:
199-
_bearer = Supabase.auth._bearer
200192
var endpoint : String = _config.supabaseUrl + _rest_endpoint + id + ("/" + objects[0] if objects.size() == 1 else "")
201193
var task : StorageTask = StorageTask.new()
202194
var header : PoolStringArray = [_header[0] % "application/json"]

addons/supabase/User/user.gd

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
extends Reference
2+
class_name SupabaseUser
3+
4+
var email : String
5+
var id : String
6+
var access_token : String
7+
var token_type : String
8+
var refresh_token : String
9+
var expires_in : float
10+
var created_at : String
11+
var updated_at : String
12+
var last_sign_in_at : String
13+
var user : Dictionary
14+
var user_metadata : Dictionary
15+
var app_metadata : Dictionary
16+
var role : String
17+
var confirmation_sent_at : String
18+
19+
func _init(user_dictionary : Dictionary) -> void:
20+
if user_dictionary.has("user"):
21+
access_token = user_dictionary.access_token
22+
token_type = user_dictionary.token_type
23+
refresh_token = user_dictionary.refresh_token
24+
expires_in = user_dictionary.expires_in
25+
user = user_dictionary.user
26+
last_sign_in_at = user.last_sign_in_at
27+
else:
28+
user = user_dictionary
29+
confirmation_sent_at = user.confirmation_sent_at
30+
31+
email = user.email
32+
id = user.id
33+
created_at = user.created_at
34+
updated_at = user.updated_at
35+
user_metadata = user.user_metadata if user.user_metadata != null else {}
36+
role = user.role
37+
38+
func _to_string():
39+
var to_string : String = "%-10s %s\n" % ["USER ID:", id]
40+
to_string += "%-10s %s\n" % ["EMAIL:", email]
41+
to_string += "%-10s %s\n" % ["ROLE:", role]
42+
return to_string

0 commit comments

Comments
 (0)