From e5a55aedda4b7d3d4afb88d5d596e80023922703 Mon Sep 17 00:00:00 2001 From: "Miles Z. Sterrett" Date: Tue, 16 May 2023 15:14:21 -0400 Subject: [PATCH 1/2] Refactor job request creation controller code --- app/controllers/job_post_requests_controller.rb | 11 +---------- app/models/job.rb | 9 +++++++++ app/models/job_post_request.rb | 8 ++++++++ 3 files changed, 18 insertions(+), 10 deletions(-) diff --git a/app/controllers/job_post_requests_controller.rb b/app/controllers/job_post_requests_controller.rb index b48d2f7..235f212 100644 --- a/app/controllers/job_post_requests_controller.rb +++ b/app/controllers/job_post_requests_controller.rb @@ -6,16 +6,7 @@ def new def create @job_post_request = JobPostRequest.new(job_post_request_params.merge!({ id: 13 })) if @job_post_request.valid? - @user = User.find_or_create_by!(name: @job_post_request.name, email: @job_post_request.email) - @job = Job.new( - title: @job_post_request.title, - description: @job_post_request.description, - company: @job_post_request.company, - salary: @job_post_request.salary - ) - @job.user = @user - @job.save - SystemMailer.job_post_request(@job_post_request, @job).deliver_now + @job_post_request.send! redirect_to new_job_post_request_path, notice: "Your job post request was sent successfully!" else flash[:notice] = "There was a problem with sending your job post request" diff --git a/app/models/job.rb b/app/models/job.rb index f3c9428..050da87 100644 --- a/app/models/job.rb +++ b/app/models/job.rb @@ -22,6 +22,15 @@ def unpublished where(published_at: nil) end + def from_job_post_request(job_post_request) + Job.new( + title: job_post_request.title, + description: job_post_request.description, + company: job_post_request.company, + salary: job_post_request.salary, + ) + end + private def published diff --git a/app/models/job_post_request.rb b/app/models/job_post_request.rb index b686694..cd09b8b 100644 --- a/app/models/job_post_request.rb +++ b/app/models/job_post_request.rb @@ -12,6 +12,14 @@ def initialize(attributes = {}) end end + def send! + user = User.find_or_create_by!(name:, email:) + job = Job.from_job_post_request(self) + job.user = user + job.save! + SystemMailer.job_post_request(self, job).deliver_now + end + def save true end From 226093ba13dc49cc8fe4ac8b0deb79359fdb6b31 Mon Sep 17 00:00:00 2001 From: "Miles Z. Sterrett" Date: Tue, 16 May 2023 15:34:15 -0400 Subject: [PATCH 2/2] Remove trailing comma, I guess --- app/models/job.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/job.rb b/app/models/job.rb index 050da87..636d6e6 100644 --- a/app/models/job.rb +++ b/app/models/job.rb @@ -27,7 +27,7 @@ def from_job_post_request(job_post_request) title: job_post_request.title, description: job_post_request.description, company: job_post_request.company, - salary: job_post_request.salary, + salary: job_post_request.salary ) end