Air Quality Monitor
Portable C application for collecting, storing, and analyzing air quality sensor readings
Loading...
Searching...
No Matches
data_cleanup.c
1#include "core/aqm_db.h"
2#include "core/globals.h"
3#include <stdio.h>
4#include <sqlite3.h>
5
6void cleanup_old_data(void) {
7 sqlite3 *db = NULL;
8 if (aqm_db_open(&db) != 0)
9 return;
10
11 char sql[160];
12 int n = snprintf(sql, sizeof(sql),
13 "DELETE FROM readings WHERE measured_at < datetime('now', '-%d days');",
14 retention_period);
15 if (n < 0 || (size_t)n >= sizeof(sql)) {
16 fprintf(stderr, "Invalid retention period.\n");
17 aqm_db_close(db);
18 return;
19 }
20
21 char *err = NULL;
22 if (sqlite3_exec(db, sql, NULL, NULL, &err) != SQLITE_OK) {
23 fprintf(stderr, "Cleanup error: %s\n", err ? err : sqlite3_errmsg(db));
24 sqlite3_free(err);
25 } else {
26 int changes = sqlite3_changes(db);
27 printf("Cleanup complete. Rows removed: %d (retention: %d days).\n", changes, retention_period);
28 }
29
30 aqm_db_close(db);
31}