class Firstjob::Publication

Attributes

career_status_id[RW]
careers_ids[RW]
description[RW]
english_level_id[RW]
excel_level_id[RW]
id[RW]
location[RW]
looking_for_id[RW]
postulantes[RW]
salary[RW]
slug[RW]
status[RW]
title[RW]
universities_ids[RW]
years_experience[RW]

Public Class Methods

create(params) click to toggle source
# File lib/firstjob/publication.rb, line 26
def self.create(params)
  publication = new(params)
  response = publication.publish()
end
new(attributes={}) click to toggle source
# File lib/firstjob/publication.rb, line 8
def initialize(attributes={})
  # Default values
  @salary = 0
  @location = "Chile"
  @career_status_id = 1
  @years_experience = 0
  @english_level_id = 1
  @excel_level_id = 1

  attributes.each do |key, value|
    self.send("#{key}=", value)
  end
end

Public Instance Methods

body() click to toggle source
# File lib/firstjob/publication.rb, line 22
def body
  default_publication_json()
end
destroy() click to toggle source
# File lib/firstjob/publication.rb, line 65
def destroy
  response = Firstjob.post("/api/doregister_job",
                           Firstjob.options.merge(
                             body: Firstjob.body.merge({job_id: id}).to_json
                            )
                          )
  response_body = HttpParser.parse_response(response)
end
postulants() click to toggle source
# File lib/firstjob/publication.rb, line 51
def postulants
  # Get postulants
  response = Firstjob.post("/api/get_applicants_job",
                           Firstjob.options.merge(
                             body: Firstjob.body.merge({job_id: @id}).to_json
                            )
                          )
  response_body = HttpParser.parse_json_response(response)

  # load results
  @postulantes = response_body["postulantes"]
  return @postulantes
end
publish() click to toggle source
# File lib/firstjob/publication.rb, line 31
def publish
  # Post publication
  response = Firstjob.post("/api/publish_job",
                           Firstjob.options.merge(
                             body: Firstjob.body.merge({publish_job: self.body}).to_json
                            )
                          )
  response_body = HttpParser.parse_json_response(response)

  # load results
  @slug = response_body["slug"]
  @id = response_body["id"]
  @status = response_body["status"]
  return self
end
url() click to toggle source
# File lib/firstjob/publication.rb, line 47
def url
  "#{Firstjob.base_uri}/jobs/#{slug}"
end

Private Instance Methods

default_publication_json() click to toggle source
# File lib/firstjob/publication.rb, line 75
def default_publication_json
  hash = {
    title:               title, # required
    description:         description, # required, max 300 caracters
    career_status:       career_status_id, # required
    looking_for:         looking_for_id, # required
    location:            location, # required
    years_experience:    years_experience, # required, number
    salary:              salary, # required, number. Can be 0
    english_level:       english_level_id, # required, number
    excel_level:         excel_level_id, # required, number
  }
  if careers_ids.present?
    hash[:careers] = careers_ids   # optional, array or NOT PRESENT
  end
  if universities_ids.present?
    hash[:universities] = universities_ids # optional, array or NOT PRESENT
  end
  return hash
end