TeaVent v0.1.0 TeaVent.Example View Source

An example of how to use TeaVent:

iex> state = %{users: %{1 => User.new("Jose")}, events: []}
iex> state = TeaVent.Example.dispatch([:users], :create, %{name: "Michal"}, state)
iex> state = TeaVent.Example.dispatch([:users], :create, %{name: "W-M"}, state)
iex> state = TeaVent.Example.dispatch([:users, 1], :delete, %{}, state)
%{
  events: [
    %TeaVent.Event{
      changed_subject: %TeaVent.Example.User{
        deleted: true,
        id: 1222957077122717130,
        name: "Jose"
      },
      changes: %{deleted: true},
      data: %{},
      meta: %{},
      name: :delete,
      subject: %TeaVent.Example.User{
        deleted: false,
        id: 1222957077122717130,
        name: "Jose"
      },
      topic: [:users, 1]
    },
    %TeaVent.Event{
      changed_subject: %TeaVent.Example.User{
        deleted: false,
        id: 2900897003816872049,
        name: "W-M"
      },
      changes: nil,
      data: %{name: "W-M"},
      meta: %{},
      name: :create,
      subject: nil,
      topic: [:users]
    },
    %TeaVent.Event{
      changed_subject: %TeaVent.Example.User{
        deleted: false,
        id: 1064675457221707330,
        name: "Michal"
      },
      changes: nil,
      data: %{name: "Michal"},
      meta: %{},
      name: :create,
      subject: nil,
      topic: [:users]
    }
  ],
  users: %{
    1 => %TeaVent.Example.User{
      deleted: true,
      id: 1222957077122717130,
      name: "Jose"
    },
    1064675457221707330 => %TeaVent.Example.User{
      deleted: false,
      id: 1064675457221707330,
      name: "Michal"
    },
    2900897003816872049 => %TeaVent.Example.User{
      deleted: false,
      id: 2900897003816872049,
      name: "W-M"
    }
  }
}

Link to this section Summary

Link to this section Functions

Link to this function dispatch(topic, name, data \\ %{}, state \\ %{users: %{1 => User.new("Jose")}, events: []}) View Source
Link to this function dispatch_event(event, state \\ %{users: %{1 => User.new("Jose")}, events: []}) View Source
Link to this function injected_context_provider(injected_state) View Source