Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
c81b0b2
initial rails setup
Spatterjaaay May 9, 2017
440373e
created movie and customer models
Spatterjaaay May 9, 2017
a5ae7f9
created test structure for models
Spatterjaaay May 9, 2017
4026896
pseudocoded routes
auroralemieux May 9, 2017
9d4e42b
added simplecov
auroralemieux May 9, 2017
b6fe999
added column to customers
auroralemieux May 9, 2017
ade5867
added model fixtures
auroralemieux May 9, 2017
88947cb
created movies controller, added route for zomg action and added zomg…
Spatterjaaay May 9, 2017
e7c6c3b
added tests for customer validations
Spatterjaaay May 9, 2017
72b597e
fixed one failing test
Spatterjaaay May 9, 2017
b968b21
Merge pull request #1 from Spatterjaaay/am/model-testing
Spatterjaaay May 9, 2017
e5e4bf2
all model validations tests passing
auroralemieux May 9, 2017
e382857
added some validations for customer model
auroralemieux May 9, 2017
775cc35
created controller for customers, added tests for movies index
Spatterjaaay May 9, 2017
f65fcfe
added test for customers index action
Spatterjaaay May 9, 2017
48815da
all movie controller show tests passing
auroralemieux May 9, 2017
a151344
added error message for json returned when no movie found with that t…
auroralemieux May 10, 2017
4a02069
added the error for title not found and no movies found
auroralemieux May 10, 2017
c075624
added default for available inventory, added rentals model and counte…
auroralemieux May 10, 2017
cde70e1
created tests for rentals model
Spatterjaaay May 10, 2017
a4c4bf5
Merge pull request #2 from Spatterjaaay/am/rentals-model-testing
Spatterjaaay May 10, 2017
14b7024
created routes for rentals
Spatterjaaay May 10, 2017
88109e4
created rentals controller, added index, create and update actions wi…
Spatterjaaay May 10, 2017
08f5142
fixed tests
Spatterjaaay May 11, 2017
3ea78a3
added column to rentals with boolean for returned or not
auroralemieux May 11, 2017
b8e0def
stubbed out tests for rentals controller
auroralemieux May 11, 2017
959ff6c
added method to rentals to get ovedue rentals and then in rentals con…
Spatterjaaay May 12, 2017
04e74e1
added json to index action in rentals controller
Spatterjaaay May 12, 2017
0bc4d2b
some spaces. oops.
auroralemieux May 12, 2017
0db8155
fixing merge conflict
auroralemieux May 12, 2017
70dc5eb
wrote method to convert the customers into the hash format we wanted
auroralemieux May 12, 2017
d9547e4
rentals controller index method tests written and passing
auroralemieux May 12, 2017
9c98f8b
wrote tests for model method list_of_rentals
auroralemieux May 12, 2017
9fa1018
added create action to rentals controller, and added duedate is not i…
Spatterjaaay May 12, 2017
88a1f0c
added check to create action that it send error if movie not found, m…
Spatterjaaay May 12, 2017
826ea51
create test passing
auroralemieux May 12, 2017
3beb019
got the darn test to pass
auroralemieux May 13, 2017
aff51c8
all checkout tests written and passing
auroralemieux May 13, 2017
05f3b04
added erd
auroralemieux May 13, 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
18 changes: 18 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# 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 Byebug command history file.
.byebug_history
coverage
56 changes: 56 additions & 0 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
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.0.2'
# Use postgresql as the database for Active Record
gem 'pg', '~> 0.18'
# Use Puma as the app server
gem 'puma', '~> 3.0'
# 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', platform: :mri
end

group :development do
gem 'listen', '~> 3.0.5'
# 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 do
gem 'better_errors'
gem 'binding_of_caller'
gem 'pry-rails'
gem 'rails-erd'
end

gem 'awesome_print'
gem 'foundation-rails'
group :test do
gem 'minitest-rails'
gem 'minitest-reporters'
gem 'simplecov'
end
195 changes: 195 additions & 0 deletions Gemfile.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,195 @@
GEM
remote: https://rubygems.org/
specs:
actioncable (5.0.2)
actionpack (= 5.0.2)
nio4r (>= 1.2, < 3.0)
websocket-driver (~> 0.6.1)
actionmailer (5.0.2)
actionpack (= 5.0.2)
actionview (= 5.0.2)
activejob (= 5.0.2)
mail (~> 2.5, >= 2.5.4)
rails-dom-testing (~> 2.0)
actionpack (5.0.2)
actionview (= 5.0.2)
activesupport (= 5.0.2)
rack (~> 2.0)
rack-test (~> 0.6.3)
rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.0, >= 1.0.2)
actionview (5.0.2)
activesupport (= 5.0.2)
builder (~> 3.1)
erubis (~> 2.7.0)
rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.0, >= 1.0.3)
activejob (5.0.2)
activesupport (= 5.0.2)
globalid (>= 0.3.6)
activemodel (5.0.2)
activesupport (= 5.0.2)
activerecord (5.0.2)
activemodel (= 5.0.2)
activesupport (= 5.0.2)
arel (~> 7.0)
activesupport (5.0.2)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (~> 0.7)
minitest (~> 5.1)
tzinfo (~> 1.1)
ansi (1.5.0)
arel (7.1.4)
awesome_print (1.7.0)
babel-source (5.8.35)
babel-transpiler (0.7.0)
babel-source (>= 4.0, < 6)
execjs (~> 2.0)
better_errors (2.1.1)
coderay (>= 1.0.0)
erubis (>= 2.6.6)
rack (>= 0.9.0)
binding_of_caller (0.7.2)
debug_inspector (>= 0.0.1)
builder (3.2.3)
byebug (9.0.6)
choice (0.2.0)
coderay (1.1.1)
concurrent-ruby (1.0.5)
debug_inspector (0.0.3)
docile (1.1.5)
erubis (2.7.0)
execjs (2.7.0)
ffi (1.9.18)
foundation-rails (6.3.1.0)
railties (>= 3.1.0)
sass (>= 3.3.0, < 3.5)
sprockets-es6 (>= 0.9.0)
globalid (0.4.0)
activesupport (>= 4.2.0)
i18n (0.8.1)
json (2.0.3)
listen (3.0.8)
rb-fsevent (~> 0.9, >= 0.9.4)
rb-inotify (~> 0.9, >= 0.9.7)
loofah (2.0.3)
nokogiri (>= 1.5.9)
mail (2.6.5)
mime-types (>= 1.16, < 4)
method_source (0.8.2)
mime-types (3.1)
mime-types-data (~> 3.2015)
mime-types-data (3.2016.0521)
mini_portile2 (2.1.0)
minitest (5.10.1)
minitest-rails (3.0.0)
minitest (~> 5.8)
railties (~> 5.0)
minitest-reporters (1.1.14)
ansi
builder
minitest (>= 5.0)
ruby-progressbar
nio4r (2.0.0)
nokogiri (1.7.1)
mini_portile2 (~> 2.1.0)
pg (0.20.0)
pry (0.10.4)
coderay (~> 1.1.0)
method_source (~> 0.8.1)
slop (~> 3.4)
pry-rails (0.3.6)
pry (>= 0.10.4)
puma (3.8.2)
rack (2.0.2)
rack-test (0.6.3)
rack (>= 1.0)
rails (5.0.2)
actioncable (= 5.0.2)
actionmailer (= 5.0.2)
actionpack (= 5.0.2)
actionview (= 5.0.2)
activejob (= 5.0.2)
activemodel (= 5.0.2)
activerecord (= 5.0.2)
activesupport (= 5.0.2)
bundler (>= 1.3.0, < 2.0)
railties (= 5.0.2)
sprockets-rails (>= 2.0.0)
rails-dom-testing (2.0.2)
activesupport (>= 4.2.0, < 6.0)
nokogiri (~> 1.6)
rails-erd (1.5.0)
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.0.2)
actionpack (= 5.0.2)
activesupport (= 5.0.2)
method_source
rake (>= 0.8.7)
thor (>= 0.18.1, < 2.0)
rake (12.0.0)
rb-fsevent (0.9.8)
rb-inotify (0.9.8)
ffi (>= 0.5.0)
ruby-graphviz (1.2.3)
ruby-progressbar (1.8.1)
sass (3.4.23)
simplecov (0.13.0)
docile (~> 1.1.0)
json (>= 1.8, < 3)
simplecov-html (~> 0.10.0)
simplecov-html (0.10.0)
slop (3.6.0)
spring (2.0.1)
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-es6 (0.9.2)
babel-source (>= 5.8.11)
babel-transpiler
sprockets (>= 3.0.0)
sprockets-rails (3.2.0)
actionpack (>= 4.0)
activesupport (>= 4.0)
sprockets (>= 3.0.0)
thor (0.19.4)
thread_safe (0.3.6)
tzinfo (1.2.3)
thread_safe (~> 0.1)
websocket-driver (0.6.5)
websocket-extensions (>= 0.1.0)
websocket-extensions (0.1.2)

PLATFORMS
ruby

DEPENDENCIES
awesome_print
better_errors
binding_of_caller
byebug
foundation-rails
listen (~> 3.0.5)
minitest-rails
minitest-reporters
pg (~> 0.18)
pry-rails
puma (~> 3.0)
rails (~> 5.0.2)
rails-erd
simplecov
spring
spring-watcher-listen (~> 2.0.0)
tzinfo-data

BUNDLED WITH
1.14.6
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.
6 changes: 6 additions & 0 deletions app/controllers/customers_controller.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
class CustomersController < ApplicationController
def index
customers = Customer.all
render json: customers.as_json(only: [:id, :name, :registered_at, :postal_code, :phone, :rentals_count]), status: :ok
end
end
33 changes: 33 additions & 0 deletions app/controllers/movies_controller.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
class MoviesController < ApplicationController

def index
# movies = Movie.all
# count = Movie.count
# response = {}
# response["movies"] = movies
# response["count"] = count
# if !movies.empty?
# render json: response.as_json(except: [:created_at, :updated_at, :id]), status: :ok
# else
# render json: {count: Movie.count}
# end

movies = Movie.all
if !movies.empty?
render json: movies.as_json(except: [:created_at, :updated_at, :id]), status: :ok
else
render json: {count: Movie.count}
end
end

def show
movie = Movie.find_by_title(params[:title])

if movie
render json: movie.as_json(except: [:created_at, :updated_at, :id]), status: :ok
else
render json: {errors: {"title": ["Movie '#{params[:title]}' not found"]} }, status: :not_found
end

end
end
Loading