Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions app.rb
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,14 @@ class MakersBnb < Sinatra::Base
Spaces.delete(params[:space_id])
redirect '/main_view'
end


get '/review-request/:host_id' do
@space_id_array = Spaces.find_hosts_spaces(params[:host_id])
# @user_id_array = Spaces.find_guest(space_id)
erb :host_review_requests
end

get '/booking/:space_id/book' do
@space_id = params[:space_id]
@current_space = Spaces.find(params[:space_id])
Expand Down
32 changes: 30 additions & 2 deletions lib/spaces.rb
Original file line number Diff line number Diff line change
Expand Up @@ -73,8 +73,36 @@ def self.delete_availability(availability_id)
DatabaseConnection.query("DELETE FROM availability WHERE availability_id = ($1)", [availability_id])
end



def self.find_hosts_spaces(user_id)
ids = DatabaseConnection.query("SELECT space_id FROM spaces WHERE user_id = $1;", [user_id])
ids.map { |id| id['space_id'] }
end

def self.find_guest(space_id)
guest_ids = DatabaseConnection.query(
"SELECT request.user_id
FROM spaces
JOIN availability ON availability.space_id = spaces.space_id
JOIN request ON request.availability_id = availability.availability_id
WHERE spaces.space_id = ($1)", [space_id]
)
guest_ids.map { |guest_id| guest_id['user_id']}

end

def self.find_guest_dates(space_id, user_id)
dates = DatabaseConnection.query(
"SELECT availability.dates
FROM spaces
JOIN availability ON availability.space_id = spaces.space_id
JOIN request ON request.availability_id = availability.availability_id
Where spaces.space_id = ($1) AND request.user_id = ($2)", [space_id, user_id]
)
dates.map { |dates| dates['dates']}

end


end

# def self.find(space_id)
Expand Down
12 changes: 12 additions & 0 deletions lib/user.rb
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,18 @@ def initialize(user_id:, username:, email:, fullname:, pw:)
@pw = pw
end

def self.all
table = DatabaseConnection.query('SELECT * FROM users ORDER BY user_id ASC')
table.map do |user|
User.new(user_id: user['user_id'], username: user['username'], email: user['email'],
fullname: user['fullname'], pw: user['pw'])
end
end

def self.find(user_id)
all.select { |user| user.user_id == user_id }.first
end

def self.add_user(username:, email:, fullname:, pw:)
encrypted_password = BCrypt::Password.create(pw)

Expand Down
19 changes: 19 additions & 0 deletions spec/features/host_review_requests_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
feature 'review requests for spaces owned by the user' do
scenario 'user approves a request' do
space_id = add_user_space_and_avaliability

visit("/booking/#{space_id}/book")

check '2022-01-02'
check '2022-01-03'
click_on 'Request'

visit('/review-requests')

check '2022-01-03'
click_on 'Approve'

expect(page).to have_content('2022-01-02')
expect(page).not_to have_content('2022-01-03')
end
end
37 changes: 37 additions & 0 deletions views/host_review_requests.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
<h1>Review Requests</h1>


<%@space_id_array.each do |space_id|%>

<%space = Spaces.find(space_id)%>
<%=space.space_display%><br>

<%@user_id_array = Spaces.find_guest(space_id)%>
<%@user_id_array.each do |user_id|%>

<%user = User.find(user_id)%>
<%=user.fullname%><br>

<%@guest_date_array = Spaces.find_guest_dates(space.space_id, user.user_id)%>
<%@guest_date_array.each do |date|%>
<%=date%><br>
<%end%>

<%end%>

<%end%>


<%# <% for each guest user that has booked the sapce %>

<%# <% display each date the guest user has booked as a checkbox %>
<%# <form action=""></form> %>


<%# <% end loop %>


<%# <% end loop %>


<%# r %>
2 changes: 1 addition & 1 deletion views/main_view.erb
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
</div>

<div class="space-host-review" id="<%=space.space_id%> space-host-review">
<form action='/' method='get'>
<form action='/review-request/<%= @current_user %>' method='get'>
<input type="hidden" value="<%=space.space_id%>">
<input type="submit" class="btn btn-secondary" value="Review Booking Requests">
</form>
Expand Down