~aleteoryx/muditaos

0f216d9c2c54ea9e38fb98b924e749a7f67b2487 — Paweł Joński 4 years ago a0c5295
[BH-743] Fix query get recurring events between range

Fix query for get recurring events between range request
2 files changed, 10 insertions(+), 2 deletions(-)

M module-db/Tables/AlarmEventsTable.cpp
M module-db/tests/AlarmEventRecord_tests.cpp
M module-db/Tables/AlarmEventsTable.cpp => module-db/Tables/AlarmEventsTable.cpp +2 -2
@@ 204,8 204,8 @@ std::vector<AlarmEventsTableRow> AlarmEventsTable::getRecurringBetweenDates(Time
{
    auto retQuery = db->query("SELECT * FROM events e "
                              "JOIN alarm_events ae ON ae.event_id = e._id "
                              "WHERE start_date BETWEEN '%q' and '%q' "
                              "OR (start_date <= '%q' AND end_date >= '%q') "
                              "WHERE (start_date BETWEEN '%q' and '%q' "
                              "OR (start_date <= '%q' AND end_date >= '%q')) "
                              "AND rrule <> '' "
                              "ORDER BY start_date LIMIT %lu OFFSET %lu;",
                              TimePointToString(startDate).c_str(),

M module-db/tests/AlarmEventRecord_tests.cpp => module-db/tests/AlarmEventRecord_tests.cpp +8 -0
@@ 480,6 480,14 @@ TEST_CASE("AlarmEventRecord tests")
                 testMusicTone,
                 testEnabled,
                 testSnoozeDuration);
        addQuery("TestAlarmName4",
                 testEventStart,
                 testDuration,
                 testIsAllDay,
                 testEmptyRRuleText,
                 testMusicTone,
                 testEnabled,
                 testSnoozeDuration);
        auto alarms = getRecurringBetweenDatesQuery(
            TimePointFromString("2020-01-01 12:00:00"), TimePointFromString("2020-01-11 11:00:00"), 0, 100);
        REQUIRE(alarms.size() == 0);