From 3c1a6c966f2016139c836d484d0c617d9ec9e110 Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Mon, 22 Jan 2024 20:18:21 +0100 Subject: [PATCH] right order handler methods --- src/kds_s2000w_handler.c | 96 ++++++++++++++++++++-------------------- 1 file changed, 48 insertions(+), 48 deletions(-) diff --git a/src/kds_s2000w_handler.c b/src/kds_s2000w_handler.c index d0d3d28..5064bbe 100644 --- a/src/kds_s2000w_handler.c +++ b/src/kds_s2000w_handler.c @@ -7,7 +7,53 @@ #include "kds_s2000w_handler.h" #include "kds_s2000w_client.h" -int64_t sessionid = 0; +int64_t _sessionid = 0; + +device_state kds_s2000w_handler_open() +{ + device_state return_state = NOTCONNECTED; + CURL *curl = curl_easy_init(); + if(!curl) + return NOTCONNECTED; + + response* resp = kds_s2000w_client_response_init(); + int result = kds_s2000w_client_open_session("hhaalo", resp); + + if (result != 0 || resp->code == 404) + return_state = NOTCONNECTED; + + if (resp->code == 423) + return_state = BUSY; + + json_object* resObj = NULL; + if (resp->code == 200) { + resObj = json_tokener_parse(resp->data); + json_object* valueObj = NULL; + json_object_object_get_ex(resObj, "SessionId", &valueObj); + _sessionid = json_object_get_int64(valueObj); + valueObj = NULL; + return_state = OPENED; + } + + json_object_put(resObj); + resObj = NULL; + kds_s2000w_client_response_free(resp); + + return return_state; +} + +void kds_s2000w_handler_close() +{ + if (_sessionid == 0) + return; + + CURL *curl = curl_easy_init(); + if(!curl) + return; + + kds_s2000w_client_close_session(_sessionid); + _sessionid = 0; +} void kds_s2000w_handler_get_option(int option, void* value) { @@ -22,7 +68,7 @@ void kds_s2000w_handler_get_option(int option, void* value) CURLU* url_handler = curl_url(); curl_url_set(url_handler, CURLUPART_URL, "http://scanner.lan.hhaalo.de/api/session", 0); char query[75]; - sprintf(query, "SessionId=%li", sessionid); + sprintf(query, "SessionId=%li", _sessionid); curl_url_set(url_handler, CURLUPART_QUERY, query, CURLU_APPENDQUERY | CURLU_URLENCODE); char* url = NULL; curl_url_get(url_handler, CURLUPART_URL, &url, 0); @@ -59,50 +105,4 @@ void kds_s2000w_handler_set_option(int option, void* value) void kds_s2000w_handler_set_option_auto(int option) { return; -} - -device_state kds_s2000w_handler_open() -{ - device_state return_state = NOTCONNECTED; - CURL *curl = curl_easy_init(); - if(!curl) - return NOTCONNECTED; - - response* resp = kds_s2000w_client_response_init(); - int result = kds_s2000w_client_open_session("hhaalo", resp); - - if (result != 0 || resp->code == 404) - return_state = NOTCONNECTED; - - if (resp->code == 423) - return_state = BUSY; - - json_object* resObj = NULL; - if (resp->code == 200) { - resObj = json_tokener_parse(resp->data); - json_object* valueObj = NULL; - json_object_object_get_ex(resObj, "SessionId", &valueObj); - sessionid = json_object_get_int64(valueObj); - valueObj = NULL; - return_state = OPENED; - } - - json_object_put(resObj); - resObj = NULL; - kds_s2000w_client_response_free(resp); - - return return_state; -} - -void kds_s2000w_handler_close() -{ - if (sessionid == 0) - return; - - CURL *curl = curl_easy_init(); - if(!curl) - return; - - kds_s2000w_client_close_session(sessionid); - sessionid = 0; } \ No newline at end of file -- 2.39.5