fountain 0.0.8 → 0.0.9
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/lib/fountain.rb +3 -1
- data/lib/fountain/api/applicants.rb +2 -2
- data/lib/fountain/api/available_slots.rb +50 -0
- data/lib/fountain/gem_version.rb +1 -1
- data/lib/fountain/{booked_slot.rb → slot.rb} +5 -5
- data/lib/fountain/slots.rb +41 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bf198332a6ca56e05d48ce30225fdf951b026e34
|
4
|
+
data.tar.gz: 629943449a033d8add4f2b2fc96391d6baa4c796
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1a50953c3662441f109eb03a3041beeb690434a1e2ea855ee5c7314a63c2858d0f1003ac7b31815825b5b9c136daadc6ab06bfb738f275256dccfab70df525cc
|
7
|
+
data.tar.gz: 7758d4a5042ac0c043e99fef643975ce57b5c4db2b26fbabdab5e5ccd7ace15b1375ddd0517a584553644d4c14ffd9969efced6fa57261777731c4d8c5999336
|
data/lib/fountain.rb
CHANGED
@@ -19,17 +19,19 @@ end
|
|
19
19
|
require 'fountain/applicant'
|
20
20
|
require 'fountain/applicants'
|
21
21
|
require 'fountain/background_check'
|
22
|
-
require 'fountain/booked_slot'
|
23
22
|
require 'fountain/document_signature'
|
24
23
|
require 'fountain/funnel'
|
25
24
|
require 'fountain/label'
|
26
25
|
require 'fountain/note'
|
27
26
|
require 'fountain/secure_document'
|
27
|
+
require 'fountain/slot'
|
28
|
+
require 'fountain/slots'
|
28
29
|
require 'fountain/stage'
|
29
30
|
require 'fountain/transition'
|
30
31
|
require 'fountain/user'
|
31
32
|
|
32
33
|
require 'fountain/api/request_helper'
|
33
34
|
require 'fountain/api/applicants'
|
35
|
+
require 'fountain/api/available_slots'
|
34
36
|
require 'fountain/api/labels'
|
35
37
|
require 'fountain/api/notes'
|
@@ -137,10 +137,10 @@ module Fountain
|
|
137
137
|
#
|
138
138
|
# Get Interview Sessions
|
139
139
|
# @param [String] applicant_id ID of the Fountain applicant
|
140
|
-
# @return [[Fountain::
|
140
|
+
# @return [[Fountain::Slot]]
|
141
141
|
def self.get_interview_sessions(applicant_id)
|
142
142
|
response = request_json("/v2/applicants/#{applicant_id}/booked_slots")
|
143
|
-
response['booked_slots'].map { |hash| Fountain::
|
143
|
+
response['booked_slots'].map { |hash| Fountain::Slot.new hash }
|
144
144
|
end
|
145
145
|
|
146
146
|
#
|
@@ -0,0 +1,50 @@
|
|
1
|
+
module Fountain
|
2
|
+
module Api
|
3
|
+
#
|
4
|
+
# Fountain Slot Management API
|
5
|
+
#
|
6
|
+
class AvailableSlots
|
7
|
+
extend RequestHelper
|
8
|
+
|
9
|
+
#
|
10
|
+
# Confirm an available slot
|
11
|
+
# @param [String] available_slot_id ID of the Fountain slot
|
12
|
+
# @param [String] applicant_id ID of the Fountain applicant
|
13
|
+
# @return [Fountain::Slot]
|
14
|
+
def self.confirm(available_slot_id, applicant_id)
|
15
|
+
response = request_json(
|
16
|
+
"/v2/available_slots/#{available_slot_id}/confirm",
|
17
|
+
method: :post,
|
18
|
+
body: { applicant_id: applicant_id }
|
19
|
+
)
|
20
|
+
Fountain::Slot.new response
|
21
|
+
end
|
22
|
+
|
23
|
+
#
|
24
|
+
# List Available Slots
|
25
|
+
# @param [String] stage_id ID of the Fountain stage
|
26
|
+
# @return [[Fountain::Slots]]
|
27
|
+
def self.list(stage_id, list_options = {})
|
28
|
+
page_query = list_options[:page] ? "?page=#{list_options[:page]}" : ''
|
29
|
+
response = request_json(
|
30
|
+
"/v2/stages/#{stage_id}/available_slots#{page_query}"
|
31
|
+
)
|
32
|
+
Fountain::Slots.new response
|
33
|
+
end
|
34
|
+
|
35
|
+
#
|
36
|
+
# Cancel a booked session
|
37
|
+
# @param [String] booked_slot_id ID of the Fountain slot
|
38
|
+
# @param [String] applicant_id ID of the Fountain applicant
|
39
|
+
# @return [Fountain::Slot]
|
40
|
+
def self.cancel(booked_slot_id)
|
41
|
+
response = request(
|
42
|
+
"/v2/booked_slots/#{booked_slot_id}/cancel",
|
43
|
+
method: :post
|
44
|
+
)
|
45
|
+
check_response response
|
46
|
+
true
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
data/lib/fountain/gem_version.rb
CHANGED
@@ -1,19 +1,19 @@
|
|
1
1
|
module Fountain
|
2
2
|
#
|
3
|
-
# Fountain
|
3
|
+
# Fountain Slot
|
4
4
|
#
|
5
|
-
class
|
6
|
-
# Raw
|
5
|
+
class Slot
|
6
|
+
# Raw slot data
|
7
7
|
attr_reader :raw_data
|
8
8
|
|
9
9
|
#
|
10
|
-
# @param [Hash] data Raw
|
10
|
+
# @param [Hash] data Raw slot data
|
11
11
|
#
|
12
12
|
def initialize(data)
|
13
13
|
@raw_data = Util.stringify_hash_keys data
|
14
14
|
end
|
15
15
|
|
16
|
-
#
|
16
|
+
# Slot ID
|
17
17
|
def id
|
18
18
|
raw_data['id']
|
19
19
|
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module Fountain
|
2
|
+
#
|
3
|
+
# Fountain Slot collection
|
4
|
+
#
|
5
|
+
class Slots
|
6
|
+
extend Forwardable
|
7
|
+
|
8
|
+
# Collection current page
|
9
|
+
attr_reader :current_page
|
10
|
+
|
11
|
+
# Collection last page
|
12
|
+
attr_reader :last_page
|
13
|
+
|
14
|
+
# Slot collection
|
15
|
+
attr_reader :slots
|
16
|
+
|
17
|
+
def_delegators :slots, :each, :map, :count, :size, :[]
|
18
|
+
|
19
|
+
#
|
20
|
+
# @param [Hash] data Raw slot data
|
21
|
+
#
|
22
|
+
def initialize(data)
|
23
|
+
raw_data = Util.stringify_hash_keys data
|
24
|
+
pagination = raw_data['pagination']
|
25
|
+
if pagination.is_a? Hash
|
26
|
+
@current_page = pagination['current']
|
27
|
+
@last_page = pagination['last']
|
28
|
+
end
|
29
|
+
@slots = raw_data['slots'].map { |attr| Slot.new attr }
|
30
|
+
end
|
31
|
+
|
32
|
+
def inspect
|
33
|
+
format(
|
34
|
+
'#<%<class_name>s:0x%<object_id>p @count="%<count>s">',
|
35
|
+
class_name: self.class.name,
|
36
|
+
object_id: object_id,
|
37
|
+
count: count
|
38
|
+
)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fountain
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- abrom
|
@@ -113,13 +113,13 @@ files:
|
|
113
113
|
- fountain.gemspec
|
114
114
|
- lib/fountain.rb
|
115
115
|
- lib/fountain/api/applicants.rb
|
116
|
+
- lib/fountain/api/available_slots.rb
|
116
117
|
- lib/fountain/api/labels.rb
|
117
118
|
- lib/fountain/api/notes.rb
|
118
119
|
- lib/fountain/api/request_helper.rb
|
119
120
|
- lib/fountain/applicant.rb
|
120
121
|
- lib/fountain/applicants.rb
|
121
122
|
- lib/fountain/background_check.rb
|
122
|
-
- lib/fountain/booked_slot.rb
|
123
123
|
- lib/fountain/configuration.rb
|
124
124
|
- lib/fountain/document_signature.rb
|
125
125
|
- lib/fountain/funnel.rb
|
@@ -127,6 +127,8 @@ files:
|
|
127
127
|
- lib/fountain/label.rb
|
128
128
|
- lib/fountain/note.rb
|
129
129
|
- lib/fountain/secure_document.rb
|
130
|
+
- lib/fountain/slot.rb
|
131
|
+
- lib/fountain/slots.rb
|
130
132
|
- lib/fountain/stage.rb
|
131
133
|
- lib/fountain/transition.rb
|
132
134
|
- lib/fountain/user.rb
|