apitool-client 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
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