forked from AdaGold/video-store-api
-
Notifications
You must be signed in to change notification settings - Fork 25
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
Karinna & Kat - VideoStoreAPI - Octos #8
Open
kseastman
wants to merge
38
commits into
Ada-C9:master
Choose a base branch
from
kseastman: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
38 commits
Select commit
Hold shift + click to select a range
99464ea
initialize new rails app
kseastman 844cca0
added zomg route and controlllers, verified in postman.
kseastman 98863ac
Controller tests and initialize methods for Customer class added. Al…
karinnainiguez d63dbb8
Add model tests for movie and make them pass with method and validati…
karinnainiguez 728016a
Ready to seed
karinnainiguez 508928a
added routes and rentals controller.
kseastman b0f200d
created movie fixtures, tests for movies controller and customers con…
kseastman d0c595f
Add controller tests for create method in movies and make them pass
karinnainiguez b6c357c
begin rentals controller tests
karinnainiguez fcc917c
rental model testing, and movie, rental and customer relationships ad…
kseastman dd15ea6
rental controller checkout tests and methods.
kseastman 9805f24
rentals controller tests created. Tests now passing with json render…
karinnainiguez 59bf868
refactor movies controller and tests to match smoke test
karinnainiguez c5145d2
added .DS_Store to gitignore
kseastman 4fdc15d
Merge branch 'ke/stash'
kseastman e0cd8f9
More refactor to pass smoke tests
karinnainiguez 5488cad
finished refactor to meet smoke test, redid controller_testing.
kseastman aa47296
Add logic for rented count for customer and checked out for movie
karinnainiguez d421766
added filters to coverage, put zomg path back in so we could test it …
kseastman 5b0e7ec
added rabl, oj and jbuilder to Gemfile
kseastman 08a2967
adding rabl file for customer index. Refactor tests. all passing.
karinnainiguez c80e70b
Added show and index for movies, refactored tests. All smoke tests an…
kseastman d457229
Added rental model tests for not allowing duplicate checkouts or chec…
kseastman cdffa75
adding validations to make tests pass for rental model
karinnainiguez 5216b6d
executive decision to not refactor on our TODO note.
kseastman 7db4ac3
added customers to yaml and controller tests for optional query param…
kseastman dfc3908
temporary unsatisfactory solution in customers_controller for params …
kseastman 23f706e
optional params accounted for in customers controller. Controller te…
karinnainiguez b43346c
Add tests for customer model request query method. Tests not passing…
karinnainiguez bbe9f73
Adding request_query method to customer model. All tests passing
karinnainiguez f97e3c1
addded fixtures, modified customer model test for movie, all movie_te…
kseastman 57a6eac
refactoring. all tests passing
karinnainiguez ebb5127
moving customer model method to application record to be shared
karinnainiguez d742286
movie version deprecated
kseastman 8e775a3
Merge branch 'master' into ke/optional_params
kseastman a673a13
request_query optionals passing tests and implemented for movies.
kseastman b0ca22b
Final refactoring of customer
karinnainiguez 450e87a
Add invalid sort to movie model testing
karinnainiguez 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 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,19 @@ | ||
# 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 | ||
|
||
coverage | ||
.DS_Store |
This file contains 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) 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.6' | ||
# Use postgresql as the database for Active Record | ||
gem 'pg', '>= 0.18', '< 2.0' | ||
# 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', '~> 4.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 'rabl' | ||
gem 'oj' | ||
gem 'jbuilder', '~> 2.5' | ||
|
||
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 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,172 @@ | ||
GEM | ||
remote: https://rubygems.org/ | ||
specs: | ||
actioncable (5.1.6) | ||
actionpack (= 5.1.6) | ||
nio4r (~> 2.0) | ||
websocket-driver (~> 0.6.1) | ||
actionmailer (5.1.6) | ||
actionpack (= 5.1.6) | ||
actionview (= 5.1.6) | ||
activejob (= 5.1.6) | ||
mail (~> 2.5, >= 2.5.4) | ||
rails-dom-testing (~> 2.0) | ||
actionpack (5.1.6) | ||
actionview (= 5.1.6) | ||
activesupport (= 5.1.6) | ||
rack (~> 2.0) | ||
rack-test (>= 0.6.3) | ||
rails-dom-testing (~> 2.0) | ||
rails-html-sanitizer (~> 1.0, >= 1.0.2) | ||
actionview (5.1.6) | ||
activesupport (= 5.1.6) | ||
builder (~> 3.1) | ||
erubi (~> 1.4) | ||
rails-dom-testing (~> 2.0) | ||
rails-html-sanitizer (~> 1.0, >= 1.0.3) | ||
activejob (5.1.6) | ||
activesupport (= 5.1.6) | ||
globalid (>= 0.3.6) | ||
activemodel (5.1.6) | ||
activesupport (= 5.1.6) | ||
activerecord (5.1.6) | ||
activemodel (= 5.1.6) | ||
activesupport (= 5.1.6) | ||
arel (~> 8.0) | ||
activesupport (5.1.6) | ||
concurrent-ruby (~> 1.0, >= 1.0.2) | ||
i18n (>= 0.7, < 2) | ||
minitest (~> 5.1) | ||
tzinfo (~> 1.1) | ||
ansi (1.5.0) | ||
arel (8.0.0) | ||
builder (3.2.3) | ||
byebug (10.0.2) | ||
coderay (1.1.2) | ||
concurrent-ruby (1.0.5) | ||
crass (1.0.4) | ||
docile (1.3.0) | ||
erubi (1.7.1) | ||
ffi (1.9.23) | ||
globalid (0.4.1) | ||
activesupport (>= 4.2.0) | ||
i18n (1.0.1) | ||
concurrent-ruby (~> 1.0) | ||
jbuilder (2.7.0) | ||
activesupport (>= 4.2.0) | ||
multi_json (>= 1.2) | ||
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.2) | ||
crass (~> 1.0.2) | ||
nokogiri (>= 1.5.9) | ||
mail (2.7.0) | ||
mini_mime (>= 0.1.1) | ||
method_source (0.9.0) | ||
mini_mime (1.0.0) | ||
mini_portile2 (2.3.0) | ||
minitest (5.11.3) | ||
minitest-rails (3.0.0) | ||
minitest (~> 5.8) | ||
railties (~> 5.0) | ||
minitest-reporters (1.2.0) | ||
ansi | ||
builder | ||
minitest (>= 5.0) | ||
ruby-progressbar | ||
multi_json (1.13.1) | ||
nio4r (2.3.1) | ||
nokogiri (1.8.2) | ||
mini_portile2 (~> 2.3.0) | ||
oj (3.6.0) | ||
pg (1.0.0) | ||
pry (0.11.3) | ||
coderay (~> 1.1.0) | ||
method_source (~> 0.9.0) | ||
pry-rails (0.3.6) | ||
pry (>= 0.10.4) | ||
puma (3.11.4) | ||
rabl (0.13.1) | ||
activesupport (>= 2.3.14) | ||
rack (2.0.5) | ||
rack-test (1.0.0) | ||
rack (>= 1.0, < 3) | ||
rails (5.1.6) | ||
actioncable (= 5.1.6) | ||
actionmailer (= 5.1.6) | ||
actionpack (= 5.1.6) | ||
actionview (= 5.1.6) | ||
activejob (= 5.1.6) | ||
activemodel (= 5.1.6) | ||
activerecord (= 5.1.6) | ||
activesupport (= 5.1.6) | ||
bundler (>= 1.3.0) | ||
railties (= 5.1.6) | ||
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.1.6) | ||
actionpack (= 5.1.6) | ||
activesupport (= 5.1.6) | ||
method_source | ||
rake (>= 0.8.7) | ||
thor (>= 0.18.1, < 2.0) | ||
rake (12.3.1) | ||
rb-fsevent (0.10.3) | ||
rb-inotify (0.9.10) | ||
ffi (>= 0.5.0, < 2) | ||
ruby-progressbar (1.9.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.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) | ||
tzinfo (1.2.5) | ||
thread_safe (~> 0.1) | ||
websocket-driver (0.6.5) | ||
websocket-extensions (>= 0.1.0) | ||
websocket-extensions (0.1.3) | ||
|
||
PLATFORMS | ||
ruby | ||
|
||
DEPENDENCIES | ||
byebug | ||
jbuilder (~> 2.5) | ||
listen (>= 3.0.5, < 3.2) | ||
minitest-rails | ||
minitest-reporters | ||
oj | ||
pg (>= 0.18, < 2.0) | ||
pry-rails | ||
puma (~> 3.7) | ||
rabl | ||
rails (~> 5.1.6) | ||
simplecov | ||
spring | ||
spring-watcher-listen (~> 2.0.0) | ||
tzinfo-data | ||
|
||
BUNDLED WITH | ||
1.16.1 |
This file contains 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 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 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 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 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,16 @@ | ||
class CustomersController < ApplicationController | ||
def index | ||
@customers = Customer.request_query(params, Customer) | ||
|
||
if @customers.empty? | ||
render json: {errors: { | ||
customer: ["No customers were found"] | ||
} | ||
}, status: :not_found | ||
|
||
else | ||
render 'index.json' | ||
end | ||
end | ||
|
||
end |
This file contains 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,48 @@ | ||
class MoviesController < ApplicationController | ||
|
||
def zomg | ||
render json: {message: "it works!"}, status: :ok | ||
end | ||
|
||
def index | ||
@movies = Movie.request_query(params, Movie) | ||
|
||
if @movies.empty? | ||
render json: { | ||
errors: { movie: ["No Movies were found"]} | ||
}, status: :not_found | ||
|
||
else | ||
render 'index.json' | ||
end | ||
end | ||
|
||
|
||
def show | ||
@movie = Movie.find_by(id: params[:id]) | ||
|
||
if @movie | ||
render 'show.json' | ||
else | ||
render json: {errors: {movie: ["Cound not find movie with ID: #{params[:id]}"]}}, status: :not_found | ||
end | ||
end | ||
|
||
def create | ||
movie = Movie.new(movie_params) | ||
|
||
if movie.save | ||
render json: { id: movie.id }, status: :ok | ||
else | ||
render json: { | ||
errors: movie.errors.messages | ||
}, status: :bad_request | ||
end | ||
|
||
end | ||
|
||
private | ||
def movie_params | ||
return params.permit(:title, :overview, :release_date, :inventory) | ||
end | ||
end |
This file contains 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,41 @@ | ||
class RentalsController < ApplicationController | ||
# protect_from_forgery with: :null_session | ||
|
||
def checkout | ||
rental = Rental.create_from_request(rental_params) | ||
if rental.save | ||
render json: { id: rental.id }, status: :ok | ||
else | ||
render json: { | ||
errors: rental.errors.messages | ||
}, status: :bad_request | ||
end | ||
end | ||
|
||
def checkin | ||
rental = Rental.where(rental_params).last | ||
|
||
if rental | ||
rental.checkin_date = DateTime.now | ||
if rental.save | ||
render json: rental.as_json, status: :ok | ||
else | ||
render json: { | ||
errors: rental.errors.messages | ||
}, status: :bad_request | ||
end | ||
else | ||
render json: { | ||
errors: { | ||
rental: ["Rental not found"] | ||
} | ||
}, status: :not_found | ||
end | ||
|
||
end | ||
|
||
private | ||
def rental_params | ||
return params.permit(:customer_id, :movie_id) | ||
end | ||
end |
This file contains 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 ApplicationJob < ActiveJob::Base | ||
end |
This file contains 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 @@ | ||
class ApplicationMailer < ActionMailer::Base | ||
default from: '[email protected]' | ||
layout 'mailer' | ||
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.
Generally an empty set of data isn't an error, but rather it would just return an empty array indicating that there was no data available