From 08cadfab726ee31fcc01f811da8220a1d252e67b Mon Sep 17 00:00:00 2001 From: Michael Bashour Date: Thu, 11 Dec 2014 14:32:50 -0600 Subject: [PATCH 01/24] Edit .gitignore file --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index e941da68..8f2ea268 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ .bundle vendor/bundle .DS_Store +.gems +Gemfile +Gemfile.lock \ No newline at end of file From 05ae4174d9bf37d609cb03d1b07d02a8b8eaac6e Mon Sep 17 00:00:00 2001 From: charles milam Date: Thu, 11 Dec 2014 14:53:34 -0600 Subject: [PATCH 02/24] Test of collaborative push and pull --- test.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 test.txt diff --git a/test.txt b/test.txt new file mode 100644 index 00000000..b7d10fef --- /dev/null +++ b/test.txt @@ -0,0 +1 @@ +Howdy \ No newline at end of file From 749dc73dd817acb92be8a8f44da9fdf2f7b79b98 Mon Sep 17 00:00:00 2001 From: Michael Bashour Date: Thu, 11 Dec 2014 14:57:56 -0600 Subject: [PATCH 03/24] delete test.txt --- test.txt | 1 - 1 file changed, 1 deletion(-) delete mode 100644 test.txt diff --git a/test.txt b/test.txt deleted file mode 100644 index b7d10fef..00000000 --- a/test.txt +++ /dev/null @@ -1 +0,0 @@ -Howdy \ No newline at end of file From 9a4a79574e0d9e3938579c057d97625bb9d930ec Mon Sep 17 00:00:00 2001 From: Michael Bashour Date: Thu, 11 Dec 2014 15:46:37 -0600 Subject: [PATCH 04/24] Created initial files. --- lib/pet-shop-server/petshop.rb | 0 lib/pet-shop-server/repos/pets_repo.rb | 0 lib/pet-shop-server/repos/shops_repo.rb | 0 lib/pet-shop-server/repos/users_repo.rb | 0 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 lib/pet-shop-server/petshop.rb create mode 100644 lib/pet-shop-server/repos/pets_repo.rb create mode 100644 lib/pet-shop-server/repos/shops_repo.rb create mode 100644 lib/pet-shop-server/repos/users_repo.rb diff --git a/lib/pet-shop-server/petshop.rb b/lib/pet-shop-server/petshop.rb new file mode 100644 index 00000000..e69de29b diff --git a/lib/pet-shop-server/repos/pets_repo.rb b/lib/pet-shop-server/repos/pets_repo.rb new file mode 100644 index 00000000..e69de29b diff --git a/lib/pet-shop-server/repos/shops_repo.rb b/lib/pet-shop-server/repos/shops_repo.rb new file mode 100644 index 00000000..e69de29b diff --git a/lib/pet-shop-server/repos/users_repo.rb b/lib/pet-shop-server/repos/users_repo.rb new file mode 100644 index 00000000..e69de29b From 99fff708254c641f28e306b8612c662bb8ee24ec Mon Sep 17 00:00:00 2001 From: Michael Bashour Date: Thu, 11 Dec 2014 15:59:51 -0600 Subject: [PATCH 05/24] Create shops_repo.rb --- lib/pet-shop-server/repos/shops_repo.rb | 15 +++++++++++++++ server.rb | 4 ++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/lib/pet-shop-server/repos/shops_repo.rb b/lib/pet-shop-server/repos/shops_repo.rb index e69de29b..bfc34b54 100644 --- a/lib/pet-shop-server/repos/shops_repo.rb +++ b/lib/pet-shop-server/repos/shops_repo.rb @@ -0,0 +1,15 @@ +module PetShopServer + class ShopsRepo + def self.all db + sql = %q[SELECT * FROM petshops] + result = db.exec(sql) + result.entries + end + + def self.find db, id + sql = %q[SELECT * FROM petshops WHERE id = $1] + result = db.exec(sql, [id]) + result.first + end + end +end diff --git a/server.rb b/server.rb index 07df95f4..700b6fcd 100644 --- a/server.rb +++ b/server.rb @@ -1,6 +1,7 @@ require 'sinatra' require 'sinatra/reloader' require 'rest-client' +require 'pg' require 'json' # # @@ -18,8 +19,7 @@ # ...the rest are JSON endpoints # get '/shops' do - headers['Content-Type'] = 'application/json' - RestClient.get("http://pet-shop.api.mks.io/shops") + end post '/signin' do From dfb8be69ea9a72ab99b7b6e2c97f108d71b4c631 Mon Sep 17 00:00:00 2001 From: charles milam Date: Thu, 11 Dec 2014 17:24:52 -0600 Subject: [PATCH 06/24] Add methods all, find and find_by_name --- lib/pet-shop-server/repos/pets_repo.rb | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/lib/pet-shop-server/repos/pets_repo.rb b/lib/pet-shop-server/repos/pets_repo.rb index e69de29b..70137d5b 100644 --- a/lib/pet-shop-server/repos/pets_repo.rb +++ b/lib/pet-shop-server/repos/pets_repo.rb @@ -0,0 +1,19 @@ +module Blogtastic + class PetsRepo + def self.all db + sql = %q[select * from posts] + result = db.exec(sql) + result.entries + end + + def self.find db, id + sql = %[select * from pets where id = $1] + result = db.exec(sql, [id]) + result.first + end + + def self.find_by_name db, name + sql = %[select * from ] + end + end +end \ No newline at end of file From ec11daf511a7f7ab03f3ecdd593a7d1a500f96ee Mon Sep 17 00:00:00 2001 From: charles milam Date: Thu, 11 Dec 2014 17:45:32 -0600 Subject: [PATCH 07/24] Modify methods all, name to correct spelling errors. --- lib/pet-shop-server/repos/users_repo.rb | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/lib/pet-shop-server/repos/users_repo.rb b/lib/pet-shop-server/repos/users_repo.rb index e69de29b..3cec6a67 100644 --- a/lib/pet-shop-server/repos/users_repo.rb +++ b/lib/pet-shop-server/repos/users_repo.rb @@ -0,0 +1,19 @@ +module Blogtastic + class UsersRepo + def self.all db + sql = %q[select * from posts] + result = db.exec(sql) + result.entries + end + + def self.find db, id + sql = %[select * from pets where id = $1] + result = db.exec(sql, [id]) + result.first + end + + def self.find_by_name db, name + sql = %[select * from pets] + end + end +end \ No newline at end of file From 79e5c95d04de080b79b595fa78e6bfa6f243f243 Mon Sep 17 00:00:00 2001 From: charles milam Date: Thu, 11 Dec 2014 17:46:22 -0600 Subject: [PATCH 08/24] Add methods all, find, find_by_name --- lib/pet-shop-server/repos/pets_repo.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/pet-shop-server/repos/pets_repo.rb b/lib/pet-shop-server/repos/pets_repo.rb index 70137d5b..20f4f57d 100644 --- a/lib/pet-shop-server/repos/pets_repo.rb +++ b/lib/pet-shop-server/repos/pets_repo.rb @@ -1,19 +1,19 @@ module Blogtastic class PetsRepo def self.all db - sql = %q[select * from posts] + sql = %q[select * from users] result = db.exec(sql) result.entries end def self.find db, id - sql = %[select * from pets where id = $1] + sql = %[select * from users where id = $1] result = db.exec(sql, [id]) result.first end def self.find_by_name db, name - sql = %[select * from ] + sql = %[select * from users] end end end \ No newline at end of file From 0ba0e6687409312064bf6015191db3979901b0fe Mon Sep 17 00:00:00 2001 From: charles milam Date: Thu, 11 Dec 2014 17:55:30 -0600 Subject: [PATCH 09/24] Modify names --- lib/pet-shop-server/repos/users_repo.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/pet-shop-server/repos/users_repo.rb b/lib/pet-shop-server/repos/users_repo.rb index 3cec6a67..0ad1925a 100644 --- a/lib/pet-shop-server/repos/users_repo.rb +++ b/lib/pet-shop-server/repos/users_repo.rb @@ -1,19 +1,19 @@ module Blogtastic class UsersRepo def self.all db - sql = %q[select * from posts] + sql = %q[select * from users] result = db.exec(sql) result.entries end def self.find db, id - sql = %[select * from pets where id = $1] + sql = %[select * from users where id = $1] result = db.exec(sql, [id]) result.first end def self.find_by_name db, name - sql = %[select * from pets] + sql = %[select * from users] end end end \ No newline at end of file From f691a3d62639a20dc20523b203d8e7300f31907a Mon Sep 17 00:00:00 2001 From: charles milam Date: Thu, 11 Dec 2014 17:56:11 -0600 Subject: [PATCH 10/24] Modify to correct poor typing on charles' part. --- lib/pet-shop-server/repos/pets_repo.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/pet-shop-server/repos/pets_repo.rb b/lib/pet-shop-server/repos/pets_repo.rb index 20f4f57d..ae17735c 100644 --- a/lib/pet-shop-server/repos/pets_repo.rb +++ b/lib/pet-shop-server/repos/pets_repo.rb @@ -1,19 +1,19 @@ module Blogtastic class PetsRepo def self.all db - sql = %q[select * from users] + sql = %q[select * from pets] result = db.exec(sql) result.entries end def self.find db, id - sql = %[select * from users where id = $1] + sql = %[select * from pets where id = $1] result = db.exec(sql, [id]) result.first end def self.find_by_name db, name - sql = %[select * from users] + sql = %[select * from pets] end end end \ No newline at end of file From e786ad3561dc7b59fc10e2c56440a83cb029619f Mon Sep 17 00:00:00 2001 From: charles milam Date: Thu, 11 Dec 2014 18:01:38 -0600 Subject: [PATCH 11/24] Add configure method for enabling sessions, and rack flash. --- server.rb | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/server.rb b/server.rb index 700b6fcd..bb14bb3f 100644 --- a/server.rb +++ b/server.rb @@ -4,9 +4,16 @@ require 'pg' require 'json' +require_relative "lib/petshops.rb" + # # # This is our only html view... # +configure do + enable :sessions + use Rack::Flash +end + get '/' do if session[:user_id] # TODO: Grab user from database From 9ba54d08fcca88f61b42ebc6a92e38e34f8b512f Mon Sep 17 00:00:00 2001 From: charles milam Date: Thu, 11 Dec 2014 18:27:57 -0600 Subject: [PATCH 12/24] Modify module name --- lib/pet-shop-server/repos/pets_repo.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/pet-shop-server/repos/pets_repo.rb b/lib/pet-shop-server/repos/pets_repo.rb index ae17735c..9d4998f9 100644 --- a/lib/pet-shop-server/repos/pets_repo.rb +++ b/lib/pet-shop-server/repos/pets_repo.rb @@ -1,4 +1,4 @@ -module Blogtastic +module PetShopServer class PetsRepo def self.all db sql = %q[select * from pets] From 9998ea57f1673d10d41e354d72297782f8a76e56 Mon Sep 17 00:00:00 2001 From: charles milam Date: Thu, 11 Dec 2014 18:28:36 -0600 Subject: [PATCH 13/24] Modify module name. --- lib/pet-shop-server/repos/users_repo.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/pet-shop-server/repos/users_repo.rb b/lib/pet-shop-server/repos/users_repo.rb index 0ad1925a..44413cc3 100644 --- a/lib/pet-shop-server/repos/users_repo.rb +++ b/lib/pet-shop-server/repos/users_repo.rb @@ -1,4 +1,4 @@ -module Blogtastic +module PetShopServer class UsersRepo def self.all db sql = %q[select * from users] From cd5ed6f1c99957781a0637074fe2492d82a825b0 Mon Sep 17 00:00:00 2001 From: charles milam Date: Thu, 11 Dec 2014 18:32:14 -0600 Subject: [PATCH 14/24] Add requires and method create_db_connection --- lib/pet-shop-server/petshop.rb | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/pet-shop-server/petshop.rb b/lib/pet-shop-server/petshop.rb index e69de29b..666578f0 100644 --- a/lib/pet-shop-server/petshop.rb +++ b/lib/pet-shop-server/petshop.rb @@ -0,0 +1,12 @@ +require 'pg' + +require_relative 'pet-shop-server/repos/pets_repo.rb' +require_relative 'pet-shop-server/repos/shops_repo.rb' +require_relative 'pet-shop-server/repos/users_repo.rb' +#pet-shop-server + +module PetShopServer + def self.create_db_connection(dbname) + PG.connect(dbname: dbname) + end +end \ No newline at end of file From e9060121895fa0b764f7430e1dbe482525216c41 Mon Sep 17 00:00:00 2001 From: charles milam Date: Thu, 11 Dec 2014 18:34:59 -0600 Subject: [PATCH 15/24] Modify paths for required files. --- lib/pet-shop-server/petshop.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/pet-shop-server/petshop.rb b/lib/pet-shop-server/petshop.rb index 666578f0..0aaced5e 100644 --- a/lib/pet-shop-server/petshop.rb +++ b/lib/pet-shop-server/petshop.rb @@ -1,8 +1,8 @@ require 'pg' -require_relative 'pet-shop-server/repos/pets_repo.rb' -require_relative 'pet-shop-server/repos/shops_repo.rb' -require_relative 'pet-shop-server/repos/users_repo.rb' +require_relative 'repos/pets_repo.rb' +require_relative 'repos/shops_repo.rb' +require_relative 'repos/users_repo.rb' #pet-shop-server module PetShopServer From 615ed470c1f628e51adc17d0244db579cca2cc67 Mon Sep 17 00:00:00 2001 From: charles milam Date: Thu, 11 Dec 2014 18:37:02 -0600 Subject: [PATCH 16/24] Modify endpoint / to attempt to grab user. Errors. --- server.rb | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/server.rb b/server.rb index bb14bb3f..d4739082 100644 --- a/server.rb +++ b/server.rb @@ -4,20 +4,22 @@ require 'pg' require 'json' -require_relative "lib/petshops.rb" +require_relative "lib/pet-shop-server/petshop.rb" # # # This is our only html view... # configure do enable :sessions - use Rack::Flash + #use Rack::Flash end get '/' do if session[:user_id] # TODO: Grab user from database - @current_user = $sample_user + db = PetShopServer.create_db_connection 'petshop' + @current_user = PetShopServer::UsersRepo.find db, user_id + #@current_user = $sample_user end erb :index end From 9bc799b295ee44e173b0f39e3006da2a8a559685 Mon Sep 17 00:00:00 2001 From: Michael Bashour Date: Fri, 12 Dec 2014 11:47:26 -0600 Subject: [PATCH 17/24] Reset server.rb --- lib/pet-shop-server/petshop.rb | 2 +- server.rb | 21 +++++++++++---------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/lib/pet-shop-server/petshop.rb b/lib/pet-shop-server/petshop.rb index 0aaced5e..ab871acf 100644 --- a/lib/pet-shop-server/petshop.rb +++ b/lib/pet-shop-server/petshop.rb @@ -7,6 +7,6 @@ module PetShopServer def self.create_db_connection(dbname) - PG.connect(dbname: dbname) + PG::Connection.new(:dbname: dbname) end end \ No newline at end of file diff --git a/server.rb b/server.rb index d4739082..dbb52dc5 100644 --- a/server.rb +++ b/server.rb @@ -4,23 +4,23 @@ require 'pg' require 'json' -require_relative "lib/pet-shop-server/petshop.rb" +require_relative 'lib/pet-shop-server/petshop.rb' -# # -# This is our only html view... -# configure do enable :sessions - #use Rack::Flash end -get '/' do +before do if session[:user_id] # TODO: Grab user from database - db = PetShopServer.create_db_connection 'petshop' - @current_user = PetShopServer::UsersRepo.find db, user_id - #@current_user = $sample_user + @current_user = $sample_user end +end +# # +# This is our only html view... +# +get '/' do + erb :index end @@ -28,7 +28,8 @@ # ...the rest are JSON endpoints # get '/shops' do - + headers['Content-Type'] = 'application/json' + RestClient.get("http://pet-shop.api.mks.io/shops") end post '/signin' do From 0d8aca6e432be6e5e93c067ee517444798e6d719 Mon Sep 17 00:00:00 2001 From: Michael Bashour Date: Fri, 12 Dec 2014 11:54:32 -0600 Subject: [PATCH 18/24] Continue to update server connection file. --- server.rb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/server.rb b/server.rb index dbb52dc5..955ddf2e 100644 --- a/server.rb +++ b/server.rb @@ -11,8 +11,11 @@ end before do + if session[:user_id] # TODO: Grab user from database + db = PetShopServer.create_db_connection 'petshop' + @current_user = $sample_user end end From c40db7e53d3b8bc21f14e2954d87f480cbc4e48f Mon Sep 17 00:00:00 2001 From: Michael Bashour Date: Fri, 12 Dec 2014 13:57:47 -0600 Subject: [PATCH 19/24] Building revised user object. --- lib/pet-shop-server/petshop.rb | 2 +- lib/pet-shop-server/repos/pets_repo.rb | 71 ++++++++++++++++++++++++++ server.rb | 4 +- 3 files changed, 74 insertions(+), 3 deletions(-) diff --git a/lib/pet-shop-server/petshop.rb b/lib/pet-shop-server/petshop.rb index ab871acf..aaf71f1a 100644 --- a/lib/pet-shop-server/petshop.rb +++ b/lib/pet-shop-server/petshop.rb @@ -7,6 +7,6 @@ module PetShopServer def self.create_db_connection(dbname) - PG::Connection.new(:dbname: dbname) + PG::Connection.new(dbname: dbname) end end \ No newline at end of file diff --git a/lib/pet-shop-server/repos/pets_repo.rb b/lib/pet-shop-server/repos/pets_repo.rb index 9d4998f9..0ee21eb6 100644 --- a/lib/pet-shop-server/repos/pets_repo.rb +++ b/lib/pet-shop-server/repos/pets_repo.rb @@ -12,6 +12,77 @@ def self.find db, id result.first end + def self.build_user db, id + # sql = %[select * from pets where id = $1] + # result = db.exec(sql, [id]) + catSql = %q[SELECT + users.username, + users.password, + pets.id, + pets.name, + pets.image_url, + pets.happiness, + pets.adopted, + pets.shop_id, + pets.userid, + pets.species + FROM + public.pets, + public.users + WHERE + users.id = $1 AND + users.id = pets.userid AND + pets.species = 'cat'; ] + dogSql = %q[SELECT + users.username, + users.password, + pets.id, + pets.name, + pets.image_url, + pets.happiness, + pets.adopted, + pets.shop_id, + pets.userid, + pets.species + FROM + public.pets, + public.users + WHERE + users.id = $1 AND + users.id = pets.userid AND + pets.species = 'dog'; ] + catResult = db.exec(catSql, 999) + dogResult = db.exec(dogSql, 999) + $real_user = {} + $real_user['id'] = result.first['id'] + $real_user['username'] = result.first['username'] + # push cats + result.each do |cat| + push_object = { + 'shopId' => cat['shopId'], + 'name' => cat['name'], + 'imageUrl' => cat['imageUrl'], + 'adopted' => cat['adopted'], + 'happiness' => cat['happiness'] + } + $real_user['cats'].push(push_object) + end + + #push dogs + result.each do |dog| + push_object = { + 'shopId' => dog['shopId'], + 'name' => dog['name'], + 'imageUrl' => dog['imageUrl'], + 'adopted' => dog['adopted'], + 'happiness' => dog['happiness'] + } + $real_user['dogs'].push(push_object) + end + + + end + def self.find_by_name db, name sql = %[select * from pets] end diff --git a/server.rb b/server.rb index 955ddf2e..44fdc103 100644 --- a/server.rb +++ b/server.rb @@ -15,8 +15,8 @@ if session[:user_id] # TODO: Grab user from database db = PetShopServer.create_db_connection 'petshop' - - @current_user = $sample_user + + @current_user = PetshopServer::PetsRepo.build_user end end # # From 0207c3a514c8c850bcbe5fdf9528ae0b4ea59ccd Mon Sep 17 00:00:00 2001 From: Michael Bashour Date: Fri, 12 Dec 2014 14:04:38 -0600 Subject: [PATCH 20/24] Correct build_user method --- lib/pet-shop-server/repos/pets_repo.rb | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/lib/pet-shop-server/repos/pets_repo.rb b/lib/pet-shop-server/repos/pets_repo.rb index 0ee21eb6..dfa2867b 100644 --- a/lib/pet-shop-server/repos/pets_repo.rb +++ b/lib/pet-shop-server/repos/pets_repo.rb @@ -54,14 +54,14 @@ def self.build_user db, id catResult = db.exec(catSql, 999) dogResult = db.exec(dogSql, 999) $real_user = {} - $real_user['id'] = result.first['id'] - $real_user['username'] = result.first['username'] + $real_user['id'] = catResult.first['id'] + $real_user['username'] = catResult.first['username'] # push cats - result.each do |cat| + catResult.each do |cat| push_object = { - 'shopId' => cat['shopId'], + 'shopId' => cat['shop_id'], 'name' => cat['name'], - 'imageUrl' => cat['imageUrl'], + 'imageUrl' => cat['image_url'], 'adopted' => cat['adopted'], 'happiness' => cat['happiness'] } @@ -69,15 +69,16 @@ def self.build_user db, id end #push dogs - result.each do |dog| + dogResult.each do |dog| push_object = { - 'shopId' => dog['shopId'], + 'shopId' => dog['shop_id'], 'name' => dog['name'], - 'imageUrl' => dog['imageUrl'], + 'imageUrl' => dog['image_url'], 'adopted' => dog['adopted'], 'happiness' => dog['happiness'] } $real_user['dogs'].push(push_object) + $real_user end From 8032a6814125b68e3b114113bee6ef272452ef71 Mon Sep 17 00:00:00 2001 From: Michael Bashour Date: Fri, 12 Dec 2014 14:52:42 -0600 Subject: [PATCH 21/24] Modified method build_user in pets_repo --- lib/pet-shop-server/repos/pets_repo.rb | 30 ++++++++++++++++---------- server.rb | 26 +++++++++++----------- 2 files changed, 32 insertions(+), 24 deletions(-) diff --git a/lib/pet-shop-server/repos/pets_repo.rb b/lib/pet-shop-server/repos/pets_repo.rb index dfa2867b..1cab49b1 100644 --- a/lib/pet-shop-server/repos/pets_repo.rb +++ b/lib/pet-shop-server/repos/pets_repo.rb @@ -15,7 +15,7 @@ def self.find db, id def self.build_user db, id # sql = %[select * from pets where id = $1] # result = db.exec(sql, [id]) - catSql = %q[SELECT + catSql = %Q[SELECT users.username, users.password, pets.id, @@ -32,8 +32,8 @@ def self.build_user db, id WHERE users.id = $1 AND users.id = pets.userid AND - pets.species = 'cat'; ] - dogSql = %q[SELECT + pets.species = 'cat' ] + dogSql = %Q[SELECT users.username, users.password, pets.id, @@ -50,12 +50,15 @@ def self.build_user db, id WHERE users.id = $1 AND users.id = pets.userid AND - pets.species = 'dog'; ] - catResult = db.exec(catSql, 999) - dogResult = db.exec(dogSql, 999) + pets.species = 'dog' ] + catResult = db.exec(catSql, [999]) + dogResult = db.exec(dogSql, [999]) + puts 'hi' + # puts catResult.first $real_user = {} $real_user['id'] = catResult.first['id'] $real_user['username'] = catResult.first['username'] + $real_user['cats'] = [] # push cats catResult.each do |cat| push_object = { @@ -65,10 +68,13 @@ def self.build_user db, id 'adopted' => cat['adopted'], 'happiness' => cat['happiness'] } - $real_user['cats'].push(push_object) + puts 'Puts push object:********************************' + puts push_object + $real_user['cats'] << push_object end - #push dogs + # push dogs + $real_user['dogs'] = [] dogResult.each do |dog| push_object = { 'shopId' => dog['shop_id'], @@ -77,10 +83,12 @@ def self.build_user db, id 'adopted' => dog['adopted'], 'happiness' => dog['happiness'] } - $real_user['dogs'].push(push_object) - $real_user + $real_user['dogs'] << push_object + + end - + puts "**********************************************" + puts $real_user end diff --git a/server.rb b/server.rb index 44fdc103..0ba6100f 100644 --- a/server.rb +++ b/server.rb @@ -15,7 +15,6 @@ if session[:user_id] # TODO: Grab user from database db = PetShopServer.create_db_connection 'petshop' - @current_user = PetshopServer::PetsRepo.build_user end end @@ -23,7 +22,8 @@ # This is our only html view... # get '/' do - + db = PetShopServer.create_db_connection 'petshop' + puts PetShopServer::PetsRepo.build_user(db, 999) erb :index end @@ -96,14 +96,14 @@ end -$sample_user = { - id: 999, - username: 'alice', - cats: [ - { shopId: 1, name: "NaN Cat", imageUrl: "http://i.imgur.com/TOEskNX.jpg", adopted: true, id: 44 }, - { shopId: 8, name: "Meowzer", imageUrl: "http://www.randomkittengenerator.com/images/cats/rotator.php", id: 8, adopted: "true" } - ], - dogs: [ - { shopId: 1, name: "Leaf Pup", imageUrl: "http://i.imgur.com/kuSHji2.jpg", happiness: 2, id: 2, adopted: "true" } - ] -} +# $sample_user = { +# id: 999, +# username: 'alice', +# cats: [ +# { shopId: 1, name: "NaN Cat", imageUrl: "http://i.imgur.com/TOEskNX.jpg", adopted: true, id: 44 }, +# { shopId: 8, name: "Meowzer", imageUrl: "http://www.randomkittengenerator.com/images/cats/rotator.php", id: 8, adopted: "true" } +# ], +# dogs: [ +# { shopId: 1, name: "Leaf Pup", imageUrl: "http://i.imgur.com/kuSHji2.jpg", happiness: 2, id: 2, adopted: "true" } +# ] +# } From 24dafd7370f9e22f22ba9e292101d34d6530075c Mon Sep 17 00:00:00 2001 From: Michael Bashour Date: Fri, 12 Dec 2014 15:02:07 -0600 Subject: [PATCH 22/24] Fix login. --- server.rb | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/server.rb b/server.rb index 0ba6100f..0a9a64e9 100644 --- a/server.rb +++ b/server.rb @@ -41,6 +41,9 @@ username = params['username'] password = params['password'] + db = PetShopServer.create_db_connection 'petshop' + puts PetShopServer::PetsRepo.build_user(db, 999) + # TODO: Grab user by username from database and check password user = { 'username' => 'alice', 'password' => '123' } @@ -48,7 +51,7 @@ headers['Content-Type'] = 'application/json' # TODO: Return all pets adopted by this user # TODO: Set session[:user_id] so the server will remember this user has logged in - $sample_user.to_json + $real_user.to_json else status 401 end @@ -96,14 +99,14 @@ end -# $sample_user = { -# id: 999, -# username: 'alice', -# cats: [ -# { shopId: 1, name: "NaN Cat", imageUrl: "http://i.imgur.com/TOEskNX.jpg", adopted: true, id: 44 }, -# { shopId: 8, name: "Meowzer", imageUrl: "http://www.randomkittengenerator.com/images/cats/rotator.php", id: 8, adopted: "true" } -# ], -# dogs: [ -# { shopId: 1, name: "Leaf Pup", imageUrl: "http://i.imgur.com/kuSHji2.jpg", happiness: 2, id: 2, adopted: "true" } -# ] -# } +$sample_user = { + id: 999, + username: 'alice', + cats: [ + { shopId: 1, name: "NaN Cat", imageUrl: "http://i.imgur.com/TOEskNX.jpg", adopted: true, id: 44 }, + { shopId: 8, name: "Meowzer", imageUrl: "http://www.randomkittengenerator.com/images/cats/rotator.php", id: 8, adopted: "true" } + ], + dogs: [ + { shopId: 1, name: "Leaf Pup", imageUrl: "http://i.imgur.com/kuSHji2.jpg", happiness: 2, id: 2, adopted: "true" } + ] +} From 7e88dd4668b25afdf26b8c97531817b2206fd43b Mon Sep 17 00:00:00 2001 From: Michael Bashour Date: Fri, 12 Dec 2014 17:06:59 -0600 Subject: [PATCH 23/24] Maringal functionality. To-do: sign in and session work. --- lib/pet-shop-server/repos/pets_repo.rb | 14 +++---- lib/pet-shop-server/repos/users_repo.rb | 4 +- server.rb | 50 ++++++++++++++++--------- views/index.erb | 4 +- 4 files changed, 44 insertions(+), 28 deletions(-) diff --git a/lib/pet-shop-server/repos/pets_repo.rb b/lib/pet-shop-server/repos/pets_repo.rb index 1cab49b1..4240da87 100644 --- a/lib/pet-shop-server/repos/pets_repo.rb +++ b/lib/pet-shop-server/repos/pets_repo.rb @@ -51,10 +51,9 @@ def self.build_user db, id users.id = $1 AND users.id = pets.userid AND pets.species = 'dog' ] - catResult = db.exec(catSql, [999]) - dogResult = db.exec(dogSql, [999]) - puts 'hi' - # puts catResult.first + catResult = db.exec(catSql, [id]) + dogResult = db.exec(dogSql, [id]) + $real_user = {} $real_user['id'] = catResult.first['id'] $real_user['username'] = catResult.first['username'] @@ -68,8 +67,7 @@ def self.build_user db, id 'adopted' => cat['adopted'], 'happiness' => cat['happiness'] } - puts 'Puts push object:********************************' - puts push_object + $real_user['cats'] << push_object end @@ -87,8 +85,8 @@ def self.build_user db, id end - puts "**********************************************" - puts $real_user + + $real_user end diff --git a/lib/pet-shop-server/repos/users_repo.rb b/lib/pet-shop-server/repos/users_repo.rb index 44413cc3..ba01d948 100644 --- a/lib/pet-shop-server/repos/users_repo.rb +++ b/lib/pet-shop-server/repos/users_repo.rb @@ -13,7 +13,9 @@ def self.find db, id end def self.find_by_name db, name - sql = %[select * from users] + sql = %[select * from users WHERE username = $1] + result = db.exec(sql, [name]) + result.first end end end \ No newline at end of file diff --git a/server.rb b/server.rb index 0a9a64e9..8c1e9458 100644 --- a/server.rb +++ b/server.rb @@ -15,21 +15,31 @@ if session[:user_id] # TODO: Grab user from database db = PetShopServer.create_db_connection 'petshop' - @current_user = PetshopServer::PetsRepo.build_user + @current_user = PetShopServer::PetsRepo.build_user(db, session[:user_id]) + # @current_user = PetshopServer::PetsRepo.find end end # # # This is our only html view... # get '/' do - db = PetShopServer.create_db_connection 'petshop' - puts PetShopServer::PetsRepo.build_user(db, 999) + # db = PetShopServer.create_db_connection 'petshop' + # @current_user = PetShopServer::UsersRepo.find(db, session[:user_id]) + + # puts PetShopServer::PetsRepo.build_user(db, 999) + @real_user.to_json erb :index end +get '/logout' do + session.clear + redirect '/' +end + + # # # ...the rest are JSON endpoints -# +#UsersRepo get '/shops' do headers['Content-Type'] = 'application/json' RestClient.get("http://pet-shop.api.mks.io/shops") @@ -42,16 +52,20 @@ password = params['password'] db = PetShopServer.create_db_connection 'petshop' - puts PetShopServer::PetsRepo.build_user(db, 999) + user = PetShopServer::UsersRepo.find_by_name(db, username) # TODO: Grab user by username from database and check password - user = { 'username' => 'alice', 'password' => '123' } + + # user = { 'username' => 'alice', 'password' => '123' } if password == user['password'] headers['Content-Type'] = 'application/json' # TODO: Return all pets adopted by this user # TODO: Set session[:user_id] so the server will remember this user has logged in - $real_user.to_json + @real_user = PetShopServer::PetsRepo.build_user(db, user['id']) + @real_user.to_json + + session["user_id"] = user['id'] else status 401 end @@ -99,14 +113,14 @@ end -$sample_user = { - id: 999, - username: 'alice', - cats: [ - { shopId: 1, name: "NaN Cat", imageUrl: "http://i.imgur.com/TOEskNX.jpg", adopted: true, id: 44 }, - { shopId: 8, name: "Meowzer", imageUrl: "http://www.randomkittengenerator.com/images/cats/rotator.php", id: 8, adopted: "true" } - ], - dogs: [ - { shopId: 1, name: "Leaf Pup", imageUrl: "http://i.imgur.com/kuSHji2.jpg", happiness: 2, id: 2, adopted: "true" } - ] -} +# $sample_user = { +# id: 999, +# username: 'alice', +# cats: [ +# { shopId: 1, name: "NaN Cat", imageUrl: "http://i.imgur.com/TOEskNX.jpg", adopted: true, id: 44 }, +# { shopId: 8, name: "Meowzer", imageUrl: "http://www.randomkittengenerator.com/images/cats/rotator.php", id: 8, adopted: "true" } +# ], +# dogs: [ +# { shopId: 1, name: "Leaf Pup", imageUrl: "http://i.imgur.com/kuSHji2.jpg", happiness: 2, id: 2, adopted: "true" } +# ] +# } diff --git a/views/index.erb b/views/index.erb index 4c21800a..62b8b96c 100644 --- a/views/index.erb +++ b/views/index.erb @@ -5,7 +5,9 @@ - +
+Log out +

Loading...

From 5125bebdd0090860d3e4d25796a7c703ea4683d3 Mon Sep 17 00:00:00 2001 From: Michael Bashour Date: Sat, 13 Dec 2014 14:21:57 -0600 Subject: [PATCH 24/24] Correct sign-in issue in server.rb --- server.rb | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/server.rb b/server.rb index 8c1e9458..140abced 100644 --- a/server.rb +++ b/server.rb @@ -19,6 +19,10 @@ # @current_user = PetshopServer::PetsRepo.find end end + +# before '/shops/*' do +# status(401) unless @current_user +# end # # # This is our only html view... # @@ -62,10 +66,10 @@ headers['Content-Type'] = 'application/json' # TODO: Return all pets adopted by this user # TODO: Set session[:user_id] so the server will remember this user has logged in - @real_user = PetShopServer::PetsRepo.build_user(db, user['id']) - @real_user.to_json + # @real_user = PetShopServer::PetsRepo.build_user(db, user['id']) session["user_id"] = user['id'] + user.to_json else status 401 end @@ -82,13 +86,17 @@ end put '/shops/:shop_id/cats/:id/adopt' do - headers['Content-Type'] = 'application/json' - shop_id = params[:shop_id] - id = params[:id] - # TODO: Grab from database instead - RestClient.put("http://pet-shop.api.mks.io/shops/#{shop_id}/cats/#{id}", - { adopted: true }, :content_type => 'application/json') - # TODO (after you create users table): Attach new cat to logged in user + if @current_user + headers['Content-Type'] = 'application/json' + shop_id = params[:shop_id] + id = params[:id] + # TODO: Grab from database instead + RestClient.put("http://pet-shop.api.mks.io/shops/#{shop_id}/cats/#{id}", + { adopted: true }, :content_type => 'application/json') + # TODO (after you create users table): Attach new cat to logged in user + else + status 401 + end end