forked from AdaGold/video-store-api
-
Notifications
You must be signed in to change notification settings - Fork 25
carly & lindsay - edges - videostoreapi #19
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
elle-terch
wants to merge
56
commits into
Ada-C10:master
Choose a base branch
from
elle-terch: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
Changes from all commits
Commits
Show all changes
56 commits
Select commit
Hold shift + click to select a range
9147dd0
initial setup
elle-terch 5534cf9
updated schema with fields for movie and customer
elle-terch 1a194d6
added new table for rentals and added associations between models
elle-terch 4e817f2
added columns to rentals table
elle-terch ae274d2
added validations to models
elle-terch 717eedd
added validation testing for movies
elle-terch 543921b
added validation testing for customers
elle-terch 117dd32
added validation tests
elle-terch b758910
added routes
elle-terch a31a6cf
created customers and movies controller
elle-terch e129c05
added index action for customers controller
elle-terch 02ac7d7
added index and create actions for movies controller
elle-terch ffb5f3f
added movies_checked_out_column to movies table
elle-terch 62d4c4e
Merge branch 'lt_work' into wave_two
elle-terch 0c07515
changed db to add movies_checked_out column to customers
elle-terch 3f0e007
updated show route for movie
elle-terch 21e3bda
error handling in the Application controller.
CarlyReiter eed76bd
jsonify of customers is working.
CarlyReiter 5bf4276
jsonify movies.
CarlyReiter e976d1d
added error handling to movie create
elle-terch 0f6d050
handled errors, added show method and added jsonify to movies controller
elle-terch 4001d46
fixed movies controller
elle-terch 03e55ec
added rental controller & routes
elle-terch fdc79cc
added default checkout date to today
elle-terch 44a22cf
created index and show action for rentals
elle-terch ac4d951
added checkout method and strong params
elle-terch 56602ca
created simple yml files and basic relation testing for models.
CarlyReiter bf60613
relations testing for customer.
CarlyReiter 485174e
basic model relations testing.
CarlyReiter f316d0f
fixed index for movies
elle-terch ab86f7e
Merge branch 'master' of https://github.com/elle-terch/VideoStoreAPI
CarlyReiter fd0d545
added error handling to movies show
elle-terch 5e2b8a8
added rental routes
elle-terch 8eb417d
reconfigured rental model testing to take in movie and customer.
CarlyReiter f8a3e38
created movies and customers controller testing files.
CarlyReiter f4524bf
added error handling for rental show method
elle-terch 3bb693c
Created customer controller tests.
CarlyReiter 2c26d34
added error handling for checkout method
elle-terch bb6e4f4
completed movies controller testing.
CarlyReiter 851c6c7
updated checkout method in rentals controller
elle-terch f187a9a
Merge branch 'master' of https://github.com/elle-terch/VideoStoreAPI
elle-terch 777a581
updated index and show tests for Rentals, and began checkout.
CarlyReiter b769df6
added checkin method for rentals
elle-terch c1a2ee7
merge with master
elle-terch 4ae022e
merge conflict resolved. hopefully.
CarlyReiter c73b8af
created test for making a rental with invalid data
elle-terch 9c1f466
added negative test to rental checkin
CarlyReiter d56e8d1
Merge branch 'master' of https://github.com/elle-terch/VideoStoreAPI
CarlyReiter 7b05b3d
change to the checkout controller test.
CarlyReiter 1ce33b8
fixed one rentals controller test.
CarlyReiter 90e3b7a
updated rental yml files with checkout date.
CarlyReiter bb00a63
added 200 status for rental checkout
elle-terch 0b8db75
updated migration with default available inventory
elle-terch 13eeded
added status codes to final two methods
elle-terch 2c7175b
Merge branch 'master' of https://github.com/elle-terch/VideoStoreAPI
elle-terch d45b016
removed unnecessary comments in code
elle-terch 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,54 @@ | ||
| 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.1' | ||
| # 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 '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,169 @@ | ||
| GEM | ||
| remote: https://rubygems.org/ | ||
| specs: | ||
| actioncable (5.2.1) | ||
| actionpack (= 5.2.1) | ||
| nio4r (~> 2.0) | ||
| websocket-driver (>= 0.6.1) | ||
| actionmailer (5.2.1) | ||
| actionpack (= 5.2.1) | ||
| actionview (= 5.2.1) | ||
| activejob (= 5.2.1) | ||
| mail (~> 2.5, >= 2.5.4) | ||
| rails-dom-testing (~> 2.0) | ||
| actionpack (5.2.1) | ||
| actionview (= 5.2.1) | ||
| activesupport (= 5.2.1) | ||
| rack (~> 2.0) | ||
| rack-test (>= 0.6.3) | ||
| rails-dom-testing (~> 2.0) | ||
| rails-html-sanitizer (~> 1.0, >= 1.0.2) | ||
| actionview (5.2.1) | ||
| activesupport (= 5.2.1) | ||
| builder (~> 3.1) | ||
| erubi (~> 1.4) | ||
| rails-dom-testing (~> 2.0) | ||
| rails-html-sanitizer (~> 1.0, >= 1.0.3) | ||
| activejob (5.2.1) | ||
| activesupport (= 5.2.1) | ||
| globalid (>= 0.3.6) | ||
| activemodel (5.2.1) | ||
| activesupport (= 5.2.1) | ||
| activerecord (5.2.1) | ||
| activemodel (= 5.2.1) | ||
| activesupport (= 5.2.1) | ||
| arel (>= 9.0) | ||
| activestorage (5.2.1) | ||
| actionpack (= 5.2.1) | ||
| activerecord (= 5.2.1) | ||
| marcel (~> 0.3.1) | ||
| activesupport (5.2.1) | ||
| 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.3.2) | ||
| msgpack (~> 1.0) | ||
| builder (3.2.3) | ||
| byebug (10.0.2) | ||
| coderay (1.1.2) | ||
| concurrent-ruby (1.1.1) | ||
| crass (1.0.4) | ||
| erubi (1.7.1) | ||
| ffi (1.9.25) | ||
| globalid (0.4.1) | ||
| activesupport (>= 4.2.0) | ||
| i18n (1.1.1) | ||
| 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.1) | ||
| mimemagic (0.3.2) | ||
| mini_mime (1.0.1) | ||
| mini_portile2 (2.3.0) | ||
| minitest (5.11.3) | ||
| minitest-rails (3.0.0) | ||
| minitest (~> 5.8) | ||
| railties (~> 5.0) | ||
| minitest-reporters (1.3.5) | ||
| ansi | ||
| builder | ||
| minitest (>= 5.0) | ||
| ruby-progressbar | ||
| msgpack (1.2.4) | ||
| nio4r (2.3.1) | ||
| nokogiri (1.8.5) | ||
| mini_portile2 (~> 2.3.0) | ||
| pg (1.1.3) | ||
| pry (0.12.0) | ||
| coderay (~> 1.1.0) | ||
| method_source (~> 0.9.0) | ||
| pry-rails (0.3.6) | ||
| pry (>= 0.10.4) | ||
| puma (3.12.0) | ||
| rack (2.0.6) | ||
| rack-test (1.1.0) | ||
| rack (>= 1.0, < 3) | ||
| rails (5.2.1) | ||
| actioncable (= 5.2.1) | ||
| actionmailer (= 5.2.1) | ||
| actionpack (= 5.2.1) | ||
| actionview (= 5.2.1) | ||
| activejob (= 5.2.1) | ||
| activemodel (= 5.2.1) | ||
| activerecord (= 5.2.1) | ||
| activestorage (= 5.2.1) | ||
| activesupport (= 5.2.1) | ||
| bundler (>= 1.3.0) | ||
| railties (= 5.2.1) | ||
| 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.1) | ||
| actionpack (= 5.2.1) | ||
| activesupport (= 5.2.1) | ||
| method_source | ||
| rake (>= 0.8.7) | ||
| thor (>= 0.19.0, < 2.0) | ||
| rake (12.3.1) | ||
| rb-fsevent (0.10.3) | ||
| rb-inotify (0.9.10) | ||
| ffi (>= 0.5.0, < 2) | ||
| 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.0) | ||
| 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) | ||
|
|
||
| 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.1) | ||
| spring | ||
| spring-watcher-listen (~> 2.0.0) | ||
| tzinfo-data | ||
|
|
||
| RUBY VERSION | ||
| ruby 2.5.1p57 | ||
|
|
||
| BUNDLED WITH | ||
| 1.16.2 |
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,17 @@ | ||
| class CustomersController < ApplicationController | ||
|
|
||
| def index | ||
| customers = Customer.all | ||
| render json: jsonify(customers) | ||
| end | ||
|
|
||
|
|
||
|
|
||
| private | ||
|
|
||
| def jsonify(customer_data) | ||
| return customer_data.as_json( only: [:id, :name, :registered_at, :postal_code, :phone, :movies_checked_out_count]) | ||
| 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,40 @@ | ||
| class MoviesController < ApplicationController | ||
|
|
||
| def index | ||
| movies = Movie.all | ||
|
|
||
| render json: movies.as_json( only: [:id, :title, :release_date ]) | ||
|
|
||
| end | ||
|
|
||
| def create | ||
| movie = Movie.new(movie_params) | ||
| if movie.save | ||
| render json: { id: movie.id }, status: :ok | ||
| else | ||
| render json: {}, status: :bad_request | ||
| end | ||
| end | ||
|
|
||
| def show | ||
| movie_id = params[:id] | ||
| movie = Movie.find_by(id: movie_id) | ||
| if movie | ||
| render json: jsonify(movie) | ||
| else | ||
| render json: { errors: { movie_id: ["No such movie"] } }, status: :not_found | ||
| end | ||
| end | ||
|
|
||
|
|
||
| private | ||
|
|
||
| def movie_params | ||
| params.require(:movie).permit(:title, :overview, :release_date, :inventory) | ||
| end | ||
|
|
||
| def jsonify(movie_data) | ||
| return movie_data.as_json( only: [:title, :overview, :release_date, :inventory] ) | ||
| 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,53 @@ | ||
| class RentalsController < ApplicationController | ||
|
|
||
| def index | ||
|
|
||
| rentals = Rental.all | ||
| render json: rentals.as_json( except: [:created_at, :updated_at] ) | ||
|
|
||
| end | ||
|
|
||
|
|
||
| def show | ||
| rental_id = params[:id] | ||
| rental = Rental.find_by(id: rental_id) | ||
| if rental | ||
| render json: rental.as_json( except: [:created_at, :updated_at] ) | ||
| else | ||
| render json: { errors: { rental_id: ["No such rental"] } }, status: :not_found | ||
| end | ||
| end | ||
|
|
||
|
|
||
| def checkout | ||
| rental = Rental.new(rental_params) | ||
| if rental.save | ||
| render json: { id: rental.id }, status: :ok | ||
| else | ||
| render json: { errors: { rental: ["No such rental"] } }, status: :bad_request | ||
| end | ||
| end | ||
|
|
||
|
|
||
| def checkin | ||
| rental_id = params[:id] | ||
| rental = Rental.find_by(id: rental_id) | ||
|
|
||
| if rental | ||
| rental.update(checkin: Date.today) | ||
| render json: { id: rental.id }, status: :ok | ||
| else | ||
| render json: { errors: { rental_id: ["No such rental"] } }, status: :bad_request | ||
| end | ||
| end | ||
|
|
||
|
|
||
|
|
||
|
|
||
| private | ||
|
|
||
| def rental_params | ||
| params.require(:rental).permit(:movie_id, :customer_id, :checkout ) | ||
| 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.
In Rails when we used forms,
paramswould come back populated with a nested structure that hadmoviein it. In this API, we won't have that nested structure, so we need to take out the.require('movie')bit. When we do this, then most of Wave 2 starts working :)