api_return SystemApi::handleSetAway(ApiRequest& aRequest) { auto away = JsonUtil::getField<bool>("away", aRequest.getRequestBody()); ActivityManager::getInstance()->setAway(away ? AWAY_MANUAL : AWAY_OFF); aRequest.setResponseBody(serializeAwayState()); return websocketpp::http::status_code::ok; }
void SystemApi::onTimer() noexcept { if (!subscriptionActive("away_state")) { return; } auto newState = serializeAwayState(); if (newState == previousAway) { return; } previousAway = newState; send("away_state", newState); }
api_return SystemApi::handleGetAwayState(ApiRequest& aRequest) { aRequest.setResponseBody(serializeAwayState()); return websocketpp::http::status_code::ok; }
void SystemApi::on(ActivityManagerListener::AwayModeChanged, AwayMode /*aNewMode*/) noexcept { send("away_state", serializeAwayState()); }