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..636d6e6 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