Create model for votes with secure_id, title, and description
This commit is contained in:
parent
5e8cda6fc0
commit
f7f1807839
9 changed files with 106 additions and 10 deletions
35
vote.rb
35
vote.rb
|
|
@ -1,5 +1,14 @@
|
|||
require 'bundler/setup'
|
||||
require 'sinatra'
|
||||
require 'sinatra/activerecord'
|
||||
require 'bcrypt'
|
||||
require 'securerandom'
|
||||
|
||||
#set :database, 'sqlite3:db/vote.sqlite3'
|
||||
|
||||
class Vote < ActiveRecord::Base
|
||||
self.primary_key = "secure_id"
|
||||
end
|
||||
|
||||
def hash_password(password)
|
||||
BCrypt::Password.create(password).to_s
|
||||
|
|
@ -19,11 +28,9 @@ USERS = [
|
|||
enable :sessions
|
||||
|
||||
get '/' do
|
||||
if current_user
|
||||
erb :home
|
||||
else
|
||||
redirect '/login'
|
||||
end
|
||||
redirect '/login' unless current_user
|
||||
@votes = Vote.all
|
||||
erb :home
|
||||
end
|
||||
|
||||
get '/login' do
|
||||
|
|
@ -31,7 +38,6 @@ get '/login' do
|
|||
end
|
||||
|
||||
post '/login' do
|
||||
puts params
|
||||
user = USERS.find { |u| u.email == params[:email] }
|
||||
if user && verify_password(params[:password], user.password_hash)
|
||||
session.clear
|
||||
|
|
@ -48,6 +54,23 @@ post '/logout' do
|
|||
redirect '/login'
|
||||
end
|
||||
|
||||
get '/votes/new' do
|
||||
erb :votes_new
|
||||
end
|
||||
|
||||
get '/votes/:id' do
|
||||
@vote = Vote.find(params[:id])
|
||||
erb :votes_show
|
||||
end
|
||||
|
||||
post '/votes' do
|
||||
secure_id = SecureRandom.hex(8)
|
||||
@vote = Vote.create(secure_id: secure_id,
|
||||
title: params[:title],
|
||||
description: params[:description])
|
||||
redirect '/votes/' + secure_id
|
||||
end
|
||||
|
||||
helpers do
|
||||
def current_user
|
||||
if session[:user_id]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue