-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrestServer.rb
103 lines (60 loc) · 1.65 KB
/
restServer.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
require 'sinatra'
require 'rubygems'
require 'mysql'
set :bind, '10.64.45.232'
set :port, 8080
# view all
get '/users' do
begin
#connect to DATABASE mydb
con = Mysql.new 'localhost', 'user', 'mavridis', 'mydb'
#connect to table ONLINE
rs = con.query("SELECT * FROM ONLINE")
n_rows = rs.num_rows
# Print all TABLE ONLINE
#printf("There are #{n_rows} rows in the result set")
print("+==+=========+==========================+=====+ \n")
print("|Id| NAME | DATE |USERS| \n")
print("+==+=========+==========================+=====+ \n")
n_rows.times do
print rs.fetch_row.join("|\s")
print("\n")
end
#return hash table online
ps = con.query("SELECT * FROM ONLINE")
return ps
rescue Mysql:: Error => e
puts e.errno
puts e.error
ensure
con.close if con
end
end
# create
post '/user' do
begin
#connect to DATABASE mydb
con = Mysql.new 'localhost', 'user', 'mavridis', 'mydb'
#create TABLE ONLINE ==> | Id | Name | Date | Users |
con.query("CREATE TABLE IF NOT EXISTS \
ONLINE(Id INT PRIMARY KEY AUTO_INCREMENT,Name VARCHAR(10), Date CHAR(30) , Users CHAR(3))")
#insert data into the TABLE ONLINE2
con.query("INSERT INTO ONLINE(Name, Date, Users) VALUES('#{params[:Name]}','#{params[:Date]}','#{params[:Users]}')")
rescue Mysql:: Error => e
puts e.errno
puts e.error
ensure
con.close if con
end
end
# update
put '/user/:id' do
return status 404 if user.nil?
user.save
status 202
end
delete '/user/:id' do
return status 404 if user.nil?
user.delete
status 202
end