-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.rb
More file actions
148 lines (126 loc) · 2.86 KB
/
main.rb
File metadata and controls
148 lines (126 loc) · 2.86 KB
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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
require 'sinatra'
require 'active_record'
#require 'sinatra/reloader'
require 'pg'
require 'pry'
require_relative 'db_config'
require_relative 'models/group'
require_relative 'models/message'
require_relative 'models/user'
enable :sessions
helpers do
def current_user
User.find_by(id: session[:user_id])
end
def logged_in?
current_user
end
end
get '/' do
@groups = Group.all
erb :index
end
get '/group/new' do
erb :addgroup
end
post '/messages' do
message = Message.new
message.group_id = params[:group_id]
message.content = params[:content]
message.user_id = current_user.id
message.save
redirect to("/groups/#{ params[:group_id] }")
end
post '/groups' do
group = Group.new
group.name = params[:name]
group.city = params[:city]
group.meeting_point = params[:meeting_point]
group.day_time = params[:day_time]
group.contact = params[:contact]
group.info = params[:info]
group.photo = params[:photo]
if group.save
redirect to('/')
else
erb :addgroup
end
end
get '/groups/:id' do
@group = Group.find(params[:id])
@photo = @group.photo
@city = @group.city
@meeting_point = @group.meeting_point
@day_time = @group.day_time
@contact = @group.contact
@info = @group.info
@messages= @group.messages
erb :grouppage
end
get '/groups/:id/edit' do
@group = Group.find(params[:id])
erb :edit
end
put '/groups/:id' do
group = Group.find( params[:id] )
group.name = params[:name]
group.city = params[:city]
group.meeting_point = params[:meeting_point]
group.day_time = params[:day_time]
group.contact = params[:contact]
group.info = params[:info]
group.photo = params[:photo]
group.save
redirect to("/groups/#{params[:id]}")
end
get '/search' do
if params["userInputName"]
@searchname = '%' + params['userInputName'] + '%'
@resultname = Group.where("name ILIKE '#{@searchname}'")
end
if params["userInputCity"]
@searchcity = '%' + params['userInputCity'] + '%'
@resultcity = Group.where("city ILIKE '#{@searchcity}'")
end
if params["userInputDay"]
@searchday = '%' + params['userInputDay'] + '%'
@resultday = Group.where("day_time ILIKE '#{@searchday}'")
end
erb :search
end
get '/signup' do
erb :signup
end
post '/signup' do
@user = User.new
@user.user_name = params[:user_name]
@user.user_email = params[:user_email]
@user.password = params[:password]
@user.save
session[:user_id] = @user.id
redirect to('/')
erb :signup
end
get '/login' do
erb :login
end
post '/session' do
user = User.find_by(user_email: params[:user_email])
if user && user.authenticate(params[:password])
session[:user_id] = user.id
redirect to('/')
else
erb :loginfail
end
end
delete '/session' do
session[:user_id] = nil
redirect to('/')
end
delete '/groups' do
group = Group.delete( params[:id] )
redirect to('/')
end
get '/about' do
erb :about
end