Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
2e43f8d
rails new api, models generated
mystioreo Nov 5, 2018
3fd8f8b
customers, movies, rentals controllers
mystioreo Nov 5, 2018
57f59f9
routes, zomg
mystioreo Nov 5, 2018
0cb4e78
customer validations
lauracodecreations Nov 5, 2018
278fce8
movie model validation tests
mystioreo Nov 5, 2018
eb9dade
validations test
lauracodecreations Nov 5, 2018
ff2c152
movie model tests complete for relationships and custom methods
mystioreo Nov 5, 2018
2b3690f
validations for relationships
lauracodecreations Nov 5, 2018
87e4e1a
add active? to rentals table, set default in rentals initialize
mystioreo Nov 5, 2018
0710d4f
add active to rentals yml
mystioreo Nov 5, 2018
fa92df4
Merge branch 'master' of https://github.com/mystioreo/VideoStoreAPI
mystioreo Nov 5, 2018
3ba7850
rental testing for validations, relationships, initialize method
mystioreo Nov 5, 2018
2944f89
set default for active
mystioreo Nov 5, 2018
809c187
customer index action
lauracodecreations Nov 5, 2018
b62970a
merged
lauracodecreations Nov 5, 2018
b3700eb
moviescontroller methods index, show, and create, tested with postman
mystioreo Nov 5, 2018
f651722
wave 2 smoke tests passing
mystioreo Nov 5, 2018
abf9b4a
index action test
lauracodecreations Nov 5, 2018
f9c7ef3
customer controller testing
lauracodecreations Nov 5, 2018
ff8e5b4
basic json tests passing
mystioreo Nov 5, 2018
88b05b4
index tests
mystioreo Nov 6, 2018
5b9b2d9
show tests
mystioreo Nov 6, 2018
1e068b8
checkout action
lauracodecreations Nov 6, 2018
2f98fe8
create tests
mystioreo Nov 6, 2018
2f87121
Merge branch 'master' of https://github.com/mystioreo/VideoStoreAPI
mystioreo Nov 6, 2018
94cdb6f
refactor checkin action
lauracodecreations Nov 6, 2018
68fc744
create checkin method
lauracodecreations Nov 6, 2018
05f2b32
rental actions
lauracodecreations Nov 6, 2018
1e10cdf
customers index test
mystioreo Nov 6, 2018
033a58b
customer sort by name, registered_at, postal_code
mystioreo Nov 6, 2018
6cb6f6f
tests for customer index sort
mystioreo Nov 6, 2018
d818bbd
rental controller test
lauracodecreations Nov 6, 2018
d4eb33f
Merge branch 'master' of https://github.com/mystioreo/VideoStoreAPI
lauracodecreations Nov 6, 2018
7ec4ba4
Merge branch 'queryparams'
mystioreo Nov 6, 2018
abcf5ea
merge
mystioreo Nov 6, 2018
dda0e1d
Merge branch 'master' into smoketestw3
mystioreo Nov 6, 2018
c003a61
logic in rentalscontroller
mystioreo Nov 6, 2018
c5fd5cf
Merge branch 'master' into smoketestw3
mystioreo Nov 6, 2018
3ea3fa9
changed path names to match smoke test
mystioreo Nov 6, 2018
a9f6951
updated tests
mystioreo Nov 6, 2018
67409dd
customer custom method test
mystioreo Nov 6, 2018
cd9a64a
pagination gem installed
lauracodecreations Nov 6, 2018
7170d64
pagination completed for customer index action
lauracodecreations Nov 7, 2018
b656557
rentals overdue method
mystioreo Nov 7, 2018
9f07370
test for pagination
lauracodecreations Nov 7, 2018
4bad231
overdue tests, no sorting included yet
mystioreo Nov 7, 2018
624a4f1
Merge branch 'rentaloptions'
mystioreo Nov 7, 2018
e59be3b
controller filters for sort and paginate
mystioreo Nov 7, 2018
6b6d09d
controller filter for sort
mystioreo Nov 7, 2018
b16b63a
refactor overdues json
mystioreo Nov 7, 2018
b13315c
added sort option for array of hashes vs array of objects
mystioreo Nov 7, 2018
c428899
sort test for overdues
mystioreo Nov 7, 2018
e0ee600
customer current rentals
mystioreo Nov 7, 2018
22d6007
tests for customer current rentals with sorting and page limit
mystioreo Nov 7, 2018
02e39ce
rename current_path to customer_current_path to avoid naming conflict
mystioreo Nov 7, 2018
fee732a
customer history tests with sort and pagination
mystioreo Nov 7, 2018
6b5f9fa
method and test for currently checkout movie - customer info
lauracodecreations Nov 7, 2018
a7e1ba4
Merge branch 'master' of https://github.com/mystioreo/VideoStoreAPI
lauracodecreations Nov 7, 2018
7d6f640
simplecov
mystioreo Nov 7, 2018
74d2471
remove duplicate gem
mystioreo Nov 7, 2018
795cc90
history method and test:
lauracodecreations Nov 7, 2018
d131b82
added test case for rentalscontroller
mystioreo Nov 7, 2018
d2b9240
history method and test for it
lauracodecreations Nov 7, 2018
10afe54
routes for history
lauracodecreations Nov 7, 2018
0fc192b
coverage
lauracodecreations Nov 7, 2018
7f4956e
Merge branch 'master' of https://github.com/mystioreo/VideoStoreAPI
mystioreo Nov 7, 2018
24dc479
simplecov
mystioreo Nov 7, 2018
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
Binary file added .DS_Store
Binary file not shown.
23 changes: 23 additions & 0 deletions .gitignore
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
1 change: 1 addition & 0 deletions .ruby-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
ruby-2.5.1
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) { |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'

gem 'will_paginate', '~> 3.1.1'
# 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'
gem 'simplecov', require: false
end
179 changes: 179 additions & 0 deletions Gemfile.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,179 @@
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)
will_paginate (3.1.6)

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
will_paginate (~> 3.1.1)

RUBY VERSION
ruby 2.5.1p57

BUNDLED WITH
1.17.1
9 changes: 9 additions & 0 deletions Guardfile
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
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
40 changes: 40 additions & 0 deletions app/controllers/application_controller.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
class ApplicationController < ActionController::API
require 'will_paginate/array'

before_action :sort_param, :page_param, :num_page_param

private


def sort_array(array, keyword_array)
return array.sort_by{|item| item.send(sort_param)} if sort_param && sort_param.in?(keyword_array) && array[0].respond_to?(sort_param)
return array.sort_by{|item| item[sort_param]} if sort_param && sort_param.in?(keyword_array) && array[0][sort_param]
return array
end

def paginate_array(array)
page_param ||= 1
return array.paginate(:page => page_param, :per_page => num_page_param) if page_param && num_page_param
return array
end

def sort_param
params[:sort]
end

def page_param
if params[:p].to_i > 0
return params[:p].to_i
else
return nil
end
end

def num_page_param
if params[:n].to_i > 0
return params[:n].to_i
else
return nil
end
end
end
Empty file added app/controllers/concerns/.keep
Empty file.
Loading