zyxt 0.0.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: b6d311a061bcd958a80455a76f200ba0b67a547812ba27579136c24d9e556a32
4
- data.tar.gz: 59b636ddcc4ee2e1d337ca818ba81f7f00c14698ee0c89a1172e8c285831477f
3
+ metadata.gz: a7a31df54bffa5395e874ddf4cfff1bb129a9eec56a30cc351c94322a1cbf29a
4
+ data.tar.gz: 101c5573e5fada7d28d5fd7dbe59ddb5a893810aa2f7ac851d78d104241a54df
5
5
  SHA512:
6
- metadata.gz: 24ad5317d2a00b89ebb6f1a575a7e023f413ed9c0edd1944a3dd97a805790b56337fd88763519e662b7e8998473997656fc3ec775519c5cd27bb7fe5df0557db
7
- data.tar.gz: 6f61bbc2e8eb1051a345ec71aba945678d4691ea5fcbab4b282031c8a83fd8656534d2e75ce18373ec747b90ec0555abd4dbdc1e233425012ca5176ccb65c5bc
6
+ metadata.gz: af0336b994f9ea27906fa4af93f19ba26554d4960af9e111e089349fdd4616f3db9f898b540aa083ee4c8624d529795231d9039833ea376b4dee809d894d5f5e
7
+ data.tar.gz: ec470652b15cda87f7d138f88cd8b49c59ed9a5b0292e7c0bb0ad6e8c022b402bf823ea5e6aa70fbb413ea54943e3a0588778d89d48129c452baba49a42926e3
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+ require "rubygems"
3
+
4
+ require_relative '../lib/request_client'
@@ -0,0 +1,32 @@
1
+ require "net/http"
2
+ require "uri"
3
+ require "json"
4
+
5
+ module Request
6
+ class Http
7
+ def self.send_request(method, url, body = nil, headers = nil)
8
+ methods = { "get" => Net::HTTP::Get, "post" => Net::HTTP::Post, "delete" => Net::HTTP::Delete, "put" => Net::HTTP::Put }
9
+ uri = URI.parse(url)
10
+ http = Net::HTTP.new(uri.host, uri.port)
11
+ http.use_ssl = (uri.scheme == "https")
12
+ request = methods[method].new(uri.request_uri)
13
+ request["User-Agent"] = "zyxt tool"
14
+ request["Accept"] = "*/*"
15
+ request["Content-Type"] = "application/json"
16
+ if !headers.nil?
17
+ headers.each do | key, value |
18
+ request[key] = value
19
+ end
20
+ end
21
+ if !body.nil?
22
+ request.body = body.to_json
23
+ end
24
+ response = http.request(request)
25
+ end
26
+
27
+ def self.log(response)
28
+ puts "Status Code: #{response.code}"
29
+ puts "Body: #{response.body}"
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,93 @@
1
+ require "thor"
2
+ require "json"
3
+ require "leveldb"
4
+ require "securerandom"
5
+ require_relative "./request"
6
+
7
+ module RequestClient
8
+ class Zyxt < Thor
9
+ attr_accessor :db
10
+ def self.exit_on_failure?
11
+ true
12
+ end
13
+
14
+ desc "history", "show history of requests"
15
+ def history
16
+ @db = LevelDB::DB.new '/tmp/foo'
17
+ @db.each { |key, val| puts "Key: #{key}, Val: #{val}" }
18
+ end
19
+
20
+ desc "get URL", "execute GET request to URL"
21
+ option :headers, :type => :hash, :desc => "Headers"
22
+ option :curl, :type => :boolean, :desc => "Print command as cURL"
23
+ def get(url)
24
+ if options[:curl]
25
+ puts "curl -X GET #{url}"
26
+ return nil
27
+ end
28
+
29
+ response = Request::Http.send_request("get", url, nil, options[:headers])
30
+ Request::Http.log(response)
31
+ save_request("get")
32
+ end
33
+
34
+ desc "post URL", "execute POST request to URL"
35
+ option :body, :type => :hash, :desc => "Body of the request"
36
+ option :headers, :type => :hash, :desc => "Headers"
37
+ option :curl, :type => :boolean, :desc => "Print command as cURL"
38
+ def post(url)
39
+ if options[:curl]
40
+ puts "curl -X POST #{url} -H 'Content-Type: application/json' -d #{options[:body]}"
41
+ return nil
42
+ end
43
+
44
+ response = Request::Http.send_request("post", url, options[:body], options[:headers])
45
+ Request::Http.log(response)
46
+ save_request("post")
47
+ end
48
+
49
+ desc "put URL", "execute PUT request to URL"
50
+ option :body, :type => :hash, :desc => "Body of the request"
51
+ option :headers, :type => :hash, :desc => "Headers"
52
+ option :curl, :type => :boolean, :desc => "Print command as cURL"
53
+ def put(url)
54
+ if options[:curl]
55
+ puts "curl -X PUT #{url} -H 'Content-Type: application/json' -d #{options[:body]}"
56
+ return nil
57
+ end
58
+
59
+ response = Request::Http.send_request("put", url, options[:body], options[:headers])
60
+ Request::Http.log(response)
61
+ save_request("put")
62
+ end
63
+
64
+ desc "delete URL", "execute DELETE request to URL"
65
+ option :headers, :type => :hash, :desc => "Headers"
66
+ option :curl, :type => :boolean, :desc => "Print command as cURL"
67
+ def delete(url)
68
+ if options[:curl]
69
+ puts "curl -X DELETE #{url}"
70
+ return nil
71
+ end
72
+
73
+ response = Request::Http.send_request("delete", url, nil, options[:headers])
74
+ Request::Http.log(response)
75
+ save_request("delete")
76
+ end
77
+
78
+
79
+ no_commands do
80
+ def save_request(method)
81
+ if @db.nil?
82
+ @db = LevelDB::DB.new '/tmp/foo'
83
+ end
84
+
85
+ tempHash = {"hash" => "Command executed #{method}", "executed_at" => Time.now}
86
+
87
+ @db.put(SecureRandom.hex, tempHash)
88
+ end
89
+ end
90
+ end
91
+ end
92
+
93
+ RequestClient::Zyxt.start(ARGV)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zyxt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rafael Matsumoto
@@ -10,13 +10,16 @@ bindir: bin
10
10
  cert_chain: []
11
11
  date: 2020-08-22 00:00:00.000000000 Z
12
12
  dependencies: []
13
- description: REST Client developed for acamedic reasons
13
+ description: REST Client developed for academic reasons
14
14
  email: rafaelmatsumoto43@gmail.com
15
- executables: []
15
+ executables:
16
+ - zyxt
16
17
  extensions: []
17
18
  extra_rdoc_files: []
18
19
  files:
19
- - lib/zyxt.rb
20
+ - bin/zyxt
21
+ - lib/request.rb
22
+ - lib/request_client.rb
20
23
  homepage: https://rubygems.org/gems/zyxt
21
24
  licenses:
22
25
  - MIT
@@ -1,14 +0,0 @@
1
- require "thor"
2
-
3
- class CLI < Thor
4
- def self.exit_on_failure?
5
- true
6
- end
7
-
8
- desc "hello NAME", "say hello to NAME"
9
- def hello(name)
10
- puts "Hello #{name}"
11
- end
12
- end
13
-
14
- CLI.start