first commit
This commit is contained in:
56
godot_client/scripts/models/api_response.gd
Normal file
56
godot_client/scripts/models/api_response.gd
Normal file
@@ -0,0 +1,56 @@
|
||||
extends RefCounted
|
||||
class_name APIResponse
|
||||
## API Response Model
|
||||
##
|
||||
## Represents a response from the Flask backend API.
|
||||
## Matches the backend response format:
|
||||
## {
|
||||
## "app": "Code of Conquest",
|
||||
## "version": "0.1.0",
|
||||
## "status": 200,
|
||||
## "timestamp": "2025-11-16T...",
|
||||
## "result": {...},
|
||||
## "error": {...},
|
||||
## "meta": {...}
|
||||
## }
|
||||
|
||||
var app: String
|
||||
var version: String
|
||||
var status: int
|
||||
var timestamp: String
|
||||
var result: Variant
|
||||
var error: Dictionary
|
||||
var meta: Dictionary
|
||||
var raw_response: String
|
||||
|
||||
|
||||
func _init(json_data: Dictionary) -> void:
|
||||
app = json_data.get("app", "")
|
||||
version = json_data.get("version", "")
|
||||
status = json_data.get("status", 0)
|
||||
timestamp = json_data.get("timestamp", "")
|
||||
result = json_data.get("result", null)
|
||||
|
||||
# Handle Dictionary fields that might be null
|
||||
var error_data = json_data.get("error", null)
|
||||
error = error_data if error_data != null else {}
|
||||
|
||||
var meta_data = json_data.get("meta", null)
|
||||
meta = meta_data if meta_data != null else {}
|
||||
|
||||
|
||||
## Check if the request was successful (2xx status)
|
||||
func is_success() -> bool:
|
||||
return status >= 200 and status < 300
|
||||
|
||||
|
||||
## Check if there's an error
|
||||
func has_error() -> bool:
|
||||
return not error.is_empty() or status >= 400
|
||||
|
||||
|
||||
## Get error message if present
|
||||
func get_error_message() -> String:
|
||||
if error.has("message"):
|
||||
return error["message"]
|
||||
return ""
|
||||
Reference in New Issue
Block a user