engagespot 0.0.1

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.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/engagespot.rb +76 -0
  3. metadata +72 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 7b1984e0ad745debd9886f28138fc36b91c0dec75613c499fe6d3dc404aef1bf
4
+ data.tar.gz: 270f607fdb058372d6a3b63639ed186dd5d404da0a4fc205fcb0dda7b267b070
5
+ SHA512:
6
+ metadata.gz: 8694ab9f2409885e69d208b2b5087d6aea0d63e2ca35b9ab5e0561bb4b6463a050a5535ad879091b1491e111e1bfacdc99a28d8d00487a087b505450a2c639a4
7
+ data.tar.gz: bd34e19a4f3ad448faec7bfaf2c1a1f1bfc2017206c9a93673d87dea7adfec8e2f65491d92b94f2dfaad6107b183a8e0e4d7a6007291f6b0aa0f61eb73d8c64f
data/lib/engagespot.rb ADDED
@@ -0,0 +1,76 @@
1
+ require 'httparty'
2
+
3
+ class Engagespot
4
+ attr_reader :base_url, :api_key, :api_secret
5
+
6
+ def initialize(base_url: 'https://api.engagespot.co/v3', api_key: nil, api_secret: nil)
7
+ @base_url = base_url
8
+ @api_key = api_key || raise('api_key is required')
9
+ @api_secret = api_secret || raise('api_secret is required')
10
+ end
11
+
12
+ def send(send_request)
13
+ headers = {
14
+ 'Content-Type' => 'application/json',
15
+ 'X-ENGAGESPOT-API-KEY' => @api_key,
16
+ 'X-ENGAGESPOT-API-SECRET' => @api_secret
17
+ }
18
+
19
+ begin
20
+ response = HTTParty.post("#{@base_url}/notifications", headers: headers, body: send_request.to_json)
21
+ rescue Exception => ex
22
+ error = ex.to_s
23
+ return {
24
+ success: false,
25
+ message: error
26
+ }
27
+ else
28
+ response_code = response.code
29
+ if response_code == 202
30
+ return {
31
+ success: true,
32
+ message: response.parsed_response
33
+ }
34
+ else
35
+ return {
36
+ success: false,
37
+ message: response.parsed_response
38
+ }
39
+ end
40
+ end
41
+ end
42
+
43
+ def create_or_update_user(identifier, profile: nil)
44
+ raise 'identifier is required' if identifier.nil?
45
+
46
+ headers = {
47
+ 'Content-Type' => 'application/json',
48
+ 'X-ENGAGESPOT-API-KEY' => @api_key,
49
+ 'X-ENGAGESPOT-API-SECRET' => @api_secret
50
+ }
51
+
52
+ begin
53
+ url = "#{@base_url}/users/#{identifier}"
54
+ response = HTTParty.put(url, headers: headers, body: profile.to_json)
55
+ rescue Exception => ex
56
+ error = ex.to_s
57
+ return {
58
+ success: false,
59
+ message: error
60
+ }
61
+ else
62
+ response_code = response.code
63
+ if response_code == 200
64
+ return {
65
+ success: true,
66
+ message: response.parsed_response
67
+ }
68
+ else
69
+ return {
70
+ success: false,
71
+ message: response.parsed_response
72
+ }
73
+ end
74
+ end
75
+ end
76
+ end
metadata ADDED
@@ -0,0 +1,72 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: engagespot
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Anand (coded by ChatGPT)
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2023-04-02 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: json
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: net/http
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ description: A Ruby library for interacting with the Engagespot REST API.
42
+ email:
43
+ - anand@engagespot.co
44
+ executables: []
45
+ extensions: []
46
+ extra_rdoc_files: []
47
+ files:
48
+ - lib/engagespot.rb
49
+ homepage: https://github.com/yourusername/engagespot-ruby
50
+ licenses:
51
+ - MIT
52
+ metadata: {}
53
+ post_install_message:
54
+ rdoc_options: []
55
+ require_paths:
56
+ - lib
57
+ required_ruby_version: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ required_rubygems_version: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: '0'
67
+ requirements: []
68
+ rubygems_version: 3.3.7
69
+ signing_key:
70
+ specification_version: 4
71
+ summary: Engagespot REST API client for Ruby
72
+ test_files: []