add: more basic macro stuff

add: more efficient relay loading (only ids)
This commit is contained in:
Tobias Reisinger 2020-08-29 23:51:45 +02:00
parent f67b7e9e0f
commit 0103b0b2ff
7 changed files with 555 additions and 7 deletions

View file

@ -2,6 +2,7 @@
#include <logger.h>
#include <sql/cache.h>
#include <models/junction_tag.h>
#include <models/junction_relay_schedule.h>
sqlite3 *cache_database;
@ -134,14 +135,14 @@ cache_invalidate_schedule(int schedule_id)
sprintf(key, "schedule_json:%d", schedule_id);
cache_invalidate(key);
relay_t **relays = relay_get_with_schedule(schedule_id);
int *relay_ids = junction_relay_schedule_get_relay_ids_with_schedule(schedule_id);
for(int i = 0; relays[i] != NULL; ++i)
for(int i = 0; relay_ids[i] != 0; ++i)
{
cache_invalidate_relay(relays[i]->id, -1);
cache_invalidate_relay(relay_ids[i], -1);
}
relay_free_list(relays);
free(relay_ids);
}
@ -208,6 +209,34 @@ cache_invalidate_controller(int controller_id)
cache_invalidate(key);
}
void
cache_put_json_macro(int macro_id, char *macro_json)
{
char key[32];
sprintf(key, "macro_json:%d", macro_id);
cache_insert_value(key, macro_json);
}
char*
cache_get_json_macro(int macro_id)
{
char key[32];
sprintf(key, "macro_json:%d", macro_id);
return cache_get_value(key);
}
void
cache_invalidate_macro(int macro_id)
{
char key[32];
sprintf(key, "macro_json:%d", macro_id);
cache_invalidate(key);
}
void
cache_invalidate_tagged(int tag_id)
{