atozgen 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/atozgen.rb +131 -0
  3. metadata +45 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: dfdead45e8c541e5c67a4b7a8477e6cb69c277b344e5cdbaf6f9459a2f647886
4
+ data.tar.gz: d548d0cf13f3019b03f45302485410eaf5745a3efb91be18cf0cddb94c02204d
5
+ SHA512:
6
+ metadata.gz: 87e06fd26be60628c51ba02ef26322c412653e4173b5d72533aa96e4feeb3b5ee9b32e780f97cf7cfd2642bf751ff8881594f4f153430679ce698781676ac92d
7
+ data.tar.gz: 4dcb2e6ec7c798c9c1f6df3e67ad77a42810b946f25bd2c270bd433f23a4ed609b869ed3c7aaaabbcaccdc01198f8d1fca96b71c380c9389dc848e1de820b1d8
@@ -0,0 +1,131 @@
1
+ require "io/console"
2
+ require 'net/http'
3
+
4
+ module Atozgen
5
+ def self.init
6
+ puts "------------------------------------------------------------------------------"
7
+ puts "------------------------------WELCOME ON ATOZGEN------------------------------"
8
+ puts "------------------------------------------------------------------------------"
9
+ puts "\n"
10
+
11
+ self.form
12
+ end
13
+
14
+ protected
15
+ def self.hostname_filed(isretry = false)
16
+ puts "please enter atozgen server hostname* #{"(not allowed empty)" if isretry.eql?(true)}: "
17
+ hostname = STDIN.gets.chomp
18
+
19
+ if hostname.empty?
20
+
21
+ self.hostname_filed(true)
22
+ else
23
+
24
+ return hostname
25
+ end
26
+ end
27
+
28
+ def self.deviceid_filed(isretry = false)
29
+ puts "please enter device id* #{"(not allowed empty)" if isretry.eql?(true)}: "
30
+ deviceid = STDIN.gets.chomp
31
+
32
+ if deviceid.empty?
33
+
34
+ self.deviceid_filed(true)
35
+ else
36
+
37
+ return deviceid
38
+ end
39
+ end
40
+
41
+ def self.secretkey_filed(isretry = false)
42
+ puts "please enter secret key* #{"(not allowed empty)" if isretry.eql?(true)}: "
43
+ secretkey = STDIN.noecho(&:gets).chomp
44
+
45
+ if secretkey.empty?
46
+
47
+ self.secretkey_filed(true)
48
+ else
49
+
50
+ return secretkey
51
+ end
52
+ end
53
+
54
+ def self.answer_filed(hostname, isretry = false)
55
+ puts "are you sure the hostname you entered is '#{hostname}'* #{"(not allowed empty)" if isretry.eql?(true)} ? (y/n)"
56
+ answer = STDIN.gets.chomp
57
+
58
+ self.answer_filed(hostname, true) if answer.empty? || !["y", "yes", "n", "no"].include?(answer.downcase)
59
+
60
+ if ["n", "no"].include?(answer.downcase)
61
+ puts "\n\n\n\n"
62
+
63
+ self.init
64
+ end
65
+ end
66
+
67
+ def self.form
68
+ hostname = self.hostname_filed
69
+ deviceid = self.deviceid_filed
70
+ secretkey = self.secretkey_filed
71
+
72
+ self.answer_filed(hostname, isretry = false)
73
+
74
+ if self.validate?(hostname, deviceid, secretkey, (Rails.application.class.parent_name rescue "ATOZGEN"))
75
+
76
+ self.record(hostname, deviceid, secretkey)
77
+ else
78
+
79
+ puts "\n\n\n\n"
80
+ puts "------------------------------------------------------------------------------"
81
+ puts "invalid access. make sure the hostname, device id, and secret key are correct!"
82
+ puts "------------------------------------------------------------------------------"
83
+ puts "\n"
84
+
85
+ self.init
86
+ end
87
+ end
88
+
89
+ def self.record(hostname, deviceid, secretkey, filename = "keygen.txt")
90
+ File.open(filename, "w") do |file|
91
+ file.puts hostname
92
+ file.puts deviceid
93
+ file.puts secretkey
94
+ end
95
+ end
96
+
97
+ def self.read(filename = "keygen.txt")
98
+ values = []
99
+
100
+ File.open(filename, "r") do |file|
101
+ values[0] = file.gets.chomp
102
+ values[1] = file.gets.chomp
103
+ values[2] = file.gets.chomp
104
+ end
105
+
106
+ return values
107
+ end
108
+
109
+ def self.validate?(hostname, deviceid, secretkey, appname)
110
+ begin
111
+ uri = URI.parse("#{hostname}/v1/authorize")
112
+ http = Net::HTTP.new(uri.host, uri.port)
113
+ http.use_ssl = false
114
+ headers = {
115
+ "Content-Type" => "application/json"
116
+ }
117
+ request = Net::HTTP::Post.new(uri, headers)
118
+ request.body = {
119
+ deviceid: deviceid,
120
+ secretkey: secretkey,
121
+ appname: appname
122
+ }.to_json
123
+ response = http.request(request)
124
+
125
+ return response.code.eql?("200")
126
+ rescue
127
+
128
+ return false
129
+ end
130
+ end
131
+ end
metadata ADDED
@@ -0,0 +1,45 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: atozgen
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Dede Badru
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2018-09-06 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: client side serial number management, for the ATOZPAY projects access.
14
+ email:
15
+ - dede.badrujaman@gmail.com
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - lib/atozgen.rb
21
+ homepage: http://rubygems.org/gems/atozgen
22
+ licenses:
23
+ - MIT
24
+ metadata: {}
25
+ post_install_message:
26
+ rdoc_options: []
27
+ require_paths:
28
+ - lib
29
+ required_ruby_version: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ required_rubygems_version: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - ">="
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
39
+ requirements: []
40
+ rubyforge_project:
41
+ rubygems_version: 2.7.6
42
+ signing_key:
43
+ specification_version: 4
44
+ summary: client side serial number management.
45
+ test_files: []