diff --git a/addons/sammi/lib/sammi_api.gd b/addons/sammi/lib/sammi_api.gd index dbd35c6..340db5c 100644 --- a/addons/sammi/lib/sammi_api.gd +++ b/addons/sammi/lib/sammi_api.gd @@ -74,13 +74,16 @@ func set_variable(name: String, value: Variant, button_id: String = "") -> bool: last_error_description = response.error_message return false -func delete_variable(name: String, button_id) -> bool: - var api_path: String = "/api" % name +func delete_variable(name: String, button_id: String = "") -> bool: + var api_path: String = "/api" var req: Dictionary = { "request": "deleteVariable", - "name": name, - "buttonID": button_id + "name": name } + + if button_id != "": + req["buttonID"] = button_id + client.request(SammiClient.Method.POST, api_path, JSON.stringify(req)) var response: SammiClient.SammiResponse = await client.request_completed if response.code == 200: diff --git a/addons/sammi/lib/sammi_client.gd b/addons/sammi/lib/sammi_client.gd index ac40636..db23a3a 100644 --- a/addons/sammi/lib/sammi_client.gd +++ b/addons/sammi/lib/sammi_client.gd @@ -43,6 +43,7 @@ func request(method: Method, api_path: String, body: String) -> void: self.query = api_path self.body = body + self.method = method self.client = StreamPeerTCP.new() self.client.connect_to_host(host, port) self.state = State.CONNECTING @@ -51,11 +52,6 @@ func _process(_delta: float) -> void: if not client: return - if state == State.CLOSED: - client.disconnect_from_host() - client = null - return - client.poll() if client.get_status() == StreamPeerTCP.Status.STATUS_CONNECTED and state == State.CONNECTING: state = State.REQUESTING @@ -130,8 +126,12 @@ func _read_response() -> void: buffer.append_array(chunk[1]) else: response = SammiResponse.new(headers, buffer, query) - request_completed.emit(response) state = State.CLOSED + headers = [] + buffer = [] + client.disconnect_from_host() + client = null + request_completed.emit(response) class SammiResponse: