blogit v1.2.3 Blogit.Components.Posts View Source

A Blogit.Component process which can be queried from outside. The Blogit.Components.Posts process holds all the posts in the blog as its state.

This process handles the following call messages:

  • :all -> returns all the posts of the blog as list of Blogit.Models.Post structures.
  • {:filter, filters, from, size} -> returns a list of posts sorted by their meta.created_at field, newest first, filtered by the given filters and the first from are dropped. The size of the list is specified by size. The posts are represented by Blogit.Models.Post.Meta structures so they can be presented in a stream by showing only their preview.
  • {:by_name, name} -> returns one post by its unique name. If there is no post with the given name the tuple {:error, no-post-found-message} is returned. If the post is present, the tuple {:ok, the-post} is returned. The post is in the for of a Blogit.Models.Post struct.

This component is supervised by Blogit.Components.Supervisor and added to it by Blogit.Server. When the posts get updated, this process' state is updated by the Blogit.Server process.

The Blogit.Components.PostsByDate and the Blogit.Components.Metas processes calculate their state using this one.

Link to this section Summary

Functions

Returns the base name, which identifies the process. For example it could be posts.

Returns a specification to start this module under a supervisor.

Callback implementation for GenServer.init/1.

Returns the name, which identifies the process. It is composed using the base_name/0 and the given language. For example if the base_name/0 returns posts and the given language is en, the name will be posts_en.

Link to this section Functions

Returns the base name, which identifies the process. For example it could be posts.

Returns a specification to start this module under a supervisor.

See Supervisor.

Callback implementation for GenServer.init/1.

Returns the name, which identifies the process. It is composed using the base_name/0 and the given language. For example if the base_name/0 returns posts and the given language is en, the name will be posts_en.

The worker id registered under the Blogit.Components.Supervisor will be the name returned by this function, when start_link/1 is called to create the process. The language passed to it (or the one returned from Blogit.Settings.default_language/0) will be passed to name/1 to create the name.

Link to this function

start_link(language \\ Settings.default_language(), state_provider \\ Blogit.Server)

View Source

Starts the GenServer process.

The process is started and supervised by Blogit.Components.Supervisor and the specification of it is added by Blogit.Server.

The state of the process in the beginning is nil.

The process should keep the given language passed to init/1 as the first of a tuple as part of its state. This process should serve requests related to that language.

The given state_provider is the second element of the tuple passed to GenServer.init/1. It could be used to retrieve the state of the process.

By default the language is the one returned by Blogit.Settings.default_language/0 and the state_provider is Blogit.Server.