@@ -2,27 +2,19 @@ defmodule AlgoraWeb.Org.JobsLive do
2
2
@ moduledoc false
3
3
use AlgoraWeb , :live_view
4
4
5
- import Ecto.Changeset
6
-
7
5
alias Algora.Accounts
8
6
alias Algora.Jobs
9
- alias Algora.Jobs.JobPosting
10
- alias Phoenix.LiveView.AsyncResult
11
7
12
8
require Logger
13
9
14
10
@ impl true
15
11
def mount ( _params , _session , socket ) do
16
- # Group jobs by user
17
12
jobs_by_user = Enum . group_by ( Jobs . list_jobs ( user_id: socket . assigns . current_org . id ) , & & 1 . user )
18
- changeset = JobPosting . changeset ( % JobPosting { } , % { } )
19
13
20
14
{ :ok ,
21
15
socket
22
16
|> assign ( :page_title , "Jobs" )
23
17
|> assign ( :jobs_by_user , jobs_by_user )
24
- |> assign ( :form , to_form ( changeset ) )
25
- |> assign ( :user_metadata , AsyncResult . loading ( ) )
26
18
|> assign_user_applications ( ) }
27
19
end
28
20
@@ -161,37 +153,6 @@ defmodule AlgoraWeb.Org.JobsLive do
161
153
{ :noreply , socket }
162
154
end
163
155
164
- def handle_event ( "email_changed" , % { "job_posting" => % { "email" => email } } , socket ) do
165
- if String . match? ( email , ~r/ ^[^\s ]+@[^\s ]+$/ i ) do
166
- { :noreply , start_async ( socket , :fetch_metadata , fn -> Algora.Crawler . fetch_user_metadata ( email ) end ) }
167
- else
168
- { :noreply , socket }
169
- end
170
- end
171
-
172
- @ impl true
173
- def handle_event ( "validate_job" , % { "job_posting" => params } , socket ) do
174
- { :noreply , assign ( socket , :form , to_form ( JobPosting . changeset ( socket . assigns . form . source , params ) ) ) }
175
- end
176
-
177
- @ impl true
178
- def handle_event ( "create_job" , % { "job_posting" => params } , socket ) do
179
- with { :ok , user } <-
180
- Accounts . get_or_register_user ( params [ "email" ] , % { type: :organization , display_name: params [ "company_name" ] } ) ,
181
- { :ok , job } <- params |> Map . put ( "user_id" , user . id ) |> Jobs . create_job_posting ( ) ,
182
- { :ok , url } <- Jobs . create_payment_session ( job , socket . assigns . current_org . subscription_price ) do
183
- Algora.Admin . alert ( "Job posting initialized: #{ job . company_name } " , :info )
184
- { :noreply , redirect ( socket , external: url ) }
185
- else
186
- { :error , % Ecto.Changeset { } = changeset } ->
187
- { :noreply , assign ( socket , :form , to_form ( changeset ) ) }
188
-
189
- { :error , reason } ->
190
- Logger . error ( "Failed to create job posting: #{ inspect ( reason ) } " )
191
- { :noreply , put_flash ( socket , :error , "Something went wrong. Please try again." ) }
192
- end
193
- end
194
-
195
156
@ impl true
196
157
def handle_event ( "apply_job" , % { "job-id" => job_id } , socket ) do
197
158
if socket . assigns [ :current_user ] do
@@ -222,19 +183,6 @@ defmodule AlgoraWeb.Org.JobsLive do
222
183
{ :noreply , socket }
223
184
end
224
185
225
- @ impl true
226
- def handle_async ( :fetch_metadata , { :ok , metadata } , socket ) do
227
- { :noreply ,
228
- socket
229
- |> assign ( :user_metadata , AsyncResult . ok ( socket . assigns . user_metadata , metadata ) )
230
- |> assign ( :form , to_form ( change ( socket . assigns . form . source , company_name: get_in ( metadata , [ :org , :og_title ] ) ) ) ) }
231
- end
232
-
233
- @ impl true
234
- def handle_async ( :fetch_metadata , { :exit , reason } , socket ) do
235
- { :noreply , assign ( socket , :user_metadata , AsyncResult . failed ( socket . assigns . user_metadata , reason ) ) }
236
- end
237
-
238
186
defp assign_user_applications ( socket ) do
239
187
user_applications =
240
188
if socket . assigns [ :current_user ] do
0 commit comments