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
80 changes: 59 additions & 21 deletions app.rb
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
require 'sinatra/base'
require 'sinatra/reloader'
require_relative './lib/user_repository'
require_relative './lib/dm_repository'
require 'sinatra/flash'
require_relative './lib/database_connection'
require "sinatra/base"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I always prefer a " over a ' 😀

require "sinatra/reloader"
require_relative "./lib/user_repository"
require_relative "./lib/dm_repository"
require "sinatra/flash"
require_relative "./lib/database_connection"

DatabaseConnection.connect

Expand All @@ -14,35 +14,73 @@ class Application < Sinatra::Base
register Sinatra::Reloader
register Sinatra::Flash
enable :sessions
also_reload './lib/user_repository'
also_reload "./lib/user_repository"
also_reload "./lib/dm_repository"
end

def check_handle_exists(handle)
user_repo = UserRepository.new
return user_repo.list_handles.include?(handle)
end

post '/login' do
post "/login" do
handle = params[:handle]
if check_handle_exists(handle)
session[:handle] = handle
redirect '/'
redirect "/"
else
flash[:invalid_handle] = "Handle Does Not Exist"
redirect '/'
redirect "/"
end
end

get '/logout' do
get "/logout" do
session[:handle] = nil
redirect '/'
redirect "/"
end

get '/' do
get "/" do
@dm_repo = DMRepository.new
if session[:handle]
@inbox = @dm_repo.find_inbox(session[:handle])
end
@inbox = @dm_repo.find_inbox(session[:handle]) if session[:handle]
return erb(:index)
end

get "/send_message" do
return erb(:send_message)
end

post "/send_message" do
if !check_handle_exists(params[:recipient_handle])
flash[:invalid_handle] = "Handle Does Not Exist"
redirect "/send_message"
elsif blocked?(session[:handle], params[:recipient_handle])
flash[:blocked] = "You are blocked by this user, message can't be sent"
redirect "/send_message"
else
new_dm = DM.new
new_dm.recipient_handle = params[:recipient_handle]
new_dm.contents = params[:contents]
new_dm.sender_handle = session[:handle]

@dm_repo = DMRepository.new
@dm_repo.add(new_dm)
flash[:message_sent] = "Message sent"
redirect "/send_message"
end
end

helpers do
def check_handle_exists(handle)
user_repo = UserRepository.new
return user_repo.list_handles.include?(handle)
end

def blocked?(sender_handle, recipient_handle)
user_repo = UserRepository.new
recipient_id = user_repo.find_id(recipient_handle)
blocked_users = user_repo.find_blocked(recipient_id)

blocked = false
blocked_users.each do |user|
user.handle == sender_handle ? blocked = true : next
end

return blocked
end
end
end
2 changes: 1 addition & 1 deletion coverage/.last_run.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"result": {
"line": 89.23
"line": 99.31
}
}
Loading