forked from AdaGold/video-store-api
-
Notifications
You must be signed in to change notification settings - Fork 25
Ungco/Metzner - VideoStoreAPI #7
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
unkcodesquick
wants to merge
42
commits into
Ada-C10:master
Choose a base branch
from
unkcodesquick: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
42 commits
Select commit
Hold shift + click to select a range
3363513
created Rails API
unkcodesquick c5a102e
Set up DB and join table
danimetz 65a5ee2
Created a migration for renaming created at to registered at
danimetz b26a205
Added the registered at column to customers instead of movies
danimetz d82d78d
added Rental model and updated references
unkcodesquick cba7d5f
added customer fixtures
unkcodesquick b79d47b
customer_Test'
unkcodesquick 57b74fd
Updated relationships in the movies,customers,rentals model
danimetz 6ce7c95
Added model tests for movies
danimetz cedac59
Updated more movie tests
danimetz e4b10e3
Fixed yml files to have relationships
danimetz 39b94ea
Updated the destroy_all in the customers test to have and ! to save a…
danimetz 0e790d1
added rentals test
unkcodesquick 2ba65bd
Merge branch 'master' of https://github.com/amandaungco/VideoStoreAPI
unkcodesquick b19967a
all tests pass
unkcodesquick edd80b5
binding.pry
unkcodesquick c82840a
added movie show and index tests/customers index test
danimetz aea0966
Added movie validations
danimetz e4066bc
updated Movie model test for validations
danimetz e02f475
Tested movie controller to return certain keys
danimetz e812560
Added Customer Controller Tests for index
danimetz 0059b6e
Added SimpleCov- 100% covered
danimetz bac0c4f
pseudo code in rentals controller for check-in/check-out
unkcodesquick e17b166
updated db
unkcodesquick ddea75d
added routes for checkin/checkout for rentals controller
unkcodesquick 9a78d30
added/tested checkout method for rental controller
unkcodesquick de8cc03
updated movie model to set available inventory default value
unkcodesquick 826997b
Updated routes for checkin and checkout to have the '-'
danimetz 928a1aa
Updated the rentals controller to return json
danimetz 4dcf11f
updated rental controller tests
unkcodesquick c765375
Merge branch 'master' of https://github.com/amandaungco/VideoStoreAPI
unkcodesquick fb2d765
added check_in/checkout method to customer class
unkcodesquick d4da576
upated customer model and tests for custom methods
unkcodesquick ee85167
updated movie tests
unkcodesquick 87e28de
replaced columns in movies and customers with custom methods
unkcodesquick cba73c4
added sorting function
unkcodesquick dddb191
Added sorting tests for movies and customers
danimetz e0d2628
updated sorting and checkin date to 0
danimetz 6c04f20
added sorting for movies, overdue rentals and customers
danimetz a669c14
Refactored and added the sort method to the application controller an…
danimetz d2106b0
Added the title and name methods to the rentals so that the overdue c…
danimetz eb68b40
Added a .send(params) so we could order our JSON by movie title and c…
danimetz 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,24 @@ | ||
| # 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 | ||
| coverage |
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,55 @@ | ||
| 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' | ||
| gem 'simplecov' | ||
| # 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' | ||
| gem 'simplecov', require: false | ||
| 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,177 @@ | ||
| 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) | ||
| docile (1.3.1) | ||
| erubi (1.7.1) | ||
| ffi (1.9.25) | ||
| globalid (0.4.1) | ||
| activesupport (>= 4.2.0) | ||
| i18n (1.1.1) | ||
| concurrent-ruby (~> 1.0) | ||
| json (2.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.5) | ||
| 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) | ||
| simplecov (0.16.1) | ||
| docile (~> 1.1) | ||
| json (>= 1.8, < 3) | ||
| simplecov-html (~> 0.10.0) | ||
| simplecov-html (0.10.2) | ||
| 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) | ||
| simplecov | ||
| spring | ||
| spring-watcher-listen (~> 2.0.0) | ||
| tzinfo-data | ||
|
|
||
| RUBY VERSION | ||
| ruby 2.5.1p57 | ||
|
|
||
| BUNDLED WITH | ||
| 1.16.5 |
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,25 @@ | ||
| class ApplicationController < ActionController::API | ||
|
|
||
| def sort(list, params, sort_params, fields, method: nil) | ||
| # if :method | ||
|
|
||
| if params | ||
|
|
||
| if sort_params.include?(params) | ||
| #list = list.order(params) | ||
| list = list.sort_by{ |unit| unit.send(params) } | ||
| render json: list.as_json( only: fields , methods: method) | ||
|
|
||
| else | ||
| render json: { errors: { | ||
| title: ["#{list.first.class}s cannot be sorted by #{params}"] | ||
| } | ||
| }, | ||
| status: :bad_request | ||
| end | ||
| else | ||
| render json: list.as_json( only: fields, methods: method) | ||
| end | ||
| # else | ||
| end | ||
| 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 | ||
| @@fields = [:id, :name, :register, :postal_code, :phone, :registered_at] | ||
| @@method = :movies_checked_out_count | ||
| @@sort_params = ['name', 'registered_at', 'postal_code'] | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. In general don't make class variables in Rails controllers. It's a bad practice. Constants are fine |
||
|
|
||
| def index | ||
| customers = Customer.all | ||
| sort(customers, customer_params[:sort], @@sort_params, @@fields, method: @@method) | ||
| end | ||
|
|
||
| private | ||
|
|
||
| def customer_params | ||
| params.permit(:sort, :n, :p) | ||
| 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,46 @@ | ||
| class MoviesController < ApplicationController | ||
| @@fields = [:id, :title, :release_date] | ||
| @@method = :available_inventory | ||
| @@sort_params = ['title', 'release_date'] | ||
|
|
||
| def index | ||
| movies = Movie.all | ||
| sort(movies, movie_params[:sort], @@sort_params, @@fields) | ||
| end | ||
|
|
||
| def show | ||
| @movie = Movie.find_by(id: params[:id]) | ||
| if @movie.nil? | ||
| render json: { errors: { | ||
| title: ["Movie #{params[:id]} not found"] | ||
| } | ||
| }, | ||
| status: :not_found | ||
| else | ||
| render json: @movie.as_json(methods: :available_inventory, except: [:created_at, :updated_at]) | ||
|
|
||
| end | ||
| end | ||
|
|
||
| def create | ||
| movie = Movie.new(movie_params) | ||
|
|
||
| if movie.save | ||
| render json: { id: movie.id }, status: :ok | ||
| else | ||
| render json: { | ||
| errors: { | ||
| title: ["Could not create '#{movie_params[:title]}' Movie"] | ||
| }, | ||
| message: movie.errors.messages | ||
| }, status: :bad_request | ||
| end | ||
| end | ||
|
|
||
| private | ||
|
|
||
| def movie_params | ||
| params.permit(:title, :overview, :inventory, :release_date, :sort, :n, :p) | ||
| 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.
Good use of the
ApplicationController. Should it be private?