1
0
mirror of https://github.com/mgerb/classic-wow-forums synced 2026-01-10 17:12:48 +00:00

server - hard code all seeds for consistency

This commit is contained in:
2018-01-13 14:31:28 -06:00
parent cce5a9ed53
commit 58b913f5b8
2 changed files with 153 additions and 152 deletions

View File

@@ -11,12 +11,6 @@ defmodule MyApp.Data.Category do
field :title, :string field :title, :string
end end
def changeset(category, params \\ %{}) do
category
|> cast(params, [:category, :title])
|> validate_required([:category, :title])
end
def get_categories() do def get_categories() do
Repo.all(Data.Category) Repo.all(Data.Category)
end end

View File

@@ -10,174 +10,181 @@
# We recommend using the bang functions (`insert!`, `update!` # We recommend using the bang functions (`insert!`, `update!`
# and so on) as they will fail if something goes wrong. # and so on) as they will fail if something goes wrong.
import Ecto.Changeset
alias MyApp.Repo alias MyApp.Repo
alias MyApp.Data alias MyApp.Data
defmodule Category do defmodule Category do
def get_seed() do def get_seed() do
map_categories("class", get_classes()) get_classes()
|> Enum.concat(map_categories("realm", get_realms())) |> Enum.concat(get_realms())
|> Enum.concat(map_categories("other", get_other())) |> Enum.concat(get_other())
end
defp map_categories(category, titles) do
titles
|> Enum.map(fn (t) -> %{category: category, title: t} end)
end end
defp get_classes() do defp get_classes() do
[ [
"Druid", %{"id" => 0, "category" => "class", "title" => "Druid"},
"Rogue", %{"id" => 1, "category" => "class", "title" => "Rogue"},
"Priest", %{"id" => 2, "category" => "class", "title" => "Priest"},
"Hunter", %{"id" => 3, "category" => "class", "title" => "Hunter"},
"Shaman", %{"id" => 4, "category" => "class", "title" => "Shaman"},
"Warrior", %{"id" => 5, "category" => "class", "title" => "Warrior"},
"Mage", %{"id" => 6, "category" => "class", "title" => "Mage"},
"Paladin", %{"id" => 7, "category" => "class", "title" => "Paladin"},
"Warlock", %{"id" => 8, "category" => "class", "title" => "Warlock"},
] ]
end end
defp get_realms() do defp get_realms() do
[ [
"Aegwynn", %{"id" => 9, "category" => "realm", "title" => "Aegwynn"},
"Agamaggan", %{"id" => 10, "category" => "realm", "title" => "Agamaggan"},
"Aggramar", %{"id" => 11, "category" => "realm", "title" => "Aggramar"},
"Akama", %{"id" => 12, "category" => "realm", "title" => "Akama"},
"Alleria", %{"id" => 13, "category" => "realm", "title" => "Alleria"},
"Archimonde", %{"id" => 14, "category" => "realm", "title" => "Archimonde"},
"Argent Dawn", %{"id" => 15, "category" => "realm", "title" => "Argent Dawn"},
"Arthas", %{"id" => 16, "category" => "realm", "title" => "Arthas"},
"Azgalor", %{"id" => 17, "category" => "realm", "title" => "Azgalor"},
"Azjol-Nerub", %{"id" => 18, "category" => "realm", "title" => "Azjol-Nerub"},
"Azshara", %{"id" => 19, "category" => "realm", "title" => "Azshara"},
"Blackhand", %{"id" => 20, "category" => "realm", "title" => "Blackhand"},
"Blackrock", %{"id" => 21, "category" => "realm", "title" => "Blackrock"},
"Bleeding Hollow", %{"id" => 22, "category" => "realm", "title" => "Bleeding Hollow"},
"Bloodhoof", %{"id" => 23, "category" => "realm", "title" => "Bloodhoof"},
"Bloodscalp", %{"id" => 24, "category" => "realm", "title" => "Bloodscalp"},
"Bonechewer", %{"id" => 25, "category" => "realm", "title" => "Bonechewer"},
"Boulderfist", %{"id" => 26, "category" => "realm", "title" => "Boulderfist"},
"Bronzebeard", %{"id" => 27, "category" => "realm", "title" => "Bronzebeard"},
"Burning Blade", %{"id" => 28, "category" => "realm", "title" => "Burning Blade"},
"Burning Legion", %{"id" => 29, "category" => "realm", "title" => "Burning Legion"},
"Cenarion Circle", %{"id" => 30, "category" => "realm", "title" => "Cenarion Circle"},
"Cenarius", %{"id" => 31, "category" => "realm", "title" => "Cenarius"},
"Cho'gall", %{"id" => 32, "category" => "realm", "title" => "Cho'gall"},
"Chromaggus", %{"id" => 33, "category" => "realm", "title" => "Chromaggus"},
"Crushridge", %{"id" => 34, "category" => "realm", "title" => "Crushridge"},
"Daggerspine", %{"id" => 35, "category" => "realm", "title" => "Daggerspine"},
"Dalaran", %{"id" => 36, "category" => "realm", "title" => "Dalaran"},
"Dark Iron", %{"id" => 37, "category" => "realm", "title" => "Dark Iron"},
"Darkspear", %{"id" => 38, "category" => "realm", "title" => "Darkspear"},
"Deathwing", %{"id" => 39, "category" => "realm", "title" => "Deathwing"},
"Destromath", %{"id" => 40, "category" => "realm", "title" => "Destromath"},
"Dethecus", %{"id" => 41, "category" => "realm", "title" => "Dethecus"},
"Detheroc", %{"id" => 42, "category" => "realm", "title" => "Detheroc"},
"Doomhammer", %{"id" => 43, "category" => "realm", "title" => "Doomhammer"},
"Draenor", %{"id" => 44, "category" => "realm", "title" => "Draenor"},
"Dragonblight", %{"id" => 45, "category" => "realm", "title" => "Dragonblight"},
"Dragonmaw", %{"id" => 46, "category" => "realm", "title" => "Dragonmaw"},
"Draka", %{"id" => 47, "category" => "realm", "title" => "Draka"},
"Dunemaul", %{"id" => 48, "category" => "realm", "title" => "Dunemaul"},
"Durotan", %{"id" => 49, "category" => "realm", "title" => "Durotan"},
"Earthen Ring", %{"id" => 50, "category" => "realm", "title" => "Earthen Ring"},
"Eldre'Thalas", %{"id" => 51, "category" => "realm", "title" => "Eldre'Thalas"},
"Elune", %{"id" => 52, "category" => "realm", "title" => "Elune"},
"Emerald Dream", %{"id" => 53, "category" => "realm", "title" => "Emerald Dream"},
"Eonar", %{"id" => 54, "category" => "realm", "title" => "Eonar"},
"Eredar", %{"id" => 55, "category" => "realm", "title" => "Eredar"},
"Feathermoon", %{"id" => 56, "category" => "realm", "title" => "Feathermoon"},
"Firetree", %{"id" => 57, "category" => "realm", "title" => "Firetree"},
"Frostmane", %{"id" => 58, "category" => "realm", "title" => "Frostmane"},
"Frostmourne", %{"id" => 59, "category" => "realm", "title" => "Frostmourne"},
"Frostwolf", %{"id" => 60, "category" => "realm", "title" => "Frostwolf"},
"Garona", %{"id" => 61, "category" => "realm", "title" => "Garona"},
"Gilneas", %{"id" => 62, "category" => "realm", "title" => "Gilneas"},
"Greymane", %{"id" => 63, "category" => "realm", "title" => "Greymane"},
"Gorefiend", %{"id" => 64, "category" => "realm", "title" => "Gorefiend"},
"Gorgonnash", %{"id" => 65, "category" => "realm", "title" => "Gorgonnash"},
"Gurubashi", %{"id" => 66, "category" => "realm", "title" => "Gurubashi"},
"Hellscream", %{"id" => 67, "category" => "realm", "title" => "Hellscream"},
"Hyjal", %{"id" => 68, "category" => "realm", "title" => "Hyjal"},
"Icecrown", %{"id" => 69, "category" => "realm", "title" => "Icecrown"},
"Illidan", %{"id" => 70, "category" => "realm", "title" => "Illidan"},
"Kargath", %{"id" => 71, "category" => "realm", "title" => "Kargath"},
"Kalecgos", %{"id" => 72, "category" => "realm", "title" => "Kalecgos"},
"Kael'thas", %{"id" => 73, "category" => "realm", "title" => "Kael'thas"},
"Kel'Thuzad", %{"id" => 74, "category" => "realm", "title" => "Kel'Thuzad"},
"Khadgar", %{"id" => 75, "category" => "realm", "title" => "Khadgar"},
"Khaz'goroth", %{"id" => 76, "category" => "realm", "title" => "Khaz'goroth"},
"Kil'Jaeden", %{"id" => 77, "category" => "realm", "title" => "Kil'Jaeden"},
"Kilrogg", %{"id" => 78, "category" => "realm", "title" => "Kilrogg"},
"Kirin Tor", %{"id" => 79, "category" => "realm", "title" => "Kirin Tor"},
"Laughing Skull", %{"id" => 80, "category" => "realm", "title" => "Laughing Skull"},
"Lightbringer", %{"id" => 81, "category" => "realm", "title" => "Lightbringer"},
"Lightning's Blade", %{"id" => 82, "category" => "realm", "title" => "Lightning's Blade"},
"Lightninghoof", %{"id" => 83, "category" => "realm", "title" => "Lightninghoof"},
"Llane", %{"id" => 84, "category" => "realm", "title" => "Llane"},
"Lothar", %{"id" => 85, "category" => "realm", "title" => "Lothar"},
"Magtheridon", %{"id" => 86, "category" => "realm", "title" => "Magtheridon"},
"Maelstrom", %{"id" => 87, "category" => "realm", "title" => "Maelstrom"},
"Mal'Ganis", %{"id" => 88, "category" => "realm", "title" => "Mal'Ganis"},
"Malfurion", %{"id" => 89, "category" => "realm", "title" => "Malfurion"},
"Malygos", %{"id" => 90, "category" => "realm", "title" => "Malygos"},
"Mannoroth", %{"id" => 91, "category" => "realm", "title" => "Mannoroth"},
"Medivh", %{"id" => 92, "category" => "realm", "title" => "Medivh"},
"Moonrunner", %{"id" => 93, "category" => "realm", "title" => "Moonrunner"},
"Nathrezim", %{"id" => 94, "category" => "realm", "title" => "Nathrezim"},
"Ner'zhul", %{"id" => 95, "category" => "realm", "title" => "Ner'zhul"},
"Perenolde", %{"id" => 96, "category" => "realm", "title" => "Perenolde"},
"Proudmoore", %{"id" => 97, "category" => "realm", "title" => "Proudmoore"},
"Sargeras", %{"id" => 98, "category" => "realm", "title" => "Sargeras"},
"Scarlet Crusade", %{"id" => 99, "category" => "realm", "title" => "Scarlet Crusade"},
"Shadow Council", %{"id" => 100, "category" => "realm", "title" => "Shadow Council"},
"Shadow Moon", %{"id" => 101, "category" => "realm", "title" => "Shadow Moon"},
"Shadowsong", %{"id" => 102, "category" => "realm", "title" => "Shadowsong"},
"Shattered Hand", %{"id" => 103, "category" => "realm", "title" => "Shattered Hand"},
"Silver Hand", %{"id" => 104, "category" => "realm", "title" => "Silver Hand"},
"Silvermoon", %{"id" => 105, "category" => "realm", "title" => "Silvermoon"},
"Skullcrusher", %{"id" => 106, "category" => "realm", "title" => "Skullcrusher"},
"Skywall", %{"id" => 107, "category" => "realm", "title" => "Skywall"},
"Smolderthorn", %{"id" => 108, "category" => "realm", "title" => "Smolderthorn"},
"Spinebreaker", %{"id" => 109, "category" => "realm", "title" => "Spinebreaker"},
"Spirestone", %{"id" => 110, "category" => "realm", "title" => "Spirestone"},
"Staghelm", %{"id" => 111, "category" => "realm", "title" => "Staghelm"},
"Stonemaul", %{"id" => 112, "category" => "realm", "title" => "Stonemaul"},
"Stormrage", %{"id" => 113, "category" => "realm", "title" => "Stormrage"},
"Stormreaver", %{"id" => 114, "category" => "realm", "title" => "Stormreaver"},
"Stormscale", %{"id" => 115, "category" => "realm", "title" => "Stormscale"},
"Suramar", %{"id" => 116, "category" => "realm", "title" => "Suramar"},
"Terenas", %{"id" => 117, "category" => "realm", "title" => "Terenas"},
"Test", %{"id" => 118, "category" => "realm", "title" => "Test"},
"Thunderhorn", %{"id" => 119, "category" => "realm", "title" => "Thunderhorn"},
"Thunderlord", %{"id" => 120, "category" => "realm", "title" => "Thunderlord"},
"Tichondrius", %{"id" => 121, "category" => "realm", "title" => "Tichondrius"},
"Twisting Nether", %{"id" => 122, "category" => "realm", "title" => "Twisting Nether"},
"Uldum", %{"id" => 123, "category" => "realm", "title" => "Uldum"},
"Uther", %{"id" => 124, "category" => "realm", "title" => "Uther"},
"Ursin", %{"id" => 125, "category" => "realm", "title" => "Ursin"},
"Warsong", %{"id" => 126, "category" => "realm", "title" => "Warsong"},
"Whisperwind", %{"id" => 127, "category" => "realm", "title" => "Whisperwind"},
"Wildhammer", %{"id" => 128, "category" => "realm", "title" => "Wildhammer"},
"Windrunner", %{"id" => 129, "category" => "realm", "title" => "Windrunner"},
"Zul'jin", %{"id" => 130, "category" => "realm", "title" => "Zul'jin"},
] ]
end end
defp get_other() do defp get_other() do
[ [
"Off-Topic", %{"id" => 131, "category" => "other", "title" => "Off-Topic"},
"Guild Recruitment", %{"id" => 132, "category" => "other", "title" => "Guild Recruitment"},
"General Discussion", %{"id" => 133, "category" => "other", "title" => "General Discussion"},
"Suggestions", %{"id" => 134, "category" => "other", "title" => "Suggestions"},
"Role-Playing", %{"id" => 135, "category" => "other", "title" => "Role-Playing"},
"Raid and Dungeon Discussion", %{"id" => 136, "category" => "other", "title" => "Raid and Dungeon Discussion"},
] ]
end end
end end
Repo.insert_all(Data.Category, Category.get_seed()) # insert if not exists
Enum.each(Category.get_seed(), fn(cat) ->
Repo.transaction(fn ->
exists = Repo.get_by(Data.Category, %{id: Map.get(cat, "id")}) != nil
if !exists do
%Data.Category{}
|> cast(cat, [:id, :category, :title])
|> Repo.insert!
end
end)
end)