Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

VideoStoreAPI - Pipes - Rebecca and Bennett #5

Open
wants to merge 44 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
2107bbf
rails setup
rbergena Nov 6, 2017
fa3cc65
create model/controller
bennettrahn Nov 6, 2017
c56ca4b
set up basic controller/routes
bennettrahn Nov 6, 2017
77e9ffe
create customers model and controller
rbergena Nov 6, 2017
6d7d8b7
uncomment
bennettrahn Nov 6, 2017
12c74fa
Merge pull request #1 from rbergena/customers
rbergena Nov 6, 2017
5339d6f
Merge branch 'movie-model' into master
bennettrahn Nov 6, 2017
5276105
Merge pull request #2 from rbergena/master
bennettrahn Nov 6, 2017
14f95e1
merging
rbergena Nov 6, 2017
ea417b5
schema
rbergena Nov 6, 2017
9075c53
add index, and tests
bennettrahn Nov 6, 2017
5b44272
code and tests for show and create
bennettrahn Nov 6, 2017
0e97815
add and test validations
bennettrahn Nov 6, 2017
6b3c022
Merge branch 'movie-model' of https://github.com/rbergena/VideoStoreA…
bennettrahn Nov 6, 2017
2955a26
Merge pull request #3 from rbergena/movie-model
rbergena Nov 6, 2017
0e09124
add customer tests and movies_checked_out column
rbergena Nov 6, 2017
6a24748
Merge branch 'master' of https://github.com/rbergena/VideoStoreAPI
rbergena Nov 6, 2017
ac604d7
merge
rbergena Nov 6, 2017
65c3011
Merge pull request #4 from rbergena/customertests
bennettrahn Nov 6, 2017
2d4f133
error messages
bennettrahn Nov 7, 2017
5d2aa3c
Merge branch 'master' of https://github.com/rbergena/VideoStoreAPI
rbergena Nov 7, 2017
de47445
add available inventory columns
bennettrahn Nov 7, 2017
dbfbdc7
Merge branch 'master' of https://github.com/rbergena/VideoStoreAPI
rbergena Nov 7, 2017
24f8886
change create params
bennettrahn Nov 7, 2017
c3d9dd7
Merge branch 'master' into movie-model
bennettrahn Nov 7, 2017
7d71308
fix tests to adapt to new create params
bennettrahn Nov 7, 2017
2046863
Merge pull request #5 from rbergena/movie-model
rbergena Nov 7, 2017
ecd49e3
try to use the new gem
bennettrahn Nov 7, 2017
2e2c47b
Merge branch 'master' of https://github.com/rbergena/VideoStoreAPI
rbergena Nov 7, 2017
f2ab41a
rentals
rbergena Nov 7, 2017
09ecb69
Merge branch 'master' into tuesday
bennettrahn Nov 7, 2017
d6f3482
rentals checkout action and rentals fixtures
rbergena Nov 7, 2017
7aa570f
play with current method
bennettrahn Nov 7, 2017
ebccd53
Merge pull request #6 from rbergena/rentals
bennettrahn Nov 7, 2017
612f022
Merge branch 'master' into tuesday
bennettrahn Nov 7, 2017
c9c797f
low key got movies#current working
bennettrahn Nov 7, 2017
f75463a
add current/history paths for customer
bennettrahn Nov 7, 2017
5198246
rentals controller
rbergena Nov 8, 2017
15b18c8
Merge pull request #7 from rbergena/tuesday
rbergena Nov 8, 2017
5fbc0e8
Merge branch 'master' into rentalscontrollermodels
bennettrahn Nov 8, 2017
15ea35d
Merge pull request #8 from rbergena/rentalscontrollermodels
bennettrahn Nov 8, 2017
92c8063
add test for customers controller index?
rbergena Nov 8, 2017
f794e18
Merge pull request #9 from rbergena/fixcustomerindex
rbergena Nov 8, 2017
f58d2bb
fix movie
rbergena Nov 8, 2017
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
16 changes: 16 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# See https://help.github.com/articles/ignoring-files for more about ignoring files.
#
# If you find yourself ignoring temporary files generated by your text editor
# or operating system, you probably want to add a global ignore instead:
# git config --global core.excludesfile '~/.gitignore_global'

# Ignore bundler config.
/.bundle

# Ignore all logfiles and tempfiles.
/log/*
/tmp/*
!/log/.keep
!/tmp/.keep

.byebug_history
58 changes: 58 additions & 0 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
source 'https://rubygems.org'

git_source(:github) do |repo_name|
repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?("/")
"https://github.com/#{repo_name}.git"
end


# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '~> 5.1.4'
# Use postgresql as the database for Active Record
gem 'pg', '~> 0.18'
# Use Puma as the app server
gem 'puma', '~> 3.7'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
# gem 'jbuilder', '~> 2.5'
# Use Redis adapter to run Action Cable in production
# gem 'redis', '~> 3.0'
# Use ActiveModel has_secure_password
# gem 'bcrypt', '~> 3.1.7'

# Use Capistrano for deployment
# gem 'capistrano-rails', group: :development

# Use Rack CORS for handling Cross-Origin Resource Sharing (CORS), making cross-origin AJAX possible
# gem 'rack-cors'

gem "active_model_serializers"

group :development, :test do
# Call 'byebug' anywhere in the code to stop execution and get a debugger console
gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
end

group :development do
gem 'listen', '>= 3.0.5', '< 3.2'
# Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
gem 'spring'
gem 'spring-watcher-listen', '~> 2.0.0'
end

# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]

gem 'jquery-turbolinks'
group :development, :test do
gem 'pry-rails'
end

group :development do
gem 'better_errors'
gem 'binding_of_caller'
end

group :test do
gem 'minitest-rails'
gem 'minitest-reporters'
end
179 changes: 179 additions & 0 deletions Gemfile.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,179 @@
GEM
remote: https://rubygems.org/
specs:
actioncable (5.1.4)
actionpack (= 5.1.4)
nio4r (~> 2.0)
websocket-driver (~> 0.6.1)
actionmailer (5.1.4)
actionpack (= 5.1.4)
actionview (= 5.1.4)
activejob (= 5.1.4)
mail (~> 2.5, >= 2.5.4)
rails-dom-testing (~> 2.0)
actionpack (5.1.4)
actionview (= 5.1.4)
activesupport (= 5.1.4)
rack (~> 2.0)
rack-test (>= 0.6.3)
rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.0, >= 1.0.2)
actionview (5.1.4)
activesupport (= 5.1.4)
builder (~> 3.1)
erubi (~> 1.4)
rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.0, >= 1.0.3)
active_model_serializers (0.10.6)
actionpack (>= 4.1, < 6)
activemodel (>= 4.1, < 6)
case_transform (>= 0.2)
jsonapi-renderer (>= 0.1.1.beta1, < 0.2)
activejob (5.1.4)
activesupport (= 5.1.4)
globalid (>= 0.3.6)
activemodel (5.1.4)
activesupport (= 5.1.4)
activerecord (5.1.4)
activemodel (= 5.1.4)
activesupport (= 5.1.4)
arel (~> 8.0)
activesupport (5.1.4)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (~> 0.7)
minitest (~> 5.1)
tzinfo (~> 1.1)
ansi (1.5.0)
arel (8.0.0)
better_errors (2.4.0)
coderay (>= 1.0.0)
erubi (>= 1.0.0)
rack (>= 0.9.0)
binding_of_caller (0.7.3)
debug_inspector (>= 0.0.1)
builder (3.2.3)
byebug (9.1.0)
case_transform (0.2)
activesupport
coderay (1.1.2)
concurrent-ruby (1.0.5)
crass (1.0.2)
debug_inspector (0.0.3)
erubi (1.7.0)
ffi (1.9.18)
globalid (0.4.1)
activesupport (>= 4.2.0)
i18n (0.9.1)
concurrent-ruby (~> 1.0)
jquery-turbolinks (2.1.0)
railties (>= 3.1.0)
turbolinks
jsonapi-renderer (0.1.3)
listen (3.1.5)
rb-fsevent (~> 0.9, >= 0.9.4)
rb-inotify (~> 0.9, >= 0.9.7)
ruby_dep (~> 1.2)
loofah (2.1.1)
crass (~> 1.0.2)
nokogiri (>= 1.5.9)
mail (2.7.0)
mini_mime (>= 0.1.1)
method_source (0.9.0)
mini_mime (0.1.4)
mini_portile2 (2.3.0)
minitest (5.10.3)
minitest-rails (3.0.0)
minitest (~> 5.8)
railties (~> 5.0)
minitest-reporters (1.1.18)
ansi
builder
minitest (>= 5.0)
ruby-progressbar
nio4r (2.1.0)
nokogiri (1.8.1)
mini_portile2 (~> 2.3.0)
pg (0.21.0)
pry (0.11.2)
coderay (~> 1.1.0)
method_source (~> 0.9.0)
pry-rails (0.3.6)
pry (>= 0.10.4)
puma (3.10.0)
rack (2.0.3)
rack-test (0.7.0)
rack (>= 1.0, < 3)
rails (5.1.4)
actioncable (= 5.1.4)
actionmailer (= 5.1.4)
actionpack (= 5.1.4)
actionview (= 5.1.4)
activejob (= 5.1.4)
activemodel (= 5.1.4)
activerecord (= 5.1.4)
activesupport (= 5.1.4)
bundler (>= 1.3.0)
railties (= 5.1.4)
sprockets-rails (>= 2.0.0)
rails-dom-testing (2.0.3)
activesupport (>= 4.2.0)
nokogiri (>= 1.6)
rails-html-sanitizer (1.0.3)
loofah (~> 2.0)
railties (5.1.4)
actionpack (= 5.1.4)
activesupport (= 5.1.4)
method_source
rake (>= 0.8.7)
thor (>= 0.18.1, < 2.0)
rake (12.2.1)
rb-fsevent (0.10.2)
rb-inotify (0.9.10)
ffi (>= 0.5.0, < 2)
ruby-progressbar (1.9.0)
ruby_dep (1.5.0)
spring (2.0.2)
activesupport (>= 4.2)
spring-watcher-listen (2.0.1)
listen (>= 2.7, < 4.0)
spring (>= 1.2, < 3.0)
sprockets (3.7.1)
concurrent-ruby (~> 1.0)
rack (> 1, < 3)
sprockets-rails (3.2.1)
actionpack (>= 4.0)
activesupport (>= 4.0)
sprockets (>= 3.0.0)
thor (0.20.0)
thread_safe (0.3.6)
turbolinks (5.0.1)
turbolinks-source (~> 5)
turbolinks-source (5.0.3)
tzinfo (1.2.4)
thread_safe (~> 0.1)
websocket-driver (0.6.5)
websocket-extensions (>= 0.1.0)
websocket-extensions (0.1.2)

PLATFORMS
ruby

DEPENDENCIES
active_model_serializers
better_errors
binding_of_caller
byebug
jquery-turbolinks
listen (>= 3.0.5, < 3.2)
minitest-rails
minitest-reporters
pg (~> 0.18)
pry-rails
puma (~> 3.7)
rails (~> 5.1.4)
spring
spring-watcher-listen (~> 2.0.0)
tzinfo-data

BUNDLED WITH
1.15.4
6 changes: 6 additions & 0 deletions Rakefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Add your own tasks in files placed in lib/tasks ending in .rake,
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.

require_relative 'config/application'

Rails.application.load_tasks
4 changes: 4 additions & 0 deletions app/channels/application_cable/channel.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
module ApplicationCable
class Channel < ActionCable::Channel::Base
end
end
4 changes: 4 additions & 0 deletions app/channels/application_cable/connection.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
module ApplicationCable
class Connection < ActionCable::Connection::Base
end
end
Binary file added app/controllers/.DS_Store
Binary file not shown.
2 changes: 2 additions & 0 deletions app/controllers/application_controller.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
class ApplicationController < ActionController::API
end
Empty file added app/controllers/concerns/.keep
Empty file.
51 changes: 51 additions & 0 deletions app/controllers/customers_controller.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
class CustomersController < ApplicationController

def index
customers = Customer.all

unless customers.empty?
render(
json: customers.as_json(only: [:id, :name, :registered_at, :postal_code, :phone, :movies_checked_out_count]),
status: :ok
)
else
render(
json: { errors: {
customers: ["No customers found."]}

Choose a reason for hiding this comment

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

While this behavior isn't technically wrong, the convention in a case like this is to consider it successful and return an empty array.

},
status: :not_found
)
end

end

def current
checked_out(:current)
end

def history
checked_out(:history)
end

private

def checked_out(status)
customer = Customer.find_by(id: params[:id])
checked_out = customer.checked_out(status)

unless checked_out.empty?
render(
json: checked_out,
status: :ok
)
else
render(
json: { errors: {
records: ["No records found."]}
},
status: :not_found
)
end
end

end
Loading