fountain 0.0.9 → 0.0.10
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 +4 -0
- data/lib/fountain/api/funnels.rb +44 -0
- data/lib/fountain/field.rb +41 -0
- data/lib/fountain/funnel.rb +48 -0
- data/lib/fountain/funnels.rb +41 -0
- data/lib/fountain/gem_version.rb +1 -1
- data/lib/fountain/location.rb +26 -0
- data/lib/fountain/slot.rb +2 -2
- data/lib/fountain/stage.rb +5 -0
- metadata +5 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9fc1e11abfd2cf824c046f9af4669dc45b1bcc00
|
4
|
+
data.tar.gz: a016e5e30e7ad3b9f81759b89a52e966ae405286
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 42d3ecc3c5253c3365a8ae3daf11c2b9f5a0375397e8b7ffc8b473152fdbcba1ff9de103c1795bea9be1ee52ac5cc461e1c49fd741efd96e3d493c3e5fb8355a
|
7
|
+
data.tar.gz: e80c35502a1b70e7b78334f565a2fcb9020d6f79b2610d537a84b69dfe6fa2e33fdb83f2026f157a2ea3440ab333f9a615bafb6da727f8cd05af29573a0e7475
|
data/lib/fountain.rb
CHANGED
@@ -20,8 +20,11 @@ require 'fountain/applicant'
|
|
20
20
|
require 'fountain/applicants'
|
21
21
|
require 'fountain/background_check'
|
22
22
|
require 'fountain/document_signature'
|
23
|
+
require 'fountain/field'
|
23
24
|
require 'fountain/funnel'
|
25
|
+
require 'fountain/funnels'
|
24
26
|
require 'fountain/label'
|
27
|
+
require 'fountain/location'
|
25
28
|
require 'fountain/note'
|
26
29
|
require 'fountain/secure_document'
|
27
30
|
require 'fountain/slot'
|
@@ -33,5 +36,6 @@ require 'fountain/user'
|
|
33
36
|
require 'fountain/api/request_helper'
|
34
37
|
require 'fountain/api/applicants'
|
35
38
|
require 'fountain/api/available_slots'
|
39
|
+
require 'fountain/api/funnels'
|
36
40
|
require 'fountain/api/labels'
|
37
41
|
require 'fountain/api/notes'
|
@@ -0,0 +1,44 @@
|
|
1
|
+
module Fountain
|
2
|
+
module Api
|
3
|
+
#
|
4
|
+
# Fountain Funnel Management API
|
5
|
+
#
|
6
|
+
class Funnels
|
7
|
+
extend RequestHelper
|
8
|
+
|
9
|
+
#
|
10
|
+
# List all Funnels
|
11
|
+
# @param [Hash] list_options A hash of options when listing funnels
|
12
|
+
# @return [Fountain::Funnels]
|
13
|
+
def self.list(list_options = {})
|
14
|
+
page_query = list_options[:page] ? "?page=#{list_options[:page]}" : ''
|
15
|
+
response = request_json("/v2/funnels#{page_query}")
|
16
|
+
Fountain::Funnels.new response
|
17
|
+
end
|
18
|
+
|
19
|
+
#
|
20
|
+
# Update Funnel
|
21
|
+
# @param [String] funnel_id ID of the Fountain funnel
|
22
|
+
# @param [Hash] update_options A hash of options when updating a funnel
|
23
|
+
# custom_id
|
24
|
+
# @return [Fountain::Funnel]
|
25
|
+
def self.update(funnel_id, update_options = {})
|
26
|
+
response = request_json(
|
27
|
+
"/v2/funnels/#{funnel_id}",
|
28
|
+
method: :put,
|
29
|
+
body: Util.slice_hash(update_options, :custom_id)
|
30
|
+
)
|
31
|
+
Fountain::Funnel.new response
|
32
|
+
end
|
33
|
+
|
34
|
+
#
|
35
|
+
# List all Funnel stages
|
36
|
+
# @param [String] funnel_id ID of the Fountain funnel
|
37
|
+
# @return [[Fountain::Stage]]
|
38
|
+
def self.list_stages(funnel_id)
|
39
|
+
response = request_json("/v2/funnels/#{funnel_id}/stages")
|
40
|
+
response['stages'].map { |hash| Fountain::Stage.new hash }
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module Fountain
|
2
|
+
#
|
3
|
+
# Fountain Field
|
4
|
+
#
|
5
|
+
class Field
|
6
|
+
# Raw field data
|
7
|
+
attr_reader :raw_data
|
8
|
+
|
9
|
+
#
|
10
|
+
# @param [Hash] data Raw field data
|
11
|
+
#
|
12
|
+
def initialize(data)
|
13
|
+
@raw_data = Util.stringify_hash_keys data
|
14
|
+
end
|
15
|
+
|
16
|
+
# Question
|
17
|
+
def question
|
18
|
+
raw_data['question']
|
19
|
+
end
|
20
|
+
|
21
|
+
# Type
|
22
|
+
def type
|
23
|
+
raw_data['type']
|
24
|
+
end
|
25
|
+
|
26
|
+
# Key
|
27
|
+
def key
|
28
|
+
raw_data['key']
|
29
|
+
end
|
30
|
+
|
31
|
+
def inspect
|
32
|
+
format(
|
33
|
+
'#<%<class_name>s:0x%<object_id>p @type="%<type>s" @question="%<title>s">',
|
34
|
+
class_name: self.class.name,
|
35
|
+
object_id: object_id,
|
36
|
+
type: type,
|
37
|
+
question: question
|
38
|
+
)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
data/lib/fountain/funnel.rb
CHANGED
@@ -28,6 +28,54 @@ module Fountain
|
|
28
28
|
raw_data['custom_id']
|
29
29
|
end
|
30
30
|
|
31
|
+
# Address
|
32
|
+
def address
|
33
|
+
raw_data['address']
|
34
|
+
end
|
35
|
+
|
36
|
+
# Time zone
|
37
|
+
def time_zone
|
38
|
+
raw_data['time_zone']
|
39
|
+
end
|
40
|
+
|
41
|
+
# Description
|
42
|
+
def description
|
43
|
+
raw_data['description']
|
44
|
+
end
|
45
|
+
|
46
|
+
# Requirements
|
47
|
+
def requirements
|
48
|
+
raw_data['requirements']
|
49
|
+
end
|
50
|
+
|
51
|
+
# Fields
|
52
|
+
def fields
|
53
|
+
return [] unless raw_data['fields'].is_a? Array
|
54
|
+
raw_data['fields'].map { |hash| Field.new hash }
|
55
|
+
end
|
56
|
+
|
57
|
+
# Stages
|
58
|
+
def stages
|
59
|
+
return [] unless raw_data['stages'].is_a? Array
|
60
|
+
raw_data['stages'].map { |hash| Stage.new hash }
|
61
|
+
end
|
62
|
+
|
63
|
+
# Private
|
64
|
+
def private?
|
65
|
+
raw_data['is_private']
|
66
|
+
end
|
67
|
+
|
68
|
+
# Active
|
69
|
+
def active?
|
70
|
+
raw_data['active']
|
71
|
+
end
|
72
|
+
|
73
|
+
# Location
|
74
|
+
def location
|
75
|
+
return unless raw_data['location'].is_a? Hash
|
76
|
+
Location.new raw_data['location']
|
77
|
+
end
|
78
|
+
|
31
79
|
def inspect
|
32
80
|
format(
|
33
81
|
'#<%<class_name>s:0x%<object_id>p @id="%<id>s" @title="%<title>s">',
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module Fountain
|
2
|
+
#
|
3
|
+
# Fountain Funnel collection
|
4
|
+
#
|
5
|
+
class Funnels
|
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
|
+
# Funnel collection
|
15
|
+
attr_reader :funnels
|
16
|
+
|
17
|
+
def_delegators :funnels, :each, :map, :count, :size, :[]
|
18
|
+
|
19
|
+
#
|
20
|
+
# @param [Hash] data Raw funnel 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
|
+
@funnels = raw_data['funnels'].map { |attr| Funnel.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
|
data/lib/fountain/gem_version.rb
CHANGED
@@ -0,0 +1,26 @@
|
|
1
|
+
module Fountain
|
2
|
+
#
|
3
|
+
# Fountain Location
|
4
|
+
#
|
5
|
+
class Location
|
6
|
+
# Raw location data
|
7
|
+
attr_reader :raw_data
|
8
|
+
|
9
|
+
#
|
10
|
+
# @param [Hash] data Raw location data
|
11
|
+
#
|
12
|
+
def initialize(data)
|
13
|
+
@raw_data = Util.stringify_hash_keys data
|
14
|
+
end
|
15
|
+
|
16
|
+
# Location ID
|
17
|
+
def id
|
18
|
+
raw_data['id']
|
19
|
+
end
|
20
|
+
|
21
|
+
# Name
|
22
|
+
def name
|
23
|
+
raw_data['name']
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
data/lib/fountain/slot.rb
CHANGED
data/lib/fountain/stage.rb
CHANGED
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.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- abrom
|
@@ -114,6 +114,7 @@ files:
|
|
114
114
|
- lib/fountain.rb
|
115
115
|
- lib/fountain/api/applicants.rb
|
116
116
|
- lib/fountain/api/available_slots.rb
|
117
|
+
- lib/fountain/api/funnels.rb
|
117
118
|
- lib/fountain/api/labels.rb
|
118
119
|
- lib/fountain/api/notes.rb
|
119
120
|
- lib/fountain/api/request_helper.rb
|
@@ -122,9 +123,12 @@ files:
|
|
122
123
|
- lib/fountain/background_check.rb
|
123
124
|
- lib/fountain/configuration.rb
|
124
125
|
- lib/fountain/document_signature.rb
|
126
|
+
- lib/fountain/field.rb
|
125
127
|
- lib/fountain/funnel.rb
|
128
|
+
- lib/fountain/funnels.rb
|
126
129
|
- lib/fountain/gem_version.rb
|
127
130
|
- lib/fountain/label.rb
|
131
|
+
- lib/fountain/location.rb
|
128
132
|
- lib/fountain/note.rb
|
129
133
|
- lib/fountain/secure_document.rb
|
130
134
|
- lib/fountain/slot.rb
|