forked from AdaGold/video-store-api
-
Notifications
You must be signed in to change notification settings - Fork 26
Ari and Kirsten #18
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
Open
kanderson38
wants to merge
62
commits into
Ada-C11:master
Choose a base branch
from
kanderson38:master
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Ari and Kirsten #18
Changes from all commits
Commits
Show all changes
62 commits
Select commit
Hold shift + click to select a range
98e2f98
initial setup
kanderson38 d499294
initial setup
aribray 8fa9c2f
resolved changes
aribray b5e75a1
added customers and movies controllers
aribray 50b604b
zomg test route
aribray 57b8f57
updated routes
kanderson38 624971c
added tests for movies#show and movies#create
aribray 4066d05
Merge pull request #1 from kanderson38/movie_show_and_create
kanderson38 c757024
movies and customers index
kanderson38 47f6d36
merging changes
kanderson38 a36c20a
merging again??
kanderson38 1cc81c1
available_inventory for movies
kanderson38 6daa837
available_inventory in movies#create
kanderson38 967cbec
passing all tests for movie create
aribray 48ef11d
added validations to movie model
aribray 57bf2a1
merging to get validations
kanderson38 797e7ba
Merge branch 'master' of https://github.com/kanderson38/VideoStoreAPI
kanderson38 97fd061
added available_inventory to json
kanderson38 025ee88
added available inventory to moviescontrolloer
aribray d87b1d6
Merge branch 'master' of https://github.com/kanderson38/VideoStoreAPI
aribray 31d005f
added column to customer
kanderson38 0a24793
fixed failing tests in movie_test and customers_controller
aribray b38b4af
Merge branch 'master' of https://github.com/kanderson38/VideoStoreAPI
kanderson38 c844a85
generated rentals
kanderson38 44953a6
added validation tests to movie model
aribray 1920de8
Merge branch 'master' of https://github.com/kanderson38/VideoStoreAPI
aribray af5ebc9
rentals routes
kanderson38 3cd4a2a
validations for rentals
kanderson38 28e51be
checkout action
kanderson38 1464dbf
fixed checkout
kanderson38 a85cee6
added default value to movies_checked_out_by_customer field
aribray 108f25f
passing postman tests for checkout
aribray 7c69fa3
added checkedin migration for rentals table
aribray 4ed5fa8
added fixtures for rental and customer
kanderson38 93e1dbf
added movies yml and began checkin function
aribray f871a4c
rental tests
kanderson38 8767202
adding tests for checkout rental method
aribray 18efbd3
merged from master
kanderson38 a6096ff
updated customers yml to add movies_checked_out column
aribray 367e28b
merged tests for checkin and checkout
aribray 8b7bc9b
more rentals testing
kanderson38 afc9ebe
resolving merge conflicts
kanderson38 9c1e9b3
passing controller tests for rentals#checkout
aribray d68b4a8
resolved merge conflicts in rentals_controller_test
aribray 2404ed0
fixed references
kanderson38 ff2846b
merge conflict resolution
kanderson38 ddfcdab
checkin tests
kanderson38 a5af787
created rental seeds
kanderson38 211be94
stashing changes to rentalscontroller
aribray 9a4860d
resolving changes in rentalscontroller
aribray da0dfb7
sort customers
kanderson38 312ea4b
update gemfile
kanderson38 eee9222
Merge branch 'master' of https://github.com/kanderson38/VideoStoreAPI
aribray 3a333cc
sort, paginate customers
kanderson38 04f36f5
Merge branch 'master' of https://github.com/kanderson38/VideoStoreAPI
aribray 2cbdecd
fixed rental validation test
aribray 5bbd789
added error checking for invalid params and intitial tests for query …
aribray 4cb1481
fleshed out controller tests for movie query parameters
aribray e289189
more testing in customer
kanderson38 1b8e728
added rental model validation and relationship tests
aribray 85ccd8f
added relationship test to movie model
aribray 45eecf9
customer model test
kanderson38 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,23 @@ | ||
| # 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 | ||
|
|
||
| # Ignore uploaded files in development | ||
| /storage/* | ||
| !/storage/.keep | ||
|
|
||
| .byebug_history | ||
|
|
||
| # Ignore master key for decrypting credentials and more. | ||
| /config/master.key |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1 @@ | ||
| ruby-2.5.1 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,57 @@ | ||
| source 'https://rubygems.org' | ||
| git_source(:github) { |repo| "https://github.com/#{repo}.git" } | ||
|
|
||
| ruby '2.5.1' | ||
|
|
||
| # Bundle edge Rails instead: gem 'rails', github: 'rails/rails' | ||
| gem 'rails', '~> 5.2.3' | ||
| # Use postgresql as the database for Active Record | ||
| gem 'pg', '>= 0.18', '< 2.0' | ||
| # Use Puma as the app server | ||
| gem 'puma', '~> 3.11' | ||
|
|
||
|
|
||
| # 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', '~> 4.0' | ||
| # Use ActiveModel has_secure_password | ||
| # gem 'bcrypt', '~> 3.1.7' | ||
|
|
||
| # Use ActiveStorage variant | ||
| # gem 'mini_magick', '~> 4.8' | ||
|
|
||
| # Use Capistrano for deployment | ||
| # gem 'capistrano-rails', group: :development | ||
|
|
||
| # Reduces boot times through caching; required in config/boot.rb | ||
| gem 'bootsnap', '>= 1.1.0', require: false | ||
|
|
||
| # Use Rack CORS for handling Cross-Origin Resource Sharing (CORS), making cross-origin AJAX possible | ||
| # gem 'rack-cors' | ||
|
|
||
| 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] | ||
|
|
||
| group :development, :test do | ||
| gem 'will_paginate', '~> 3.1.0' | ||
| gem 'pry-rails' | ||
| end | ||
|
|
||
| group :test do | ||
| gem 'minitest-rails' | ||
| gem 'minitest-reporters' | ||
| end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,171 @@ | ||
| GEM | ||
| remote: https://rubygems.org/ | ||
| specs: | ||
| actioncable (5.2.3) | ||
| actionpack (= 5.2.3) | ||
| nio4r (~> 2.0) | ||
| websocket-driver (>= 0.6.1) | ||
| actionmailer (5.2.3) | ||
| actionpack (= 5.2.3) | ||
| actionview (= 5.2.3) | ||
| activejob (= 5.2.3) | ||
| mail (~> 2.5, >= 2.5.4) | ||
| rails-dom-testing (~> 2.0) | ||
| actionpack (5.2.3) | ||
| actionview (= 5.2.3) | ||
| activesupport (= 5.2.3) | ||
| rack (~> 2.0) | ||
| rack-test (>= 0.6.3) | ||
| rails-dom-testing (~> 2.0) | ||
| rails-html-sanitizer (~> 1.0, >= 1.0.2) | ||
| actionview (5.2.3) | ||
| activesupport (= 5.2.3) | ||
| builder (~> 3.1) | ||
| erubi (~> 1.4) | ||
| rails-dom-testing (~> 2.0) | ||
| rails-html-sanitizer (~> 1.0, >= 1.0.3) | ||
| activejob (5.2.3) | ||
| activesupport (= 5.2.3) | ||
| globalid (>= 0.3.6) | ||
| activemodel (5.2.3) | ||
| activesupport (= 5.2.3) | ||
| activerecord (5.2.3) | ||
| activemodel (= 5.2.3) | ||
| activesupport (= 5.2.3) | ||
| arel (>= 9.0) | ||
| activestorage (5.2.3) | ||
| actionpack (= 5.2.3) | ||
| activerecord (= 5.2.3) | ||
| marcel (~> 0.3.1) | ||
| activesupport (5.2.3) | ||
| concurrent-ruby (~> 1.0, >= 1.0.2) | ||
| i18n (>= 0.7, < 2) | ||
| minitest (~> 5.1) | ||
| tzinfo (~> 1.1) | ||
| ansi (1.5.0) | ||
| arel (9.0.0) | ||
| bootsnap (1.4.4) | ||
| msgpack (~> 1.0) | ||
| builder (3.2.3) | ||
| byebug (11.0.1) | ||
| coderay (1.1.2) | ||
| concurrent-ruby (1.1.5) | ||
| crass (1.0.4) | ||
| erubi (1.8.0) | ||
| ffi (1.10.0) | ||
| globalid (0.4.2) | ||
| activesupport (>= 4.2.0) | ||
| i18n (1.6.0) | ||
| concurrent-ruby (~> 1.0) | ||
| listen (3.1.5) | ||
| rb-fsevent (~> 0.9, >= 0.9.4) | ||
| rb-inotify (~> 0.9, >= 0.9.7) | ||
| ruby_dep (~> 1.2) | ||
| loofah (2.2.3) | ||
| crass (~> 1.0.2) | ||
| nokogiri (>= 1.5.9) | ||
| mail (2.7.1) | ||
| mini_mime (>= 0.1.1) | ||
| marcel (0.3.3) | ||
| mimemagic (~> 0.3.2) | ||
| method_source (0.9.2) | ||
| mimemagic (0.3.3) | ||
| mini_mime (1.0.1) | ||
| mini_portile2 (2.4.0) | ||
| minitest (5.11.3) | ||
| minitest-rails (3.0.0) | ||
| minitest (~> 5.8) | ||
| railties (~> 5.0) | ||
| minitest-reporters (1.3.6) | ||
| ansi | ||
| builder | ||
| minitest (>= 5.0) | ||
| ruby-progressbar | ||
| msgpack (1.2.10) | ||
| nio4r (2.3.1) | ||
| nokogiri (1.10.3) | ||
| mini_portile2 (~> 2.4.0) | ||
| pg (1.1.4) | ||
| pry (0.12.2) | ||
| coderay (~> 1.1.0) | ||
| method_source (~> 0.9.0) | ||
| pry-rails (0.3.9) | ||
| pry (>= 0.10.4) | ||
| puma (3.12.1) | ||
| rack (2.0.7) | ||
| rack-test (1.1.0) | ||
| rack (>= 1.0, < 3) | ||
| rails (5.2.3) | ||
| actioncable (= 5.2.3) | ||
| actionmailer (= 5.2.3) | ||
| actionpack (= 5.2.3) | ||
| actionview (= 5.2.3) | ||
| activejob (= 5.2.3) | ||
| activemodel (= 5.2.3) | ||
| activerecord (= 5.2.3) | ||
| activestorage (= 5.2.3) | ||
| activesupport (= 5.2.3) | ||
| bundler (>= 1.3.0) | ||
| railties (= 5.2.3) | ||
| sprockets-rails (>= 2.0.0) | ||
| rails-dom-testing (2.0.3) | ||
| activesupport (>= 4.2.0) | ||
| nokogiri (>= 1.6) | ||
| rails-html-sanitizer (1.0.4) | ||
| loofah (~> 2.2, >= 2.2.2) | ||
| railties (5.2.3) | ||
| actionpack (= 5.2.3) | ||
| activesupport (= 5.2.3) | ||
| method_source | ||
| rake (>= 0.8.7) | ||
| thor (>= 0.19.0, < 2.0) | ||
| rake (12.3.2) | ||
| rb-fsevent (0.10.3) | ||
| rb-inotify (0.10.0) | ||
| ffi (~> 1.0) | ||
| ruby-progressbar (1.10.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.2) | ||
| 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.3) | ||
| thread_safe (0.3.6) | ||
| tzinfo (1.2.5) | ||
| thread_safe (~> 0.1) | ||
| websocket-driver (0.7.0) | ||
| websocket-extensions (>= 0.1.0) | ||
| websocket-extensions (0.1.3) | ||
| will_paginate (3.1.7) | ||
|
|
||
| PLATFORMS | ||
| ruby | ||
|
|
||
| DEPENDENCIES | ||
| bootsnap (>= 1.1.0) | ||
| byebug | ||
| listen (>= 3.0.5, < 3.2) | ||
| minitest-rails | ||
| minitest-reporters | ||
| pg (>= 0.18, < 2.0) | ||
| pry-rails | ||
| puma (~> 3.11) | ||
| rails (~> 5.2.3) | ||
| spring | ||
| spring-watcher-listen (~> 2.0.0) | ||
| tzinfo-data | ||
| will_paginate (~> 3.1.0) | ||
|
|
||
| RUBY VERSION | ||
| ruby 2.5.1p57 | ||
|
|
||
| BUNDLED WITH | ||
| 2.0.1 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,9 @@ | ||
| guard :minitest, autorun: false, spring: true do | ||
| watch(%r{^app/(.+).rb$}) { |m| "test/#{m[1]}_test.rb" } | ||
| watch(%r{^app/controllers/application_controller.rb$}) { 'test/controllers' } | ||
| watch(%r{^app/controllers/(.+)_controller.rb$}) { |m| "test/integration/#{m[1]}_test.rb" } | ||
| watch(%r{^app/views/(.+)_mailer/.+}) { |m| "test/mailers/#{m[1]}_mailer_test.rb" } | ||
| watch(%r{^lib/(.+).rb$}) { |m| "test/lib/#{m[1]}_test.rb" } | ||
| watch(%r{^test/.+_test.rb$}) | ||
| watch(%r{^test/test_helper.rb$}) { 'test' } | ||
| end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,4 @@ | ||
| module ApplicationCable | ||
| class Channel < ActionCable::Channel::Base | ||
| end | ||
| end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,4 @@ | ||
| module ApplicationCable | ||
| class Connection < ActionCable::Connection::Base | ||
| end | ||
| end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,2 @@ | ||
| class ApplicationController < ActionController::API | ||
| end |
Empty file.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,44 @@ | ||
| class CustomersController < ApplicationController | ||
| def index | ||
| if valid?(params) | ||
| customers = Customer.paginate(page: params[:p], per_page: params[:n]).order(params[:sort]) | ||
|
|
||
| render status: :ok, json: customers.as_json(only: [:id, :name, :registered_at, :postal_code, :phone, :movies_checked_out_count]) | ||
| else | ||
| render status: :bad_request, json: { errors: { "query": ["#{params} not a valid query parameter"] } } | ||
| end | ||
| end | ||
|
|
||
| def show | ||
| customer = Customer.find_by(id: params[:id]) | ||
|
|
||
| if customer | ||
| render status: :ok, json: customer.as_json(only: [:id, :name, :registered_at, :postal_code, :phone, :movies_checked_out_count]) | ||
| else | ||
| render status: :not_found, json: { errors: { "name": ["Customer #{params[:id]} not found"] } } | ||
| end | ||
| end | ||
|
|
||
| private | ||
|
|
||
| def valid?(params) | ||
| sorts = ["name", "registered_at", "postal_code", nil] | ||
| return false unless sorts.include?(params[:sort]) | ||
|
|
||
| unless params[:p].nil? | ||
| begin Integer(params[:p]) | ||
| rescue ArgumentError | ||
| return false | ||
| end | ||
| end | ||
|
|
||
| unless params[:n].nil? | ||
| begin Integer(params[:n]) | ||
| rescue ArgumentError | ||
| return false | ||
| end | ||
| end | ||
|
|
||
| true | ||
| end | ||
| end | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,64 @@ | ||
| # frozen_string_literal: true | ||
|
|
||
| class MoviesController < ApplicationController | ||
| def zomg | ||
| render json: { message: 'it works!' } | ||
| end | ||
|
|
||
| def index | ||
| if valid?(params) | ||
| movies = Movie.paginate(page: params[:p], per_page: params[:n]).order(params[:sort]) | ||
| render json: movies.as_json(only: %i[id title release_date]) | ||
| else | ||
| render json: { ok: false, message: 'Query params not valid' }, status: :not_found | ||
| end | ||
| end | ||
|
|
||
| def show | ||
| movie = Movie.find_by(id: params[:id]) | ||
|
|
||
| if movie | ||
| render json: movie.as_json(only: %i[title overview release_date inventory available_inventory]), status: :ok | ||
| else | ||
| render json: { ok: false, message: 'Movie not found' }, status: :not_found | ||
| end | ||
| end | ||
|
|
||
| def create | ||
| movie = Movie.new(movie_params) | ||
| movie.available_inventory = movie.inventory | ||
|
|
||
| if movie.save | ||
| render json: movie.as_json(only: %i[title overview release_date inventory id available_inventory]), status: :ok | ||
| else | ||
| render json: { ok: false, message: movie.errors.messages }, status: :bad_request | ||
| end | ||
| end | ||
|
|
||
| private | ||
|
|
||
| def valid?(params) | ||
| sorts = ['title', 'release_date', nil] | ||
| return false unless sorts.include?(params[:sort]) | ||
|
|
||
| unless params[:p].nil? | ||
| begin Integer(params[:p]) | ||
| rescue ArgumentError | ||
| return false | ||
| end | ||
| end | ||
|
|
||
| unless params[:n].nil? | ||
| begin Integer(params[:n]) | ||
| rescue ArgumentError | ||
| return false | ||
| end | ||
| end | ||
|
|
||
| true | ||
| end | ||
|
|
||
| def movie_params | ||
| params.require(:movie).permit(:title, :overview, :release_date, :inventory, :available_inventory) | ||
| end | ||
| end |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Small style note: not all text editors wrap lines for you. This line is so long that on GitHub I have to scroll horizontally to see all the pieces. You can make this easier to read by putting a newline after any given comma in a statement.