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:
@@ -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
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user