|  |  | @ -2,28 +2,23 @@ | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | #include <db/db.h> | 
			
		
	
		
			
				
					|  |  |  | #include <db/statements/builder/SelectStatementBuilder.h> | 
			
		
	
		
			
				
					|  |  |  | #include <util/calendar_parsing.h> | 
			
		
	
		
			
				
					|  |  |  | #include <util/notifications.h> | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | namespace db { | 
			
		
	
		
			
				
					|  |  |  |   void fetch_alarms(sql::Database *db, uint32_t interval) { | 
			
		
	
		
			
				
					|  |  |  |     std::time_t now = std::time(nullptr); | 
			
		
	
		
			
				
					|  |  |  |     stmt::Statement select_alarms = stmt::Statement::select().columns("dtstart, summary, description").from_table("alarms").inner_join("events", "events.rowid = alarms.eventID").where("dtstart<? AND dtstart>?").close(); | 
			
		
	
		
			
				
					|  |  |  |     DEBUG << select_alarms.str(); | 
			
		
	
		
			
				
					|  |  |  |     stmt::Statement select_alarms = stmt::Statement::select().columns("absolute_trigger, summary, description").from_table("alarms").inner_join("events", "events.id = alarms.event_id").where("absolute_trigger > " + std::to_string(now) + " AND absolute_trigger < " + std::to_string(now + interval)).close(); | 
			
		
	
		
			
				
					|  |  |  |     try { | 
			
		
	
		
			
				
					|  |  |  |       sql::Statement query(*db, select_alarms.str()); | 
			
		
	
		
			
				
					|  |  |  |       query.bind(1, now + interval); | 
			
		
	
		
			
				
					|  |  |  |       query.bind(2, now); | 
			
		
	
		
			
				
					|  |  |  |       DEBUG << query.getExpandedSQL(); | 
			
		
	
		
			
				
					|  |  |  |       while (query.executeStep()) | 
			
		
	
		
			
				
					|  |  |  |       { | 
			
		
	
		
			
				
					|  |  |  |         uint32_t dtstart = query.getColumn(0); | 
			
		
	
		
			
				
					|  |  |  |       while (query.executeStep()) { | 
			
		
	
		
			
				
					|  |  |  |         uint32_t absolute_trigger = query.getColumn(0); | 
			
		
	
		
			
				
					|  |  |  |         std::string summary = query.getColumn(1); | 
			
		
	
		
			
				
					|  |  |  |         std::string description = query.getColumn(2); | 
			
		
	
		
			
				
					|  |  |  |         DEBUG << dtstart << ", " << summary << ", " << description; | 
			
		
	
		
			
				
					|  |  |  |         util::notify(description, summary + std::to_string(absolute_trigger - now)); | 
			
		
	
		
			
				
					|  |  |  |       } | 
			
		
	
		
			
				
					|  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |     catch (std::exception& e) | 
			
		
	
		
			
				
					|  |  |  |     { | 
			
		
	
		
			
				
					|  |  |  |     } catch (std::exception& e) { | 
			
		
	
		
			
				
					|  |  |  |         std::cout << "Exception: " << e.what() << std::endl; | 
			
		
	
		
			
				
					|  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |   } | 
			
		
	
	
		
			
				
					|  |  | 
 |