arbetsformedlingen 0.6.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.hound.yml +2 -0
- data/.travis.yml +2 -1
- data/CHANGELOG.md +10 -0
- data/README.md +60 -136
- data/bin/seed +17 -0
- data/examples/post_job_ad.rb +107 -0
- data/lib/arbetsformedlingen.rb +2 -0
- data/lib/arbetsformedlingen/api/base_soap_client.rb +51 -0
- data/lib/arbetsformedlingen/api/client.rb +2 -1
- data/lib/arbetsformedlingen/api/ledigtarbete_client.rb +1 -1
- data/lib/arbetsformedlingen/api/ontology_client.rb +109 -0
- data/lib/arbetsformedlingen/api/request.rb +35 -5
- data/lib/arbetsformedlingen/api/response.rb +4 -1
- data/lib/arbetsformedlingen/api/results/ad_result.rb +8 -0
- data/lib/arbetsformedlingen/api/soap_request.rb +2 -2
- data/lib/arbetsformedlingen/api/taxonomy_client.rb +797 -0
- data/lib/arbetsformedlingen/api/ws_occupation_client.rb +59 -43
- data/lib/arbetsformedlingen/codes/occupation_code.rb +2 -3
- data/lib/arbetsformedlingen/soap_builder.rb +7 -0
- data/lib/arbetsformedlingen/version.rb +2 -1
- metadata +8 -2
@@ -1,84 +1,100 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'arbetsformedlingen/
|
4
|
-
require 'arbetsformedlingen/api/soap_request'
|
3
|
+
require 'arbetsformedlingen/api/base_soap_client'
|
5
4
|
|
6
5
|
module Arbetsformedlingen
|
7
6
|
module API
|
8
7
|
# WsOccupation API client
|
9
|
-
|
10
|
-
|
11
|
-
|
8
|
+
# @see https://api.arbetsformedlingen.se/af/v0/Occupation/wsoccupation.asmx
|
9
|
+
class WSOccupationClient < BaseSOAPClient
|
12
10
|
# Service URL
|
13
11
|
SERVICE_URL = 'https://api.arbetsformedlingen.se/af/v0/Occupation/wsoccupation.asmx'.freeze
|
14
12
|
|
13
|
+
# Namespace
|
14
|
+
NAMESPACE = 'urn:ams.se:wsoccupation'
|
15
|
+
|
15
16
|
# Initialize client
|
16
17
|
def initialize
|
17
|
-
|
18
|
+
super(SERVICE_URL, NAMESPACE)
|
18
19
|
end
|
19
20
|
|
20
|
-
# Returns occupation
|
21
|
+
# Returns occupation with specified id
|
21
22
|
# @return [Response] the response
|
22
23
|
# @see Response
|
23
|
-
# @see
|
24
|
+
# @see https://api.arbetsformedlingen.se/af/v0/Occupation/wsoccupation.asmx?op=GetOccupationById
|
24
25
|
def occupation(id)
|
25
|
-
|
26
|
-
body.GetOccupationById(xmlns: 'urn:ams.se:wsoccupation') do |node|
|
27
|
-
node.occupationId(id)
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
request.post(soap_body.to_xml)
|
26
|
+
client_request('GetOccupationById', args: { occupationId: id })
|
32
27
|
end
|
33
28
|
|
34
|
-
# Returns occupations
|
29
|
+
# Returns occupations
|
35
30
|
# @return [Response] the response
|
36
31
|
# @see Response
|
37
|
-
# @see
|
32
|
+
# @see https://api.arbetsformedlingen.se/af/v0/Occupation/wsoccupation.asmx?op=FindOccupation
|
38
33
|
def find_occupations(name)
|
39
|
-
|
40
|
-
body.FindOccupation(xmlns: 'urn:ams.se:wsoccupation') do |node|
|
41
|
-
node.name(name)
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
request.post(soap_body.to_xml)
|
34
|
+
client_request('FindOccupation', args: { name: name })
|
46
35
|
end
|
47
36
|
|
48
37
|
# Returns occupations response
|
49
38
|
# @return [Response] the response
|
50
39
|
# @see Response
|
51
|
-
# @see
|
40
|
+
# @see https://api.arbetsformedlingen.se/af/v0/Occupation/wsoccupation.asmx?op=GetAllOccupations
|
52
41
|
def occupations
|
53
|
-
|
54
|
-
body.GetAllOccupations(xmlns: 'urn:ams.se:wsoccupation')
|
55
|
-
end
|
56
|
-
|
57
|
-
request.post(soap_body.to_xml)
|
42
|
+
client_request('GetAllOccupations')
|
58
43
|
end
|
59
44
|
|
60
|
-
# Returns occupations short
|
45
|
+
# Returns occupations short
|
61
46
|
# @return [Response] the response
|
62
47
|
# @see Response
|
63
|
-
# @see
|
48
|
+
# @see https://api.arbetsformedlingen.se/af/v0/Occupation/wsoccupation.asmx?op=GetAllOccupationsShort
|
64
49
|
def occupations_short
|
65
|
-
|
66
|
-
body.GetAllOccupationsShort(xmlns: 'urn:ams.se:wsoccupation')
|
67
|
-
end
|
68
|
-
|
69
|
-
request.post(soap_body.to_xml)
|
50
|
+
client_request('GetAllOccupationsShort')
|
70
51
|
end
|
71
52
|
|
72
|
-
# Returns occupations detailed
|
53
|
+
# Returns occupations detailed
|
73
54
|
# @return [Response] the response
|
74
55
|
# @see Response
|
75
|
-
# @see Response#xml
|
76
56
|
def occupations_detailed
|
77
|
-
|
78
|
-
|
79
|
-
end
|
57
|
+
client_request('GetAllOccupationsDetailed')
|
58
|
+
end
|
80
59
|
|
81
|
-
|
60
|
+
# Returns locale groups
|
61
|
+
# @return [Response] the response
|
62
|
+
# @see Response
|
63
|
+
# @see https://api.arbetsformedlingen.se/af/v0/Occupation/wsoccupation.asmx?op=GetLocaleGroups
|
64
|
+
def locale_groups(id)
|
65
|
+
client_request('GetLocaleGroups', args: { occupationId: id })
|
66
|
+
end
|
67
|
+
|
68
|
+
# Returns platsbanken link for specified locale group id
|
69
|
+
# @return [Response] the response
|
70
|
+
# @see Response
|
71
|
+
# @see https://api.arbetsformedlingen.se/af/v0/Occupation/wsoccupation.asmx?op=GetPlatsbankenLink
|
72
|
+
def platsbanken_link(id)
|
73
|
+
client_request('GetPlatsbankenLink', args: { localegroupid: id })
|
74
|
+
end
|
75
|
+
|
76
|
+
# Returns education connections
|
77
|
+
# @return [Response] the response
|
78
|
+
# @see Response
|
79
|
+
# @see https://api.arbetsformedlingen.se/af/v0/Occupation/wsoccupation.asmx?op=LoadAllEducationConnections
|
80
|
+
def education_connections
|
81
|
+
client_request('LoadAllEducationConnections')
|
82
|
+
end
|
83
|
+
|
84
|
+
# Returns occupations containing id and name information
|
85
|
+
# @return [Response] the response
|
86
|
+
# @see Response
|
87
|
+
# @see https://api.arbetsformedlingen.se/af/v0/Occupation/wsoccupation.asmx?op=LoadAllOccupationIdAndName
|
88
|
+
def occupations_id_and_name
|
89
|
+
client_request('LoadAllOccupationIdAndName')
|
90
|
+
end
|
91
|
+
|
92
|
+
# Returns article
|
93
|
+
# @return [Response] the response
|
94
|
+
# @see Response
|
95
|
+
# @see https://api.arbetsformedlingen.se/af/v0/Occupation/wsoccupation.asmx?op=GetArticle
|
96
|
+
def article(id)
|
97
|
+
client_request('GetArticle', args: { articleId: id })
|
82
98
|
end
|
83
99
|
end
|
84
100
|
end
|
@@ -4,9 +4,8 @@ require 'csv'
|
|
4
4
|
|
5
5
|
module Arbetsformedlingen
|
6
6
|
class OccupationCode
|
7
|
-
|
8
|
-
|
9
|
-
).to_h.invert.freeze
|
7
|
+
DATA_PATH = File.expand_path('../../../data/occupation-codes.csv', __dir__)
|
8
|
+
CODE_MAP = CSV.read(DATA_PATH).to_h.invert.freeze
|
10
9
|
CODES_MAP_INVERTED = CODE_MAP.invert.freeze
|
11
10
|
|
12
11
|
def self.to_code(name)
|
@@ -3,17 +3,22 @@
|
|
3
3
|
require 'builder'
|
4
4
|
|
5
5
|
module Arbetsformedlingen
|
6
|
+
# SOAP Envelope XML builder
|
6
7
|
class SOAPBuilder
|
8
|
+
# SOAP attributes
|
7
9
|
SOAP_ATTRIBUTES = {
|
8
10
|
'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance',
|
9
11
|
'xmlns:xsd' => 'http://www.w3.org/2001/XMLSchema',
|
10
12
|
'xmlns:soap12' => 'http://www.w3.org/2003/05/soap-envelope',
|
11
13
|
}.freeze
|
12
14
|
|
15
|
+
# Wrap block
|
16
|
+
# @see #wrap
|
13
17
|
def self.wrap(&block)
|
14
18
|
new.wrap(&block)
|
15
19
|
end
|
16
20
|
|
21
|
+
# Initialize object
|
17
22
|
def initialize
|
18
23
|
@builder = Builder::XmlMarkup.new(indent: 2)
|
19
24
|
@builder.instruct!
|
@@ -21,6 +26,8 @@ module Arbetsformedlingen
|
|
21
26
|
yield self if block_given?
|
22
27
|
end
|
23
28
|
|
29
|
+
# Wrap block in SOAP envelope
|
30
|
+
# @return [SOAPBuilder]
|
24
31
|
def wrap
|
25
32
|
@builder.soap12(:Envelope, SOAP_ATTRIBUTES) do |envelope|
|
26
33
|
envelope.soap12(:Body) { |body| yield(body) }
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: arbetsformedlingen
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jacob Burenstam
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-09
|
11
|
+
date: 2018-12-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: builder
|
@@ -173,6 +173,7 @@ extensions: []
|
|
173
173
|
extra_rdoc_files: []
|
174
174
|
files:
|
175
175
|
- ".gitignore"
|
176
|
+
- ".hound.yml"
|
176
177
|
- ".rspec"
|
177
178
|
- ".rubocop.yml"
|
178
179
|
- ".ruby-style-guide.yml"
|
@@ -184,21 +185,26 @@ files:
|
|
184
185
|
- Rakefile
|
185
186
|
- arbetsformedlingen.gemspec
|
186
187
|
- bin/console
|
188
|
+
- bin/seed
|
187
189
|
- bin/setup
|
188
190
|
- config/locales/errors.yml
|
189
191
|
- data/country-codes.csv
|
190
192
|
- data/municipality-codes.csv
|
191
193
|
- data/occupation-codes.csv
|
194
|
+
- examples/post_job_ad.rb
|
192
195
|
- lib/arbetsformedlingen.rb
|
196
|
+
- lib/arbetsformedlingen/api/base_soap_client.rb
|
193
197
|
- lib/arbetsformedlingen/api/client.rb
|
194
198
|
- lib/arbetsformedlingen/api/ledigtarbete_client.rb
|
195
199
|
- lib/arbetsformedlingen/api/matchning_client.rb
|
200
|
+
- lib/arbetsformedlingen/api/ontology_client.rb
|
196
201
|
- lib/arbetsformedlingen/api/request.rb
|
197
202
|
- lib/arbetsformedlingen/api/response.rb
|
198
203
|
- lib/arbetsformedlingen/api/results/ad_result.rb
|
199
204
|
- lib/arbetsformedlingen/api/results/matchning_result.rb
|
200
205
|
- lib/arbetsformedlingen/api/results/soklista_result.rb
|
201
206
|
- lib/arbetsformedlingen/api/soap_request.rb
|
207
|
+
- lib/arbetsformedlingen/api/taxonomy_client.rb
|
202
208
|
- lib/arbetsformedlingen/api/values/ad_result_values.rb
|
203
209
|
- lib/arbetsformedlingen/api/values/create_ad_page.rb
|
204
210
|
- lib/arbetsformedlingen/api/values/matchning_result_values.rb
|