extends Button

@export var username_field: LineEdit
@export var password_field: LineEdit
@export var http_request: HTTPRequest
var url: String = "http://localhost:8080/api/v1/player/login"
var headers = ["Content-Type: application/json"]


func _ready() -> void:
	if not username_field:
		push_error("No Username Field set")
		return
	if not password_field:
		push_error("No Password Field set")
		return
	if not http_request:
		push_error("No Http Request set")
		return
	connect("pressed", login)


func login() -> void:
	var login_data = {
		"username": username_field.text,
		"password": password_field.text,
	}
	var json = JSON.stringify(login_data)
	http_request.connect("request_completed", on_login_response)
	http_request.request(url, headers, HTTPClient.METHOD_POST, json)


func on_login_response(
	_result: int,
	_response_code: int,
	_headers: PackedStringArray,
	body: PackedByteArray,
) -> void:
	print(body.get_string_from_utf8())