Skip to content

Commit

Permalink
prevent hanging await and return relative value
Browse files Browse the repository at this point in the history
  • Loading branch information
Zeedinstein committed Sep 24, 2023
1 parent 12f56be commit 2067fd6
Showing 1 changed file with 24 additions and 9 deletions.
33 changes: 24 additions & 9 deletions addons/godot-firebase/firestore/firestore_task.gd
Original file line number Diff line number Diff line change
Expand Up @@ -24,22 +24,22 @@ extends RefCounted
## Emitted when a request is completed. The request can be successful or not successful: if not, an [code]error[/code] Dictionary will be passed as a result.
## @arg-types Variant
signal task_finished(task)
## Emitted when a [code]add(document)[/code] request checked a [class FirebaseCollection] is successfully completed. [code]error()[/code] signal will be emitted otherwise.
## Emitted when a [code]add(document)[/code] request checked a [class FirebaseCollection] is successfully completed. [code]error()[/code] signal will be emitted otherwise and [code]null[/code] will be passed as a result..
## @arg-types FirestoreDocument
signal add_document(doc)
## Emitted when a [code]get(document)[/code] request checked a [class FirebaseCollection] is successfully completed. [code]error()[/code] signal will be emitted otherwise.
## Emitted when a [code]get(document)[/code] request checked a [class FirebaseCollection] is successfully completed. [code]error()[/code] signal will be emitted otherwise and [code]null[/code] will be passed as a result.
## @arg-types FirestoreDocument
signal get_document(doc)
## Emitted when a [code]update(document)[/code] request checked a [class FirebaseCollection] is successfully completed. [code]error()[/code] signal will be emitted otherwise.
## Emitted when a [code]update(document)[/code] request checked a [class FirebaseCollection] is successfully completed. [code]error()[/code] signal will be emitted otherwise and [code]null[/code] will be passed as a result.
## @arg-types FirestoreDocument
signal update_document(doc)
## Emitted when a [code]delete(document)[/code] request checked a [class FirebaseCollection] is successfully completed. [code]error()[/code] signal will be emitted otherwise.
## @arg-types FirestoreDocument
signal delete_document()
## Emitted when a [code]list(collection_id)[/code] request checked [class FirebaseFirestore] is successfully completed. [code]error()[/code] signal will be emitted otherwise.
## Emitted when a [code]delete(document)[/code] request checked a [class FirebaseCollection] is successfully completed and [code]true[/code] will be passed. [code]error()[/code] signal will be emitted otherwise and [code]false[/code] will be passed as a result.
## @arg-types bool
signal delete_document(success)
## Emitted when a [code]list(collection_id)[/code] request checked [class FirebaseFirestore] is successfully completed. [code]error()[/code] signal will be emitted otherwise and [code][][/code] will be passed as a result..
## @arg-types Array
signal listed_documents(documents)
## Emitted when a [code]query(collection_id)[/code] request checked [class FirebaseFirestore] is successfully completed. [code]error()[/code] signal will be emitted otherwise.
## Emitted when a [code]query(collection_id)[/code] request checked [class FirebaseFirestore] is successfully completed. [code]error()[/code] signal will be emitted otherwise and [code][][/code] will be passed as a result.
## @arg-types Array
signal result_query(result)
## Emitted when a request is [b]not[/b] successfully completed.
Expand Down Expand Up @@ -98,7 +98,7 @@ func _on_request_completed(result : int, response_code : int, headers : PackedSt
document = FirestoreDocument.new(bod)
update_document.emit(document)
Task.TASK_DELETE:
delete_document.emit()
delete_document.emit(true)
Task.TASK_QUERY:
data = []
for doc in bod:
Expand All @@ -116,6 +116,21 @@ func _on_request_completed(result : int, response_code : int, headers : PackedSt
else:
Firebase._printerr("Action in error was: " + str(action))
emit_error(task_error, bod, action)
match action:
Task.TASK_POST:
add_document.emit(null)
Task.TASK_GET:
get_document.emit(null)
Task.TASK_PATCH:
update_document.emit(null)
Task.TASK_DELETE:
delete_document.emit(false)
Task.TASK_QUERY:
data = []
result_query.emit(data)
Task.TASK_LIST:
data = []
listed_documents.emit(data)

task_finished.emit(self)

Expand Down

0 comments on commit 2067fd6

Please sign in to comment.