M module-db/Tables/AlarmEventsTable.cpp => module-db/Tables/AlarmEventsTable.cpp +7 -19
@@ 87,28 87,16 @@ bool AlarmEventsTable::add(AlarmEventsTableRow entry)
bool AlarmEventsTable::removeById(uint32_t id)
{
- return db->execute("DELETE FROM events "
- "WHERE events._id = (SELECT event_id FROM alarm_events WHERE _id=%lu);",
+ return db->execute("BEGIN TRANSACTION; "
+ "DELETE FROM events "
+ "WHERE events._id = (SELECT event_id FROM alarm_events WHERE _id=%lu); "
+ "DELETE FROM alarm_events "
+ "WHERE event_id = %lu; "
+ "COMMIT;",
+ id,
id);
}
-bool AlarmEventsTable::removeByField(AlarmEventsTableFields field, const char *str)
-{
- const auto &fieldName = getFieldName(field);
-
- if (fieldName.empty()) {
- return false;
- }
-
- return db->execute("DELETE e "
- "FROM events e "
- "INNER JOIN alarm_events ae "
- " ON e._id = ae.event_id "
- "WHERE %q = '%q';",
- fieldName.c_str(),
- str);
-}
-
bool AlarmEventsTable::update(AlarmEventsTableRow entry)
{
return db->execute(
M module-db/Tables/AlarmEventsTable.hpp => module-db/Tables/AlarmEventsTable.hpp +0 -1
@@ 57,7 57,6 @@ class AlarmEventsTable : public Table<AlarmEventsTableRow, AlarmEventsTableField
auto create() -> bool override;
auto add(AlarmEventsTableRow entry) -> bool override;
auto removeById(uint32_t id) -> bool override;
- auto removeByField(AlarmEventsTableFields field, const char *str) -> bool override;
auto update(AlarmEventsTableRow entry) -> bool override;
auto getById(uint32_t id) -> AlarmEventsTableRow override;
auto getLimitOffset(uint32_t offset, uint32_t limit) -> std::vector<AlarmEventsTableRow> override;
M module-db/tests/AlarmEventRecord_tests.cpp => module-db/tests/AlarmEventRecord_tests.cpp +39 -0
@@ 139,6 139,45 @@ TEST_CASE("AlarmEventRecord tests")
return alarmsRec;
};
+ SECTION("Add remove add")
+ {
+ auto retAlarmEvents = getLimitedQuery(0, 10);
+ REQUIRE(retAlarmEvents.size() == 0);
+
+ addQuery(testName1,
+ testEventStart,
+ testDuration,
+ testIsAllDay,
+ testRRuleDaily,
+ testMusicTone,
+ testEnabled,
+ testSnoozeDuration);
+
+ retAlarmEvents = getLimitedQuery(0, 10);
+ REQUIRE(retAlarmEvents.size() == 1);
+
+ const auto queryRemove = std::make_shared<db::query::alarmEvents::Remove>(1);
+ const auto retRemove = alarmEventRecordInterface.runQuery(queryRemove);
+ const auto resultRemove = dynamic_cast<db::query::alarmEvents::RemoveResult *>(retRemove.get());
+ REQUIRE(resultRemove != nullptr);
+ REQUIRE(resultRemove->getResult());
+
+ retAlarmEvents = getLimitedQuery(0, 10);
+ REQUIRE(retAlarmEvents.size() == 0);
+
+ addQuery(testName1,
+ testEventStart,
+ testDuration,
+ testIsAllDay,
+ testRRuleDaily,
+ testMusicTone,
+ testEnabled,
+ testSnoozeDuration);
+
+ retAlarmEvents = getLimitedQuery(0, 10);
+ REQUIRE(retAlarmEvents.size() == 1);
+ }
+
SECTION("Add & Get")
{
addQuery(testName1,