#!/bin/sh
# Copyright (C) 2018 devolo AG

timer_prefix_foreach() {
    local prefix="${1}"
    local function="${2}"
    local matched="$(ubus call timer list | jsonfilter -e "@.ids[@~\"^$prefix\"]")"
    local timer_id

    for timer_id in $matched; do
        local name="${timer_id#$prefix}"
        eval "$function \"$timer_id\" \"$name\""
    done
}

timer_foreach() {
    local function="${1}"

    timer_prefix_foreach "" "$function"
}

timer_query() {
    local id="${1}"
    ubus call timer query "{\"id\":\"$id\"}"
}

timer_get_remaining() {
    jsonfilter -s "$(timer_query "${1}")" -e '$.remaining'
}

timer_get_state() {
    jsonfilter -s "$(timer_query "${1}")" -e '$.state'
}

timer_get_initial_timeout() {
    jsonfilter -s "$(timer_query "${1}")" -e '$.timeout'
}