smartwaiver-sdk 4.0.0 → 4.2.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.
@@ -0,0 +1,45 @@
1
+ #
2
+ # Copyright 2018 Smartwaiver
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License"); you may
5
+ # not use this file except in compliance with the License. You may obtain
6
+ # a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12
+ # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13
+ # License for the specific language governing permissions and limitations
14
+ # under the License.
15
+
16
+ require 'smartwaiver-sdk/smartwaiver_base'
17
+
18
+ class SmartwaiverDynamicTemplateClient < SmartwaiverSDK::SmartwaiverBase
19
+
20
+ def initialize(api_key, api_endpoint = DEFAULT_API_ENDPOINT)
21
+ super(api_key, api_endpoint)
22
+ @rest_endpoints = define_rest_endpoints
23
+ end
24
+
25
+ def create(template)
26
+ path = @rest_endpoints[:create]
27
+ json = {:dynamic => {:expiration => template.expiration, :template => template.template_config.for_json, :data => template.data.for_json}}.to_json
28
+ make_api_request(path, HTTP_POST, json)
29
+ end
30
+
31
+ def process(transaction_id)
32
+ path = "#{@rest_endpoints[:process]}/#{transaction_id}"
33
+ json = {}.to_json
34
+ make_api_request(path, HTTP_POST, json)
35
+ end
36
+
37
+ private
38
+
39
+ def define_rest_endpoints
40
+ {
41
+ :create => "/v4/dynamic/templates",
42
+ :process => "/v4/dynamic/process"
43
+ }
44
+ end
45
+ end
@@ -0,0 +1,96 @@
1
+ #
2
+ # Copyright 2018 Smartwaiver
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License"); you may
5
+ # not use this file except in compliance with the License. You may obtain
6
+ # a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12
+ # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13
+ # License for the specific language governing permissions and limitations
14
+ # under the License.
15
+
16
+ require 'smartwaiver-sdk/smartwaiver_base'
17
+
18
+ class SmartwaiverDynamicTemplateData
19
+
20
+ attr_accessor :adult, :participants, :guardian
21
+
22
+ def initialize(adult = true)
23
+ @adult = adult
24
+ @participants = []
25
+ @guardian = SmartwaiverGuardian.new
26
+ end
27
+
28
+ def add_participant(participant)
29
+ @participants.push(participant)
30
+ end
31
+
32
+ def for_json
33
+ participants_for_json = []
34
+ @participants.each do |participant|
35
+ participants_for_json.push(participant.for_json)
36
+ end
37
+ {'adult' => @adult, 'participants' => participants_for_json, 'guardian' => @guardian.for_json}
38
+ end
39
+ end
40
+
41
+ class SmartwaiverParticipant
42
+
43
+ attr_accessor :first_name, :middle_name, :last_name, :phone, :gender, :dob
44
+
45
+ def initialize()
46
+ @first_name = nil
47
+ @middle_name = nil
48
+ @last_name = nil
49
+ @phone = nil
50
+ @gender = nil
51
+ @dob = nil
52
+ end
53
+
54
+ def for_json
55
+ json = {}
56
+ json['firstName'] = @first_name if (!@first_name.nil?)
57
+ json['middleName'] = @middle_name if (!@middle_name.nil?)
58
+ json['lastName'] = @last_name if (!@last_name.nil?)
59
+ json['phone'] = @phone if (!@phone.nil?)
60
+ json['gender'] = @gender if (!@gender.nil?)
61
+ json['dob'] = @dob if (!@dob.nil?)
62
+ json
63
+ end
64
+ end
65
+
66
+ class SmartwaiverGuardian
67
+
68
+ attr_accessor :participant, :first_name, :middle_name, :last_name, :relationship, :phone, :gender, :dob
69
+
70
+ def initialize(participant = false)
71
+ @participant = participant
72
+ @first_name = nil
73
+ @middle_name = nil
74
+ @last_name = nil
75
+ @relationship = nil
76
+ @phone = nil
77
+ @gender = nil
78
+ @dob = nil
79
+ end
80
+
81
+ def for_json
82
+ json = {}
83
+ json['participant'] = @participant if (!@participant.nil?)
84
+ json['firstName'] = @first_name if (!@first_name.nil?)
85
+ json['middleName'] = @middle_name if (!@middle_name.nil?)
86
+ json['lastName'] = @last_name if (!@last_name.nil?)
87
+ json['relationship'] = @relationship if (!@relationship.nil?)
88
+ json['phone'] = @phone if (!@phone.nil?)
89
+ json['gender'] = @gender if (!@gender.nil?)
90
+ json['dob'] = @dob if (!@dob.nil?)
91
+ json
92
+ end
93
+ end
94
+
95
+
96
+
@@ -0,0 +1,43 @@
1
+ #
2
+ # Copyright 2018 Smartwaiver
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License"); you may
5
+ # not use this file except in compliance with the License. You may obtain
6
+ # a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12
+ # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13
+ # License for the specific language governing permissions and limitations
14
+ # under the License.
15
+
16
+ require 'smartwaiver-sdk/smartwaiver_base'
17
+
18
+ class SmartwaiverKeysClient < SmartwaiverSDK::SmartwaiverBase
19
+
20
+ def initialize(api_key, api_endpoint = DEFAULT_API_ENDPOINT)
21
+ super(api_key, api_endpoint)
22
+ @rest_endpoints = define_rest_endpoints
23
+ end
24
+
25
+ def create(label)
26
+ path = @rest_endpoints[:published]
27
+ json = {:label => label}.to_json
28
+ make_api_request(path, HTTP_POST, json)
29
+ end
30
+
31
+ def list
32
+ path = @rest_endpoints[:published]
33
+ make_api_request(path, HTTP_GET)
34
+ end
35
+
36
+ private
37
+
38
+ def define_rest_endpoints
39
+ {
40
+ :published => "/v4/keys/published"
41
+ }
42
+ end
43
+ end
@@ -0,0 +1,64 @@
1
+ #
2
+ # Copyright 2018 Smartwaiver
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License"); you may
5
+ # not use this file except in compliance with the License. You may obtain
6
+ # a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12
+ # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13
+ # License for the specific language governing permissions and limitations
14
+ # under the License.
15
+
16
+ require 'smartwaiver-sdk/smartwaiver_base'
17
+
18
+ class SmartwaiverSearchClient < SmartwaiverSDK::SmartwaiverBase
19
+
20
+ EMPTY_SEARCH_PARAMETER = ''
21
+ SEARCH_SORT_ASC = 'asc'
22
+ SEARCH_SORT_DESC = 'desc'
23
+
24
+ def initialize(api_key, api_endpoint = DEFAULT_API_ENDPOINT)
25
+ super(api_key, api_endpoint)
26
+ @rest_endpoints = define_rest_endpoints
27
+ end
28
+
29
+ def search(template_id = EMPTY_SEARCH_PARAMETER,
30
+ from_dts = EMPTY_SEARCH_PARAMETER,
31
+ to_dts = EMPTY_SEARCH_PARAMETER,
32
+ first_name = EMPTY_SEARCH_PARAMETER,
33
+ last_name = EMPTY_SEARCH_PARAMETER,
34
+ verified = EMPTY_SEARCH_PARAMETER,
35
+ sort = EMPTY_SEARCH_PARAMETER,
36
+ tag = EMPTY_SEARCH_PARAMETER)
37
+
38
+ qs = {}
39
+ qs[:templateId] = template_id if (template_id != EMPTY_SEARCH_PARAMETER)
40
+ qs[:fromDts] = from_dts if (from_dts != EMPTY_SEARCH_PARAMETER)
41
+ qs[:toDts] = to_dts if (to_dts != EMPTY_SEARCH_PARAMETER)
42
+ qs[:firstName] = first_name if (first_name != EMPTY_SEARCH_PARAMETER)
43
+ qs[:lastName] = last_name if (last_name != EMPTY_SEARCH_PARAMETER)
44
+ qs[:verified] = verified if (verified != EMPTY_SEARCH_PARAMETER)
45
+ qs[:sort] = sort if (sort != EMPTY_SEARCH_PARAMETER)
46
+ qs[:tag] = tag if (tag != EMPTY_SEARCH_PARAMETER)
47
+
48
+ path = @rest_endpoints[:search] + (qs != {} ? ('?' + create_query_string(qs)) : '')
49
+ make_api_request(path, HTTP_GET)
50
+ end
51
+
52
+ def results(search_guid, page = 0)
53
+ path = "#{@rest_endpoints[:search]}/#{search_guid}/results?page=#{page}"
54
+ make_api_request(path, HTTP_GET)
55
+ end
56
+
57
+ private
58
+
59
+ def define_rest_endpoints
60
+ {
61
+ :search => "/v4/search"
62
+ }
63
+ end
64
+ end
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright 2017 Smartwaiver
2
+ # Copyright 2018 Smartwaiver
3
3
  #
4
4
  # Licensed under the Apache License, Version 2.0 (the "License"); you may
5
5
  # not use this file except in compliance with the License. You may obtain
@@ -28,6 +28,8 @@ module SmartwaiverSDK
28
28
  HTTP_GET = "GET"
29
29
  HTTP_POST = "POST"
30
30
  HTTP_PUT = "PUT"
31
+ HTTP_DELETE = "DELETE"
32
+
31
33
 
32
34
  def initialize(api_key, api_endpoint = DEFAULT_API_ENDPOINT)
33
35
  @api_endpoint = api_endpoint
@@ -86,6 +88,9 @@ module SmartwaiverSDK
86
88
  when HTTP_POST
87
89
  headers = common_http_headers.merge(rest_post_headers)
88
90
  response = @http.request_post(path, data, headers)
91
+ when HTTP_DELETE
92
+ headers = common_http_headers.merge(rest_post_headers)
93
+ response = @http.delete(path, headers)
89
94
  end
90
95
  check_response(response)
91
96
  end
@@ -121,5 +126,9 @@ module SmartwaiverSDK
121
126
  :type => ""
122
127
  }
123
128
  end
129
+
130
+ def create_query_string(params)
131
+ URI.encode_www_form(params)
132
+ end
124
133
  end
125
134
  end
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright 2017 Smartwaiver
2
+ # Copyright 2018 Smartwaiver
3
3
  #
4
4
  # Licensed under the Apache License, Version 2.0 (the "License"); you may
5
5
  # not use this file except in compliance with the License. You may obtain
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright 2017 Smartwaiver
2
+ # Copyright 2018 Smartwaiver
3
3
  #
4
4
  # Licensed under the Apache License, Version 2.0 (the "License"); you may
5
5
  # not use this file except in compliance with the License. You may obtain
@@ -14,7 +14,7 @@
14
14
  # under the License.
15
15
 
16
16
  module SmartwaiverSDK
17
- VERSION = "4.0.0"
17
+ VERSION = "4.2.0"
18
18
 
19
19
  class Info
20
20
  @@ClientVersion = SmartwaiverSDK::VERSION
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright 2017 Smartwaiver
2
+ # Copyright 2018 Smartwaiver
3
3
  #
4
4
  # Licensed under the Apache License, Version 2.0 (the "License"); you may
5
5
  # not use this file except in compliance with the License. You may obtain
@@ -0,0 +1,37 @@
1
+ #
2
+ # Copyright 2018 Smartwaiver
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License"); you may
5
+ # not use this file except in compliance with the License. You may obtain
6
+ # a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12
+ # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13
+ # License for the specific language governing permissions and limitations
14
+ # under the License.
15
+
16
+ require 'smartwaiver-sdk/smartwaiver_base'
17
+
18
+ class SmartwaiverUserClient < SmartwaiverSDK::SmartwaiverBase
19
+
20
+ def initialize(api_key, api_endpoint = DEFAULT_API_ENDPOINT)
21
+ super(api_key, api_endpoint)
22
+ @rest_endpoints = define_rest_endpoints
23
+ end
24
+
25
+ def settings()
26
+ path = @rest_endpoints[:settings]
27
+ make_api_request(path, HTTP_GET)
28
+ end
29
+
30
+ private
31
+
32
+ def define_rest_endpoints
33
+ {
34
+ :settings => "/v4/settings"
35
+ }
36
+ end
37
+ end
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright 2017 Smartwaiver
2
+ # Copyright 2018 Smartwaiver
3
3
  #
4
4
  # Licensed under the Apache License, Version 2.0 (the "License"); you may
5
5
  # not use this file except in compliance with the License. You may obtain
@@ -44,6 +44,16 @@ class SmartwaiverWaiverClient < SmartwaiverSDK::SmartwaiverBase
44
44
  make_api_request(path, HTTP_GET)
45
45
  end
46
46
 
47
+ def photos(waiver_id)
48
+ path = "#{@rest_endpoints[:waivers]}/#{waiver_id}/photos"
49
+ make_api_request(path, HTTP_GET)
50
+ end
51
+
52
+ def signatures(waiver_id)
53
+ path = "#{@rest_endpoints[:waivers]}/#{waiver_id}/signatures"
54
+ make_api_request(path, HTTP_GET)
55
+ end
56
+
47
57
  private
48
58
 
49
59
  def define_rest_endpoints
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright 2017 Smartwaiver
2
+ # Copyright 2018 Smartwaiver
3
3
  #
4
4
  # Licensed under the Apache License, Version 2.0 (the "License"); you may
5
5
  # not use this file except in compliance with the License. You may obtain
@@ -37,11 +37,23 @@ class SmartwaiverWebhookClient < SmartwaiverSDK::SmartwaiverBase
37
37
  make_api_request(path, HTTP_PUT, json)
38
38
  end
39
39
 
40
+ def delete
41
+ path = @rest_endpoints[:configure]
42
+ make_api_request(path, HTTP_DELETE)
43
+ end
44
+
45
+ def resend(waiver_id)
46
+ path = "#{@rest_endpoints[:resend]}/#{waiver_id}"
47
+ json = {}.to_json
48
+ make_api_request(path, HTTP_PUT, json)
49
+ end
50
+
40
51
  private
41
52
 
42
53
  def define_rest_endpoints
43
54
  {
44
- :configure => "/v4/webhooks/configure"
55
+ :configure => "/v4/webhooks/configure",
56
+ :resend => "/v4/webhooks/resend"
45
57
  }
46
58
  end
47
59
  end
@@ -0,0 +1,63 @@
1
+ #
2
+ # Copyright 2018 Smartwaiver
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License"); you may
5
+ # not use this file except in compliance with the License. You may obtain
6
+ # a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12
+ # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13
+ # License for the specific language governing permissions and limitations
14
+ # under the License.
15
+
16
+ require 'smartwaiver-sdk/smartwaiver_base'
17
+
18
+ class SmartwaiverWebhookQueuesClient < SmartwaiverSDK::SmartwaiverBase
19
+
20
+ WEBHOOK_AFTER_EMAIL_ONLY = 'yes'
21
+ WEBHOOK_BEFORE_EMAIL_ONLY = 'no'
22
+ WEBHOOK_BEFORE_AND_AFTER_EMAIL = 'both'
23
+
24
+ def initialize(api_key, api_endpoint = DEFAULT_API_ENDPOINT)
25
+ super(api_key, api_endpoint)
26
+ @rest_endpoints = define_rest_endpoints
27
+ end
28
+
29
+ def information
30
+ path = @rest_endpoints[:queues]
31
+ make_api_request(path, HTTP_GET)
32
+ end
33
+
34
+ def get_message
35
+ path = @rest_endpoints[:account]
36
+ make_api_request(path, HTTP_GET)
37
+ end
38
+
39
+ def delete_message(message_id)
40
+ path = "#{@rest_endpoints[:account]}/#{message_id}"
41
+ make_api_request(path, HTTP_DELETE)
42
+ end
43
+
44
+ def get_template_message(template_id)
45
+ path = "#{@rest_endpoints[:template]}/#{template_id}"
46
+ make_api_request(path, HTTP_GET)
47
+ end
48
+
49
+ def delete_template_message(template_id, message_id)
50
+ path = "#{@rest_endpoints[:template]}/#{template_id}/#{message_id}"
51
+ make_api_request(path, HTTP_DELETE)
52
+ end
53
+
54
+ private
55
+
56
+ def define_rest_endpoints
57
+ {
58
+ :queues => "/v4/webhooks/queues",
59
+ :account => "/v4/webhooks/queues/account",
60
+ :template => "/v4/webhooks/queues/template"
61
+ }
62
+ end
63
+ end