apitool-client 0.0.2 → 0.0.3

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
  SHA1:
3
- metadata.gz: 9d43d80030c1b9463fc41297b58b197fd0e5602f
4
- data.tar.gz: 4b7167d5dfcc92b26bb4177529bff933cd71a0eb
3
+ metadata.gz: a6cceddeda9f01b785dfecc472890e7a96df0872
4
+ data.tar.gz: df155e75ffb3458311958390e898dc4abb132127
5
5
  SHA512:
6
- metadata.gz: b33ccb016ad0801330c7123a19d5316e60220e8bd96ba4313a3c89543e660383e2095da53bc56e2401bd562d0843e3b76d5a2b00d21ac94d890df2e28668780c
7
- data.tar.gz: 39e1c23de27dfdc4fdf435226ef0a8b1d2671414cae54e1fc988938a597b3a97978c5b8c93e3ad66757f224e37764c808dc2bc09944640ce4c77ff183d91d2b0
6
+ metadata.gz: d819d2a63f7e05b64f083c06c087563ca65910703e8c4956e783b46baede50e78bde7a3ea3a6ac2d52c5c1f0c552d72d67481c2135a4e868106ebb09c1bcf794
7
+ data.tar.gz: 4345c9e78248f61e82b15daac51db1ae9e52ea07600255530e6399b5730a92225887585c54a84009bbd8d21854034f8dc115292addbff46ca4051fb0b2dd4a34
@@ -24,4 +24,5 @@ Gem::Specification.new do |s|
24
24
  s.add_development_dependency "debugger2"
25
25
 
26
26
  s.add_dependency 'rest-client'
27
+ s.add_dependency 'rails'
27
28
  end
@@ -1,6 +1,9 @@
1
1
  require "apitool/client/version"
2
2
 
3
+ require "rails"
3
4
  require "rest-client"
5
+ require "apitool/client/logger"
6
+
4
7
  require "apitool/client/apitool_client"
5
8
  require "apitool/client/role"
6
9
  require "apitool/client/api_key"
@@ -8,6 +11,20 @@ require "apitool/client/vpn"
8
11
 
9
12
  module Apitool
10
13
  module Client
11
- # Your code goes here...
14
+
15
+ def self.logger
16
+ @logger || Apitool::Client::Logger
17
+ end
18
+
19
+ def self.logger=(logger)
20
+ @logger = logger
21
+ end
22
+
23
+ class Railtie < ::Rails::Railtie
24
+ initializer :apitool_client do |app|
25
+ Apitool::Client.logger = Rails.logger
26
+ end
27
+ end
28
+
12
29
  end
13
30
  end
@@ -35,36 +35,28 @@ protected
35
35
 
36
36
  def get(path, options = {})
37
37
  get_connection[request_uri(path)].get(headers) { |response, request, result, &block|
38
- @response = response
39
- @request = request
40
- @result = result
38
+ _update(response, request, result)
41
39
  yield response, request, result if block_given?
42
40
  }
43
41
  end
44
42
 
45
43
  def post(path, parameters)
46
44
  get_connection[request_uri(path)].post(parameters.to_json, headers) { |response, request, result, &block|
47
- @response = response
48
- @request = request
49
- @result = result
45
+ _update(response, request, result)
50
46
  yield response, request, result if block_given?
51
47
  }
52
48
  end
53
49
 
54
50
  def put(path, parameters)
55
51
  get_connection[request_uri(path)].put(parameters.to_json, headers) { |response, request, result, &block|
56
- @response = response
57
- @request = request
58
- @result = result
52
+ _update(response, request, result)
59
53
  yield response, request, result if block_given?
60
54
  }
61
55
  end
62
56
 
63
57
  def delete(path)
64
58
  get_connection[request_uri(path)].delete(headers) { |response, request, result, &block|
65
- @response = response
66
- @request = request
67
- @result = result
59
+ _update(response, request, result)
68
60
  yield response, request, result if block_given?
69
61
  }
70
62
  end
@@ -75,6 +67,18 @@ protected
75
67
 
76
68
  private
77
69
 
70
+ def _update(_response, _request, _result)
71
+ @response = _response
72
+ @request = _request
73
+ @result = _result
74
+
75
+ log = "#{result} - #{request[:method].upcase} - #{request[:url]} - payload[#{request[:payload] || ''}]"
76
+ if response.present? and response.kind_of? Array and response[0].has_key?(:message)
77
+ log = log + " - error[#{response[0][:message] || ''} | #{response[0][:details] || ''}]"
78
+ end
79
+ logger.info log
80
+ end
81
+
78
82
  def base_uri
79
83
  if @ssl
80
84
  "https://#{@host}:#{@port}"
@@ -95,4 +99,8 @@ private
95
99
  }
96
100
  end
97
101
 
102
+ def logger
103
+ Apitool::Client.logger
104
+ end
105
+
98
106
  end
@@ -0,0 +1,85 @@
1
+ class Apitool::Client::Logger < ::Logger
2
+
3
+ def self.error(message)
4
+ build.error(message)
5
+ end
6
+
7
+ def self.info(message)
8
+ build.info(message)
9
+ end
10
+
11
+ def self.debug(message)
12
+ build.debug(message)
13
+ end
14
+
15
+ def self.read_latest
16
+ path = Rails.root.join("log", file_name)
17
+ self.build unless File.exist?(path)
18
+ tail_output, _ = Manager::Popen.popen(%W(tail -n 2000 #{path}))
19
+ tail_output.split("\n")
20
+ end
21
+
22
+ def self.read_latest_for filename
23
+ path = Rails.root.join("log", filename)
24
+ tail_output, _ = Manager::Popen.popen(%W(tail -n 2000 #{path}))
25
+ tail_output.split("\n")
26
+ end
27
+
28
+ def self.build
29
+ new(Rails.root.join("log", file_name))
30
+ end
31
+
32
+ def self.file_name
33
+ file_name_noext + '.log'
34
+ end
35
+
36
+ def format_message(severity, timestamp, progname, msg)
37
+ "#{severity} : #{timestamp.strftime("%y-%m-%d %H:%M:%S:%L %z")} : #{msg}\n"
38
+ end
39
+
40
+ def self.archive
41
+ %x(gzip -c #{file_path} > #{targz_file_path})
42
+ end
43
+
44
+ def self.clear
45
+ %x(echo > #{file_path})
46
+ end
47
+
48
+ def self.size
49
+ if File.exist?(file_path)
50
+ File.new(file_path).size
51
+ else
52
+ 0
53
+ end
54
+ end
55
+
56
+ def self.targz_file_path
57
+ targz_file_name = "#{file_name}-" + %x(date "+%Y%m%d_%H%M%S").gsub("\n", '') + ".gz"
58
+ Rails.root.join("log", targz_file_name).to_s
59
+ end
60
+
61
+ def self.file_path
62
+ if Rails.root.present?
63
+ Rails.root.join("log", file_name).to_s
64
+ else
65
+ [Dir.pwd, "log", file_name].join("/").to_s
66
+ end
67
+ end
68
+
69
+ def self.build
70
+ # File.delete(file_path)
71
+ self.new(file_path)
72
+ end
73
+
74
+
75
+ ##########
76
+
77
+ def self.file_name_noext
78
+ "apitool_client"
79
+ end
80
+
81
+ def self.file_name
82
+ file_name_noext + ".log"
83
+ end
84
+
85
+ end
@@ -1,5 +1,5 @@
1
1
  module Apitool
2
2
  module Client
3
- VERSION = "0.0.2"
3
+ VERSION = "0.0.3"
4
4
  end
5
5
  end
@@ -0,0 +1,2 @@
1
+ *
2
+ !.gitignore
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: apitool-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Terranova David
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-28 00:00:00.000000000 Z
11
+ date: 2015-05-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -80,6 +80,20 @@ dependencies:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rails
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
83
97
  description: APITool client.
84
98
  email:
85
99
  - dterranova@adhara-cybersecurity.com
@@ -96,9 +110,11 @@ files:
96
110
  - lib/apitool/client.rb
97
111
  - lib/apitool/client/api_key.rb
98
112
  - lib/apitool/client/apitool_client.rb
113
+ - lib/apitool/client/logger.rb
99
114
  - lib/apitool/client/role.rb
100
115
  - lib/apitool/client/version.rb
101
116
  - lib/apitool/client/vpn.rb
117
+ - log/.gitignore
102
118
  - spec/apitool/client/api_key_spec.rb
103
119
  - spec/apitool/client/apitool_client_spec.rb
104
120
  - spec/apitool/client/role_spec.rb