Skip to content

Commit c11c68a

Browse files
committed
add countries and regions to job postings
1 parent 99cb955 commit c11c68a

File tree

4 files changed

+45
-25
lines changed

4 files changed

+45
-25
lines changed

lib/algora/jobs/schemas/job_posting.ex

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ defmodule Algora.Jobs.JobPosting do
1515
field :status, Ecto.Enum, values: [:initialized, :processing, :active, :expired], null: false, default: :initialized
1616
field :expires_at, :utc_datetime_usec
1717
field :location, :string
18+
field :countries, {:array, :string}, default: []
19+
field :regions, {:array, :string}, default: []
1820
field :compensation, :string
1921
field :seniority, :string
2022

@@ -38,7 +40,9 @@ defmodule Algora.Jobs.JobPosting do
3840
:user_id,
3941
:location,
4042
:compensation,
41-
:seniority
43+
:seniority,
44+
:countries,
45+
:regions
4246
])
4347
|> generate_id()
4448
|> validate_required([:url, :company_name, :company_url, :email])

lib/algora/settings/settings.ex

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -119,10 +119,19 @@ defmodule Algora.Settings do
119119
set("job_criteria:#{job_id}", %{"criteria" => criteria})
120120
end
121121

122-
def get_job_criteria(job_id) do
123-
case get("job_criteria:#{job_id}") do
124-
%{"criteria" => criteria} when is_map(criteria) -> criteria
125-
_ -> %{}
122+
def get_job_criteria(job) do
123+
cond do
124+
job.countries != [] ->
125+
%{"countries" => job.countries}
126+
127+
job.regions != [] ->
128+
%{"regions" => job.regions}
129+
130+
true ->
131+
case get("job_criteria:#{job.id}") do
132+
%{"criteria" => criteria} when is_map(criteria) -> criteria
133+
_ -> %{}
134+
end
126135
end
127136
end
128137

lib/algora_web/live/admin/seed_live.ex

Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -346,26 +346,23 @@ defmodule AlgoraWeb.Admin.SeedLive do
346346
end
347347
)
348348
)
349-
|> Repo.update(),
350-
{:ok, job} <-
351-
Repo.insert(%JobPosting{
352-
status: :processing,
353-
id: Nanoid.generate(),
354-
user_id: org.id,
355-
company_name: org.name,
356-
company_url: org.website_url,
357-
title: row["title"],
358-
url: row["url"],
359-
description: row["description"],
360-
tech_stack: row["tech_stack"],
361-
location: row["location"],
362-
compensation: row["compensation"],
363-
seniority: row["seniority"]
364-
}) do
365-
if row["countries"] != [], do: Algora.Settings.set_job_criteria(job.id, %{"countries" => row["countries"]})
366-
if row["regions"] != [], do: Algora.Settings.set_job_criteria(job.id, %{"regions" => row["regions"]})
367-
368-
{:ok, job}
349+
|> Repo.update() do
350+
Repo.insert(%JobPosting{
351+
status: :processing,
352+
id: Nanoid.generate(),
353+
user_id: org.id,
354+
company_name: org.name,
355+
company_url: org.website_url,
356+
title: row["title"],
357+
url: row["url"],
358+
description: row["description"],
359+
tech_stack: row["tech_stack"],
360+
location: row["location"],
361+
compensation: row["compensation"],
362+
seniority: row["seniority"],
363+
countries: row["countries"],
364+
regions: row["regions"]
365+
})
369366
end
370367
end
371368

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
defmodule Algora.Repo.Migrations.AddCountriesAndRegionsToJobPostings do
2+
use Ecto.Migration
3+
4+
def change do
5+
alter table(:job_postings) do
6+
add :countries, {:array, :string}, default: [], null: false
7+
add :regions, {:array, :string}, default: [], null: false
8+
end
9+
end
10+
end

0 commit comments

Comments
 (0)