change network request callback
This commit is contained in:
@@ -63,7 +63,9 @@ First line<br/>Second line
|
|||||||
* `http:put(url, [id])` - выполняет запрос HTTP PUT;
|
* `http:put(url, [id])` - выполняет запрос HTTP PUT;
|
||||||
* `http:delete(url, [id])` - выполняет запрос HTTP DELETE.
|
* `http:delete(url, [id])` - выполняет запрос HTTP DELETE.
|
||||||
|
|
||||||
Эти функции не возвращают никакого значения, а вместо этого вызывают колбек `on_network_result(string, [code], [id])`. Первый аргумент: тело ответа, второй (опциональный) - код (200, 404 и т.д.), третий (опциональный) - строка, идентифицирующая запрос, если она была указана в запросе.
|
Эти функции не возвращают никакого значения, а вместо этого вызывают колбек `on_network_result(string, [code])`. Первый аргумент: тело ответа, второй (опциональный) - код (200, 404 и т.д.).
|
||||||
|
|
||||||
|
Если в запросе был указан `id`, то функция вместо описанного выше колбека вызовет `on_network_result_$id(string, [code])`. То есть если id равен "server1", то колбек будет иметь вид `on_network_result_server1(string, [code])`.
|
||||||
|
|
||||||
# Функции обработки данных
|
# Функции обработки данных
|
||||||
|
|
||||||
|
|||||||
@@ -1,25 +1,20 @@
|
|||||||
|
ip_service_url = "https://freegeoip.app/json/"
|
||||||
|
addr_service_url = "https://nominatim.openstreetmap.org/reverse?format=json"
|
||||||
|
|
||||||
function on_alarm()
|
function on_alarm()
|
||||||
request_ip()
|
http:get(ip_service_url, "ip")
|
||||||
end
|
end
|
||||||
|
|
||||||
function on_network_result(result, code, id)
|
function on_network_result_ip(result)
|
||||||
if id == "ip" then
|
local location = {
|
||||||
local location = {
|
ajson:get_value(result, "object string:latitude"),
|
||||||
ajson:get_value(result, "object string:latitude"),
|
ajson:get_value(result, "object string:longitude")
|
||||||
ajson:get_value(result, "object string:longitude")
|
}
|
||||||
}
|
http:get(addr_service_url.."&lat="..location[1].."&lon=".. location[2].."&addressdetails=1", "addr")
|
||||||
request_addr(location)
|
|
||||||
elseif id == "adr" then
|
|
||||||
local adr = ajson:get_value(result, "object string:display_name")
|
|
||||||
ui:show_text(adr)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
function request_ip()
|
function on_network_result_addr(result)
|
||||||
http:get("https://freegeoip.app/json/", "ip")
|
local adr = ajson:get_value(result, "object string:display_name")
|
||||||
end
|
ui:show_text(adr)
|
||||||
|
|
||||||
function request_addr(location)
|
|
||||||
http:get("https://nominatim.openstreetmap.org/reverse?format=json&lat="..location[1].."&lon=".. location[2].."&addressdetails=1", "adr")
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user