-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathutils.rb
102 lines (93 loc) · 1.95 KB
/
utils.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
require 'resolv'
require 'sequel'
def isDomain(domain)
#domain can have no http or https, so we need to check for that
domain = domain.gsub("http://", "").gsub("https://", "")
#check if domain is valid
if domain =~ /([-_a-zA-Z0-9]+\.[a-z]{1,3})\Z/
return true
else
return false
end
end
def isPointedToServer(domain)
begin
ip = Resolv.getaddress(domain)
if ip == ENV['SERVER_IP']
return true
else
return false
end
rescue Resolv::ResolvError
return false
end
end
def defineDBVars()
host = ENV['DB_HOST']
user = ENV['DB_USER']
password = ENV['DB_PASSWORD']
database = ENV['DB_DATABASE']
return host, user, password, database
end
def connectDB
if ENV['DATABASE'] == "sqlite"
db = Sequel.connect('sqlite://byod.db')
else
host, user, password, database = defineDBVars()
db = Sequel.postgres(host: host, user: user, password: password, database: database)
end
return db
end
def closeDB(db)
db.disconnect
end
def initDB
db = connectDB()
if db.table_exists?(:domains) == false
puts "Creating table as it does not exist".yellow
db.create_table :domains do
primary_key :id
String :domain
String :user
end
end
end
def doesDomainExist(domain)
db = connectDB()
if db[:domains].where(domain: domain).count > 0
closeDB(db)
return true
else
closeDB(db)
return false
end
end
def addDomain(domain, user)
db = connectDB()
db[:domains].insert(domain: domain, user: user)
closeDB(db)
end
def deleteDomain(domain)
db = connectDB()
begin
#string domain
domain = domain.to_s
db[:domains].where(domain: domain).delete
closeDB(db)
rescue Sequel::DatabaseError
closeDB(db)
return 0
end
end
def findAllDomainsToUser(user)
db = connectDB()
begin
user = user.to_s
domains = db[:domains].where(user: user)
closeDB(db)
return domains
rescue Sequel::DatabaseError
closeDB(db)
return 0
end
end