Packages
ami
0.2.0
0.3.9
0.3.8
retired
0.3.7
retired
0.3.6
retired
0.3.5
retired
0.3.4
retired
0.3.3
retired
0.3.2
retired
0.3.1
retired
0.3.0
retired
0.2.9
retired
0.2.8
retired
0.2.7
retired
0.2.6
retired
0.2.5
retired
0.2.3
retired
0.2.2
retired
0.2.1
retired
0.2.0
retired
0.1.9
retired
0.1.8
retired
0.1.7
retired
0.1.6
retired
0.1.5
retired
0.1.4
retired
Package containing all AMI Models shared between micro-services.
Retired package: Security issue - retiring
Current section
Files
Jump to
Current section
Files
lib/ami/toolkit.ex
defmodule Ami.Toolkit do
use Ecto.Schema
# import Ecto.{
# Query
# }
alias Ami.{
Community,
User,
ToolkitTool,
# Tool,
Like,
Share,
Repo,
Section
}
schema "tool_kits" do
@timestamps_opts [type: :naive_datetime_usec]
field(:title, :string)
field(:description, :string)
field(:available_to_other_community, :boolean)
field(:created_at, :utc_datetime_usec)
field(:updated_at, :utc_datetime_usec)
field(:tools_count, :integer, virtual: true, default: 0)
field(:views_count, :integer)
belongs_to(:community, Community)
belongs_to(:author, User, foreign_key: :user_id)
has_many(:toolkit_tools, ToolkitTool, foreign_key: :tool_kit_id)
has_many(:tools, through: [:toolkit_tools, :tool])
has_many(:likes, Like, foreign_key: :likeable_id)
has_many(:shares, Share, foreign_key: :shareable_id)
has_many(:sections, Section, foreign_key: :sectionable_id)
end
def fetch_tools_count(toolkit) do
count = length(Repo.preload(toolkit, :tools).tools)
%__MODULE__{toolkit | tools_count: count}
end
def preload_likes(toolkit), do: Like.preload_likes(toolkit, "ToolKit")
def preload_sections(toolkit), do: Section.preload_sections(toolkit, "ToolKit")
end