cherrypie-rails-sdk 0.2.1 → 0.2.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: afd1782fb8646ccdaa8bc47b58691931debc6df956d9e3bad457f035eeea4d4a
4
- data.tar.gz: 04d51804252a49e9561f231668f433453b1a07897731db4c0e72985caaf6b6a1
3
+ metadata.gz: 852bae24086202eb021ffdcf15fcfc710eb2d045f27086fd4d4628c3aea409e0
4
+ data.tar.gz: 52bf68d9350f8b42518f3020e2e3105c15e64e1cf5007bd25856930c8376ca35
5
5
  SHA512:
6
- metadata.gz: 5cb7b41e5cc61a582923f196bd904e3d4ceb5996ff51c2241196d693e6348d38714836966dfe8ccf8cb75389edf5c8522de646c2fafdf6be0d5af875562f61bc
7
- data.tar.gz: 19d8133cb1cf8bd40957bbc0c7ba57d87d99a807cc10661bf89da5c2c6d71cf59bee5cf1723644ffe89ff4df1bb5915f061b9cd84c7770012578abbd96ab046b
6
+ metadata.gz: c2f3815c568f17d1a64910e4ab58c612c146c16b9b7cb416ee74644ca872628f7477107100238beee4cde04b793b5182e1f3db679f3e6e429fd8739be63a9088
7
+ data.tar.gz: b6d830eabcf6536bb75ff2b158d71720b4dd91d9f8215ec7cccf9444179731e661c487855b9a28a048525c3c95970d457ef989415d5c67c8f7cfc51c83eba155
@@ -5,10 +5,11 @@ require_relative "cherrypie_rails_sdk/version"
5
5
  module CherrypieRailsSdk
6
6
  class Error < StandardError; end
7
7
  class Middleware
8
- def initialize(app, api_key, api_url)
8
+ def initialize(app, api_key, api_url = "https://api.cherrypie.app", identity_function)
9
9
  @app = app
10
10
  @api_key = api_key
11
11
  @api_url = api_url
12
+ @identity_function = identity_function
12
13
  end
13
14
 
14
15
  def call env
@@ -16,19 +17,24 @@ module CherrypieRailsSdk
16
17
  end
17
18
 
18
19
  def _build_request_payload(request)
20
+ headers = {}
21
+ request.headers.each {|key, value|
22
+ headers.merge(key: value)
23
+ }
19
24
  return {
20
- "path": request.fullpath,
21
- "method": request.method,
22
- "headers": request.headers,
23
- "body": request.body,
25
+ "path"=> request.fullpath,
26
+ "method"=> request.method,
27
+ "headers"=> headers,
28
+ "body"=> request.body,
24
29
  }
25
30
  end
26
31
 
27
32
  def _build_response_payload(status, headers, response)
33
+ body = response.respond_to?(:body)
28
34
  return {
29
- "headers": headers,
30
- "body": response.body,
31
- "statusCode": status,
35
+ "headers"=> headers,
36
+ "body"=> body,
37
+ "statusCode"=> status,
32
38
  }
33
39
  end
34
40
 
@@ -37,29 +43,27 @@ module CherrypieRailsSdk
37
43
  @status, @headers, @response = @app.call(env)
38
44
  request_ended_on = Time.now
39
45
  request = ActionDispatch::Request.new(env)
46
+
40
47
  @log_level = :info
48
+ # Rails.logger.send(@log_level, '=' * 50)
49
+ # Rails.logger.send(@log_level, "Request delta time: #{request_ended_on - request_started_on} seconds.")
50
+ # Rails.logger.send(@log_level, '=' * 50)
51
+
52
+ response_time = (request_ended_on - request_started_on) * 1000
41
53
 
42
- Rails.logger.send(@log_level, '=' * 50)
43
- Rails.logger.send(@log_level, "Request delta time: #{request_ended_on - request_started_on} seconds.")
44
- Rails.logger.send(@log_level, '=' * 50)
45
-
54
+ account = @identity_function[request]
46
55
  payload = {
47
56
  "logEntry" => {
48
- "account"=> {
49
- "entityKey"=> "1",
50
- "name"=> "RAILS",
51
- },
57
+ "account"=> account,
52
58
  "clientIP"=> request.ip,
53
- "request"=> _build_request_payload(@request),
59
+ "request"=> _build_request_payload(request),
54
60
  "response"=> _build_response_payload(@status, @headers, @response),
55
- "responseTime"=> 1000, # ms
61
+ "responseTime"=> response_time, # ms
56
62
  }
57
- }.to_json
58
-
59
-
60
- uri = URI('http://cherry-be-staging.herokuapp.com/v1/logs')
63
+ } .to_json
64
+
65
+ uri = URI("#{@api_url}/v1/logs")
61
66
  http = Net::HTTP.new(uri.host, uri.port)
62
- puts(@api_key)
63
67
  request = Net::HTTP::Post.new(
64
68
  uri.request_uri,
65
69
  {
@@ -71,8 +75,7 @@ module CherrypieRailsSdk
71
75
  request.body = payload
72
76
 
73
77
  response = http.request(request)
74
- puts(response.body)
75
-
78
+
76
79
  [@status, @headers, @response]
77
80
  end
78
81
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module CherrypieRailsSdk
4
- VERSION = "0.2.1"
4
+ VERSION = "0.2.2"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cherrypie-rails-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Macro Computer Club