Skip to content

Commit

Permalink
Fixes seeds in an ugly, temporary way.
Browse files Browse the repository at this point in the history
  • Loading branch information
begedin committed Dec 4, 2017
1 parent 19afd82 commit f4cb165
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 20 deletions.
73 changes: 55 additions & 18 deletions priv/repo/seeds.exs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
alias CodeCorps.{
Category, Organization, ProjectUser, Project, ProjectCategory, ProjectSkill,
Repo, Role, Skill, Task, User, UserCategory, UserRole, UserSkill
Repo, Role, Skill, Task, User, UserCategory, UserRole, UserSkill,
}

users = [
Expand Down Expand Up @@ -56,15 +56,55 @@ organizations = [
}
]

case Repo.all(Organization) do
[] ->
organizations
|> Enum.each(fn params ->
defmodule SeedChangeset do
@moduledoc false

alias CodeCorps.{
TaskList,
Organization,
SluggedRoute,
Helpers.Slug,
Helpers.RandomIconColor,
Services.MarkdownRendererService
}
alias Ecto.Changeset

def organization(%{} = params) do
changeset =
%Organization{}
|> Organization.create_changeset(params)
|> Repo.insert!()
end)
_ -> IO.puts "Organizations detected, aborting organization seed."
|> Changeset.cast(params, [:name, :description, :owner_id])
|> Changeset.assoc_constraint(:owner)
|> Changeset.put_change(:approved, true)
|> Slug.generate_slug(:name, :slug)
|> RandomIconColor.generate_icon_color(:slugged_route_changeset)

slug = changeset |> Changeset.get_field(:slug)
slugged_route_changeset =
%SluggedRoute{} |> SluggedRoute.create_changeset(%{slug: slug})

changeset
|> Changeset.put_assoc(:slugged_route, slugged_route_changeset)
end

def project(%{} = params) do
%Project{}
|> Changeset.cast(params, [:description, :long_description_markdown, :title, :organization_id])
|> MarkdownRendererService.render_markdown_to_html(:long_description_markdown, :long_description_body)
|> Changeset.put_assoc(:task_lists, TaskList.default_task_lists())
|> Changeset.assoc_constraint(:organization)
|> RandomIconColor.generate_icon_color(:default_color)
|> Slug.generate_slug(:title, :slug)
|> Ecto.Changeset.put_change(:approved, true)
end
end

case Repo.aggregate(Organization, :count, :id) do
0 ->
organizations
|> Enum.map(&SeedChangeset.organization/1)
|> Enum.each(&Repo.insert!/1)
_more_than_0 ->
IO.puts "Organizations detected, aborting organization seed."
end

projects = [
Expand All @@ -82,16 +122,13 @@ projects = [
}
]

case Repo.all(Project) do
[] ->
case Repo.aggregate(Project, :count, :id) do
0 ->
projects
|> Enum.each(fn params ->
%Project{}
|> Project.create_changeset(params)
|> Ecto.Changeset.put_change(:approved, true)
|> Repo.insert!()
end)
_ -> IO.puts "Projects detected, aborting project seed."
|> Enum.map(&SeedChangeset.project/1)
|> Enum.each(&Repo.insert!/1)
_more_than_0 ->
IO.puts "Projects detected, aborting project seed."
end

project_users = [
Expand Down
4 changes: 2 additions & 2 deletions priv/repo/structure.sql
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
-- PostgreSQL database dump
--

-- Dumped from database version 9.5.10
-- Dumped by pg_dump version 10.1
-- Dumped from database version 10.0
-- Dumped by pg_dump version 10.0

SET statement_timeout = 0;
SET lock_timeout = 0;
Expand Down

0 comments on commit f4cb165

Please sign in to comment.