atozgen 0.0.1

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