diff --git a/src/core/core_calendar_share.erl b/src/core/core_calendar_share.erl index 14f415a..67ff75c 100644 --- a/src/core/core_calendar_share.erl +++ b/src/core/core_calendar_share.erl @@ -41,18 +41,31 @@ upsert(CalendarId, UserId, Rights, Mirror) -> -spec get(CalendarId :: binary(), UserId :: binary()) -> {ok, #calendar_share{}} | {error, not_found}. get(CalendarId, UserId) -> - case find_dirty(CalendarId, UserId) of + try find_dirty(CalendarId, UserId) of [Rec] -> {ok, Rec}; [] -> {error, not_found} + catch + exit:{aborted, {no_exists, _}} -> {error, not_found}; + error:_ -> {error, not_found} end. -spec list_by_calendar(CalendarId :: binary()) -> [#calendar_share{}]. list_by_calendar(CalendarId) -> - mnesia:dirty_match_object(#calendar_share{calendar_id = CalendarId, _ = '_'}). + try + mnesia:dirty_match_object(#calendar_share{calendar_id = CalendarId, _ = '_'}) + catch + exit:{aborted, {no_exists, _}} -> []; + error:_ -> [] + end. -spec list_by_user(UserId :: binary()) -> [#calendar_share{}]. list_by_user(UserId) -> - mnesia:dirty_match_object(#calendar_share{user_id = UserId, _ = '_'}). + try + mnesia:dirty_match_object(#calendar_share{user_id = UserId, _ = '_'}) + catch + exit:{aborted, {no_exists, _}} -> []; + error:_ -> [] + end. -spec delete(CalendarId :: binary(), UserId :: binary()) -> ok | {error, not_found | term()}. delete(CalendarId, UserId) -> diff --git a/test/unit/booking_integration_tests.erl b/test/unit/booking_integration_tests.erl index 34c6a64..1b173a6 100755 --- a/test/unit/booking_integration_tests.erl +++ b/test/unit/booking_integration_tests.erl @@ -2,7 +2,7 @@ -include_lib("eunit/include/eunit.hrl"). -include("records.hrl"). --define(TABLES, [user, calendar, event, booking, admin, subscription]). +-define(TABLES, [user, calendar, event, booking, admin, subscription, calendar_share]). setup() -> eh_test_support:start_mnesia(), diff --git a/test/unit/logic_booking_tests.erl b/test/unit/logic_booking_tests.erl index 33f6f6a..f553cf9 100755 --- a/test/unit/logic_booking_tests.erl +++ b/test/unit/logic_booking_tests.erl @@ -3,7 +3,7 @@ -include("records.hrl"). -define(TABLES, [user, calendar, event, booking, admin, subscription, calendar_specialist, - recurrence_exception, notification, push_subscription]). + recurrence_exception, notification, push_subscription, calendar_share]). setup() -> eh_test_support:start_mnesia(), diff --git a/test/unit/logic_calendar_tests.erl b/test/unit/logic_calendar_tests.erl index c2a04bc..a1d37d9 100755 --- a/test/unit/logic_calendar_tests.erl +++ b/test/unit/logic_calendar_tests.erl @@ -21,9 +21,15 @@ setup() -> {attributes, record_info(fields, calendar_specialist)}, {ram_copies, [node()]} ]), + mnesia:create_table(calendar_share, [ + {attributes, record_info(fields, calendar_share)}, + {ram_copies, [node()]}, + {index, [calendar_id, user_id]} + ]), ok. cleanup(_) -> + mnesia:delete_table(calendar_share), mnesia:delete_table(calendar_specialist), mnesia:delete_table(subscription), mnesia:delete_table(calendar), diff --git a/test/unit/logic_event_recurring_tests.erl b/test/unit/logic_event_recurring_tests.erl index 103dc87..8a62640 100644 --- a/test/unit/logic_event_recurring_tests.erl +++ b/test/unit/logic_event_recurring_tests.erl @@ -2,7 +2,7 @@ -include_lib("eunit/include/eunit.hrl"). -include("records.hrl"). --define(TABLES, [user, calendar, event, recurrence_exception]). +-define(TABLES, [user, calendar, event, recurrence_exception, calendar_share]). setup() -> eh_test_support:start_mnesia(), diff --git a/test/unit/logic_event_tests.erl b/test/unit/logic_event_tests.erl index be14f92..28af633 100644 --- a/test/unit/logic_event_tests.erl +++ b/test/unit/logic_event_tests.erl @@ -2,7 +2,7 @@ -include_lib("eunit/include/eunit.hrl"). -include("records.hrl"). --define(TABLES, [user, calendar, event, calendar_specialist, subscription]). +-define(TABLES, [user, calendar, event, calendar_specialist, subscription, calendar_share]). setup() -> eh_test_support:start_mnesia(), diff --git a/test/unit/logic_owner_specialist_tests.erl b/test/unit/logic_owner_specialist_tests.erl index 1e6ece3..2941499 100644 --- a/test/unit/logic_owner_specialist_tests.erl +++ b/test/unit/logic_owner_specialist_tests.erl @@ -2,7 +2,7 @@ -include_lib("eunit/include/eunit.hrl"). -include("records.hrl"). --define(TABLES, [user, calendar, calendar_specialist, subscription, event]). +-define(TABLES, [user, calendar, calendar_specialist, subscription, event, calendar_share]). setup() -> eh_test_support:start_mnesia(), diff --git a/test/unit/logic_search_tests.erl b/test/unit/logic_search_tests.erl index 4783038..a7fe114 100755 --- a/test/unit/logic_search_tests.erl +++ b/test/unit/logic_search_tests.erl @@ -2,7 +2,7 @@ -include_lib("eunit/include/eunit.hrl"). -include("records.hrl"). --define(TABLES, [user, calendar, event, subscription]). +-define(TABLES, [user, calendar, event, subscription, calendar_share]). setup() -> eh_test_support:start_mnesia(),