Sha256: deb38f4a76bfb44865e4b987f273c06a9a878ba25455f996062581bcf925c107

Contents?: true

Size: 968 Bytes

Versions: 1

Compression:

Stored size: 968 Bytes

Contents

# frozen_string_literal: true

require 'arbetsformedlingen/api/request'
require 'arbetsformedlingen/api/values/create_ad_page'

module Arbetsformedlingen
  module API
    # API client for ledigtarbete
    class LedigtarbeteClient
      # Base URL for ledigtarbete
      BASE_URL = 'http://api.arbetsformedlingen.se/ledigtarbete'.freeze

      # HTTP headers
      HEADERS = {
        'Content-type' => 'text/xml',
      }.freeze

      # Post ad to API
      # @param [Arbetsformedlingen::Packet, #to_xml] the data to be sent
      # @return [Values::CreateAdPage] the API result
      def create_ad(packet)
        xml = packet.to_xml

        url = if Arbetsformedlingen.config.test
                'apiledigtarbete/test/hrxml'
              else
                'apiledigtarbete/hrxml'
              end

        response = HTTParty.post("#{BASE_URL}/#{url}", body: xml, headers: HEADERS)
        Values::CreateAdPage.new(response, xml)
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
arbetsformedlingen-0.6.0 lib/arbetsformedlingen/api/ledigtarbete_client.rb