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

Severin & Jan | Carets #18

Open
wants to merge 42 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
3c196e3
rails initial set up
JNEdrozo Nov 6, 2017
bc7e517
Added rails gem rails-erd and generated erd pdf
JNEdrozo Nov 6, 2017
9a72c9a
Seeded db and added account_credit to customer model migration
JNEdrozo Nov 6, 2017
49b51cb
Movie model test validation
JNEdrozo Nov 6, 2017
11da747
Customer model test validation
JNEdrozo Nov 6, 2017
f2363a6
Movie model relations test
JNEdrozo Nov 6, 2017
120d606
Rental model relations test
JNEdrozo Nov 6, 2017
95d4c13
Added rails routes (for customers and movies)
JNEdrozo Nov 6, 2017
4699a3c
Added available_inventory column to movies model & checked_out_count …
JNEdrozo Nov 6, 2017
811d5bf
Added controllers for movies & customers (with customer index method …
JNEdrozo Nov 6, 2017
5998997
Customer Controller index tests added
JNEdrozo Nov 6, 2017
779d64d
MoviesController #index testing and method update
JNEdrozo Nov 6, 2017
e7ea0d7
MovieController #show testing and method updated
JNEdrozo Nov 6, 2017
72ac292
Added MovieController #show and #create tests
JNEdrozo Nov 6, 2017
7f5572b
Updated private movie_params to not include id
JNEdrozo Nov 7, 2017
16bc7ee
Updated params stxr(removed movie: from params) for MovieController #…
JNEdrozo Nov 7, 2017
f28d293
Added defualt value to customer model for movies_checked_out_count
JNEdrozo Nov 7, 2017
d6f0578
Added gem for serialization and removed .json code (and added attribu…
JNEdrozo Nov 7, 2017
ebc66be
Removed .json code (and added attribute readers in CustomerSerializer)
JNEdrozo Nov 7, 2017
e105191
Updated Serializers for Movies
JNEdrozo Nov 7, 2017
4890056
Added nested routes for movies (checkin and checkout) and customers (…
JNEdrozo Nov 7, 2017
7179566
Added checkin and checkout fields(default values nil) for rentals and…
JNEdrozo Nov 7, 2017
5ed07ae
made rental controller method names (chckout, checkin, overdue)
JNEdrozo Nov 7, 2017
4eed6bb
made rental controller method names (chckout, checkin, overdue)
JNEdrozo Nov 7, 2017
2c004e9
removed spacing in rentals controller
JNEdrozo Nov 7, 2017
61abe73
Removed nested rental routes to comply with postman tests
JNEdrozo Nov 7, 2017
9340f63
Updated rental db(changed field checkout to checkout date) and added …
JNEdrozo Nov 7, 2017
9f9c41b
completed rental checkout positive case tests
JNEdrozo Nov 7, 2017
7083a38
Rental Controller #checkout negative testing complete
JNEdrozo Nov 7, 2017
5c15117
added checkin method and controller tests
JNEdrozo Nov 7, 2017
44f7ea4
added inventory increment and decrement methods and revised tests
JNEdrozo Nov 7, 2017
d787255
added tests for rentals custom model methods
JNEdrozo Nov 7, 2017
6220edd
migration to add default value of zero for inventory and available_in…
JNEdrozo Nov 7, 2017
05e4bbb
Added customer.movies_checked_out_count += 1
JNEdrozo Nov 7, 2017
5ee7698
added extra custom rental model method tests
JNEdrozo Nov 7, 2017
ec21827
Backup Commit(prior to merge)
JNEdrozo Nov 8, 2017
cadb392
Merged Rental commits (Tues, Nov 7th)
JNEdrozo Nov 8, 2017
9ebb313
Refactored RentalController#checkin method and updated tests
JNEdrozo Nov 8, 2017
8521b6c
revisions to pass smoke tests
JNEdrozo Nov 8, 2017
1aeebc7
Added rental model (is_overdue?) tests
JNEdrozo Nov 8, 2017
020a4d2
Updates to RentalController#overdue method and tests and #is_overdue?…
JNEdrozo Nov 8, 2017
b318fd9
Updated ERD diagram file
JNEdrozo 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

gem 'active_model_serializers'

# 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'

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'
gem 'rails-erd', require: false
end

group :test do
gem 'minitest-rails'
gem 'minitest-reporters'
end
187 changes: 187 additions & 0 deletions Gemfile.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,187 @@
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
choice (0.2.0)
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-erd (1.5.2)
activerecord (>= 3.2)
activesupport (>= 3.2)
choice (~> 0.2.0)
ruby-graphviz (~> 1.2)
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-graphviz (1.2.3)
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)
rails-erd
spring
spring-watcher-listen (~> 2.0.0)
tzinfo-data

BUNDLED WITH
1.16.0.pre.3
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
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.
10 changes: 10 additions & 0 deletions app/controllers/customers_controller.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
class CustomersController < ApplicationController
def index
customers = Customer.all

render(
json: customers,
status: :ok
)
end
end
45 changes: 45 additions & 0 deletions app/controllers/movies_controller.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
class MoviesController < ApplicationController
def index
movies = Movie.all

render(
json: movies, each_serializer: AllMovieSerializer, status: :ok
)
end

def show
movie = Movie.find_by(id: params[:id])

if movie
render(
json: movie, each_serializer: MovieSerializer, status: :ok
)
else
render(
json: { ok: false },
status: :not_found
)
end
end

def create
movie = Movie.create(movie_params)

if movie.valid?
render(
json: movie, each_serializer: MovieSerializer, status: :ok
)
else
render(
json: { errors: movie.errors.messages },
status: :bad_request
)
end

end

private
def movie_params
params.permit(:title, :release_date, :overview, :inventory, :available_inventory)
end
end
Loading