Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def load_all_records_by_category(category_alias_link) do
- with %{id: category_id} <- get_changelog_category_by_alias_link(category_alias_link),
- versions <- load_all_versions_by_category(category_id),
- [%{id: last_version_id}] <- Enum.take(versions, -1),
- records <- load_records_by_version_in_category(category_id, last_version_id),
- count <- count_all_posts_in_category(category_id) do
- %{category_versions: versions, records: records, count: count}
- else
- nil -> {:error, :wrong_data}
- :error -> {:error, :wrong_data}
- end
- end
- def load_all_records_by_category(category_alias_link, version_id) do
- with %{id: category_id} <- get_changelog_category_by_alias_link(category_alias_link),
- versions <- load_all_versions_by_category(category_id),
- records <- load_records_by_version_in_category(category_id, version_id),
- count <- count_all_posts_in_category(category_id) do
- %{category_versions: versions, records: records, count: count}
- else
- nil -> {:error, :wrong_data}
- :error -> {:error, :wrong_data}
- end
- end
- def count_all_posts_in_category(category_id) do
- query = from p in ChangelogRecord,
- where: p.cms_changelog_category_id == ^category_id,
- select: %{
- record_count: count(p.id),
- }
- Repo.all(query)
- end
- def load_all_versions_by_category(category_id) do
- query = from p in ChangelogVersion,
- where: p.cms_changelog_category_id == ^category_id,
- select: %{
- title: p.title,
- id: p.id,
- }
- Repo.all(query)
- end
- def load_records_by_version_in_category(category_id, version_id) do
- query = from p in ChangelogRecord,
- where: p.cms_changelog_category_id == ^category_id,
- where: p.cms_changelog_version_id == ^version_id,
- select: %{
- id: p.id,
- title: p.title,
- status: p.status,
- log_type: p.log_type,
- link_attachment_title: p.link_attachment_title,
- link_attachment_link: p.link_attachment_link,
- group_acl: p.group_acl,
- version: p.version,
- user_sender_id: p.user_sender_id,
- delete_number_line: p.delete_number_line,
- update_number_line: p.update_number_line,
- add_number_line: p.add_number_line
- }
- Repo.all(query)
- end
Add Comment
Please, Sign In to add comment