class Teamtailor::Client

Attributes

api_token[R]
api_version[R]
base_url[R]

Public Class Methods

new(base_url:, api_token:, api_version:) click to toggle source
# File lib/teamtailor/client.rb, line 7
def initialize(base_url:, api_token:, api_version:)
  @base_url = base_url
  @api_token = api_token
  @api_version = api_version
end

Public Instance Methods

candidates(page: 1, include: []) click to toggle source
# File lib/teamtailor/client.rb, line 25
def candidates(page: 1, include: [])
  Teamtailor::Request.new(
    base_url: base_url,
    api_token: api_token,
    api_version: api_version,
    path: "/v1/candidates",
    params: {
      "page[number]" => page,
      "page[size]" => 30,
      "include" => include.join(","),
    }
  ).call
end
company(include: []) click to toggle source
# File lib/teamtailor/client.rb, line 13
def company(include: [])
  Teamtailor::Request.new(
    base_url: base_url,
    api_token: api_token,
    api_version: api_version,
    path: "/v1/company",
    params: {
      "include" => include.join(","),
    }
  ).call
end
create_candidate(attributes:, relationships:) click to toggle source
# File lib/teamtailor/client.rb, line 39
def create_candidate(attributes:, relationships:)
  Teamtailor::Request.new(
      base_url: base_url,
      api_token: api_token,
      api_version: api_version,
      path: "/v1/candidates",
      method: :post,
      body: {
          data: {
              type: "candidates",
              attributes: attributes.transform_keys { |k| k.to_s.gsub("_", "-") },
              relationships: relationships,
          },
      }
  ).call
end
create_job_application(attributes:, relationships:) click to toggle source
# File lib/teamtailor/client.rb, line 103
def create_job_application(attributes:, relationships:)
  Teamtailor::Request.new(
      base_url: base_url,
      api_token: api_token,
      api_version: api_version,
      path: "/v1/job-applications",
      method: :post,
      body: {
          data: {
              type: "job-applications",
              attributes: attributes.transform_keys { |k| k.to_s.gsub("_", "-") },
              relationships: relationships,
          },
      }
  ).call
end
create_upload(attributes:, relationships:) click to toggle source
# File lib/teamtailor/client.rb, line 86
def create_upload(attributes:, relationships:)
  Teamtailor::Request.new(
      base_url: base_url,
      api_token: api_token,
      api_version: api_version,
      path: "/v1/uploads",
      method: :post,
      body: {
          data: {
              type: "uploads",
              attributes: attributes.transform_keys { |k| k.to_s.gsub("_", "-") },
              relationships: relationships,
          },
      }
  ).call
end
custom_field_values(page: 1, include: []) click to toggle source
# File lib/teamtailor/client.rb, line 204
def custom_field_values(page: 1, include: [])
  Teamtailor::Request.new(
    base_url: base_url,
    api_token: api_token,
    api_version: api_version,
    path: "/v1/custom-field-values",
    params: {
      "page[number]" => page,
      "page[size]" => 30,
      "include" => include.join(","),
    }
  ).call
end
custom_fields(page: 1, include: []) click to toggle source
# File lib/teamtailor/client.rb, line 190
def custom_fields(page: 1, include: [])
  Teamtailor::Request.new(
    base_url: base_url,
    api_token: api_token,
    api_version: api_version,
    path: "/v1/custom-fields",
    params: {
      "page[number]" => page,
      "page[size]" => 30,
      "include" => include.join(","),
    }
  ).call
end
departments(page: 1, include: []) click to toggle source
# File lib/teamtailor/client.rb, line 162
def departments(page: 1, include: [])
  Teamtailor::Request.new(
    base_url: base_url,
    api_token: api_token,
    api_version: api_version,
    path: "/v1/departments",
    params: {
      "page[number]" => page,
      "page[size]" => 30,
      "include" => include.join(","),
    }
  ).call
end
job_applications(page: 1, include: []) click to toggle source
# File lib/teamtailor/client.rb, line 72
def job_applications(page: 1, include: [])
  Teamtailor::Request.new(
    base_url: base_url,
    api_token: api_token,
    api_version: api_version,
    path: "/v1/job-applications",
    params: {
      "page[number]" => page,
      "page[size]" => 30,
      "include" => include.join(","),
    }
  ).call
end
jobs(page: 1, include: [], filters: {}) click to toggle source
# File lib/teamtailor/client.rb, line 56
def jobs(page: 1, include: [], filters: {})
  filter_params = filters.transform_keys { |key| "filter[#{key}]" }

  Teamtailor::Request.new(
    base_url: base_url,
    api_token: api_token,
    api_version: api_version,
    path: "/v1/jobs",
    params: {
      "page[number]" => page,
      "page[size]" => 30,
      "include" => include.join(","),
    }.merge(filter_params)
  ).call
end
locations(page: 1, include: []) click to toggle source
# File lib/teamtailor/client.rb, line 176
def locations(page: 1, include: [])
  Teamtailor::Request.new(
    base_url: base_url,
    api_token: api_token,
    api_version: api_version,
    path: "/v1/locations",
    params: {
      "page[number]" => page,
      "page[size]" => 30,
      "include" => include.join(","),
    }
  ).call
end
partner_results(page: 1, include: []) click to toggle source
# File lib/teamtailor/client.rb, line 232
def partner_results(page: 1, include: [])
  Teamtailor::Request.new(
    base_url: base_url,
    api_token: api_token,
    api_version: api_version,
    path: "/v1/partner-results",
    params: {
      "page[number]" => page,
      "page[size]" => 30,
      "include" => include.join(","),
    }
  ).call
end
referrals(page: 1, include: []) click to toggle source
# File lib/teamtailor/client.rb, line 218
def referrals(page: 1, include: [])
  Teamtailor::Request.new(
    base_url: base_url,
    api_token: api_token,
    api_version: api_version,
    path: "/v1/referrals",
    params: {
      "page[number]" => page,
      "page[size]" => 30,
      "include" => include.join(","),
    }
  ).call
end
reject_reasons(page: 1, include: []) click to toggle source
# File lib/teamtailor/client.rb, line 148
def reject_reasons(page: 1, include: [])
  Teamtailor::Request.new(
    base_url: base_url,
    api_token: api_token,
    api_version: api_version,
    path: "/v1/reject-reasons",
    params: {
      "page[number]" => page,
      "page[size]" => 30,
      "include" => include.join(","),
    }
  ).call
end
requisitions(page: 1, include: []) click to toggle source
# File lib/teamtailor/client.rb, line 246
def requisitions(page: 1, include: [])
  Teamtailor::Request.new(
    base_url: base_url,
    api_token: api_token,
    api_version: api_version,
    path: "/v1/requisitions",
    params: {
      "page[number]" => page,
      "page[size]" => 30,
      "include" => include.join(","),
    }
  ).call
end
stages(page: 1, include: []) click to toggle source
# File lib/teamtailor/client.rb, line 134
def stages(page: 1, include: [])
  Teamtailor::Request.new(
    base_url: base_url,
    api_token: api_token,
    api_version: api_version,
    path: "/v1/stages",
    params: {
      "page[number]" => page,
      "page[size]" => 30,
      "include" => include.join(","),
    }
  ).call
end
users(page: 1, include: []) click to toggle source
# File lib/teamtailor/client.rb, line 120
def users(page: 1, include: [])
  Teamtailor::Request.new(
    base_url: base_url,
    api_token: api_token,
    api_version: api_version,
    path: "/v1/users",
    params: {
      "page[number]" => page,
      "page[size]" => 30,
      "include" => include.join(","),
    }
  ).call
end

Private Instance Methods

response_error(response) click to toggle source
# File lib/teamtailor/client.rb, line 264
def response_error(response)
  Teamtailor::Error.from_response body: response.body, status: response.code
end