defmodule Circlex.Emulator.Logic.SubscriptionLogic do
import Circlex.Emulator.Logic.LogicUtil
alias Circlex.Struct.Subscription
def get_subscription(subscriptions, subscription_id) do
find(subscriptions, fn %Subscription{id: id} -> id == subscription_id end)
end
def add_subscription(subscriptions, subscription) do
{:ok, [subscription | subscriptions]}
end
def update_subscription(subscriptions, subscription_id, f) do
update(subscriptions, fn %Subscription{id: id} -> id == subscription_id end, f)
end
def remove_subscription(subscriptions, subscription_id) do
update(subscriptions, fn %Subscription{id: id} -> id == subscription_id end, fn _ ->
nil
end)
end
end