Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
52eb362
initial setup
dnsrocha Dec 2, 2020
e522431
generated models customer and video
anyatokar Dec 2, 2020
6aa4020
added videos checked out column and seeded successfully
anyatokar Dec 2, 2020
64914dc
added video, rental and customer controllers
dnsrocha Dec 2, 2020
b488145
added relationship logic to models
dnsrocha Dec 2, 2020
fdffa34
added actions for videos controller; added video routes
dnsrocha Dec 2, 2020
eedd040
setup endpoint to allow user to create new videos // create action
dnsrocha Dec 2, 2020
2ba061d
updated video_params
dnsrocha Dec 2, 2020
c7afce3
routes for customer and rental
anyatokar Dec 2, 2020
31318ac
Merge pull request #1 from dnsrocha/dns1
dnsrocha Dec 3, 2020
9a89397
resolved merge conflict in routes
anyatokar Dec 3, 2020
17edbce
fixed variable typos
dnsrocha Dec 3, 2020
7b0befd
Merge pull request #2 from dnsrocha/route-set-up
anyatokar Dec 3, 2020
55a356d
Update routes.rb
anyatokar Dec 3, 2020
dd4905b
Update rentals_controller.rb
anyatokar Dec 3, 2020
75aa5a8
controller tests 4 out of 6 passing
anyatokar Dec 3, 2020
8f61e08
minor change
anyatokar Dec 3, 2020
6da5c3e
Merge branch 'master' of https://github.com/dnsrocha/video-store-api …
anyatokar Dec 3, 2020
03aa010
customer tests passing
anyatokar Dec 3, 2020
e03a8be
Merge pull request #3 from dnsrocha/customer-controller
anyatokar Dec 3, 2020
e00d771
added more validations to customer
anyatokar Dec 3, 2020
c03250c
customer validation tests all passing
anyatokar Dec 3, 2020
3ab8e5f
Merge pull request #4 from dnsrocha/customer-controller
anyatokar Dec 3, 2020
130cdf3
rental validations added but tests commented out for now rentals fixt…
anyatokar Dec 3, 2020
49a2150
Merge pull request #5 from dnsrocha/rental-validations
anyatokar Dec 3, 2020
6493425
updates to videos controller
dnsrocha Dec 3, 2020
5395797
Merge branch 'master' of https://github.com/dnsrocha/video-store-api …
dnsrocha Dec 3, 2020
0d9519c
refactoring videos controller tests
dnsrocha Dec 3, 2020
9cac7cf
controller updates
dnsrocha Dec 3, 2020
f2ad1f8
added validation requirements for video
dnsrocha Dec 3, 2020
fa7b4c8
implemented check-in and check-out methods for rentals controller + t…
dnsrocha Dec 3, 2020
7cfc491
added routes for check in/check out
dnsrocha Dec 3, 2020
cec4f67
Merge pull request #6 from dnsrocha/dns2
dnsrocha Dec 3, 2020
188e91b
fixed identation
dnsrocha Dec 3, 2020
f8e664c
changed customer infor show not pass smoke test now doesnt show addre…
anyatokar Dec 3, 2020
cccad96
Merge pull request #7 from dnsrocha/wave1
anyatokar Dec 3, 2020
2fe61aa
updated rental controller tests
dnsrocha Dec 3, 2020
b8a8c82
updated tests for videos controller
dnsrocha Dec 3, 2020
c7a8eab
refactoring tests
dnsrocha Dec 3, 2020
18bc553
Merge pull request #8 from dnsrocha/dns3
dnsrocha Dec 3, 2020
4dd2610
video validation tests added and passing
anyatokar Dec 4, 2020
45a154b
Merge pull request #9 from dnsrocha/wave1
anyatokar Dec 4, 2020
e2e5700
videos tests all passing
anyatokar Dec 4, 2020
7653aaa
Merge pull request #10 from dnsrocha/wave1
anyatokar Dec 4, 2020
049b377
rental validations tests passing
anyatokar Dec 4, 2020
e17a448
Merge pull request #11 from dnsrocha/wave1
anyatokar Dec 4, 2020
859cfd0
wave1 smoke tests all passing
anyatokar Dec 4, 2020
96b117b
Merge pull request #12 from dnsrocha/wave1
anyatokar Dec 4, 2020
fdc3751
all tests passing postman check in test failing
anyatokar Dec 4, 2020
4a99769
only check in smoketest outstanding
anyatokar Dec 4, 2020
1da66c2
Merge pull request #13 from dnsrocha/wave1
anyatokar Dec 4, 2020
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
28 changes: 28 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# 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 pidfiles, but keep the directory.
/tmp/pids/*
!/tmp/pids/
!/tmp/pids/.keep

# Ignore uploaded files in development.
/storage/*
!/storage/.keep
.byebug_history

# Ignore master key for decrypting credentials and more.
/config/master.key
.idea
1 change: 1 addition & 0 deletions .ruby-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
2.6.5
57 changes: 57 additions & 0 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
source 'https://rubygems.org'
git_source(:github) { |repo| "https://github.com/#{repo}.git" }

ruby '2.6.5'

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '~> 6.0.3', '>= 6.0.3.4'
# Use postgresql as the database for Active Record
gem 'pg', '>= 0.18', '< 2.0'
# Use Puma as the app server
gem 'puma', '~> 4.1'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
# gem 'jbuilder', '~> 2.7'
# Use Redis adapter to run Action Cable in production
# gem 'redis', '~> 4.0'
# Use Active Model has_secure_password
# gem 'bcrypt', '~> 3.1.7'

# Use Active Storage variant
# gem 'image_processing', '~> 1.2'

# Reduces boot times through caching; required in config/boot.rb
gem 'bootsnap', '>= 1.4.2', 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.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 :development do
gem 'guard'
gem 'guard-minitest'
gem 'debase', '>= 0.2.4.1'
gem 'ruby-debug-ide', '>= 0.7.0'
end

group :test do
gem 'minitest-rails'
gem 'minitest-reporters'
end
212 changes: 212 additions & 0 deletions Gemfile.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,212 @@
GEM
remote: https://rubygems.org/
specs:
actioncable (6.0.3.4)
actionpack (= 6.0.3.4)
nio4r (~> 2.0)
websocket-driver (>= 0.6.1)
actionmailbox (6.0.3.4)
actionpack (= 6.0.3.4)
activejob (= 6.0.3.4)
activerecord (= 6.0.3.4)
activestorage (= 6.0.3.4)
activesupport (= 6.0.3.4)
mail (>= 2.7.1)
actionmailer (6.0.3.4)
actionpack (= 6.0.3.4)
actionview (= 6.0.3.4)
activejob (= 6.0.3.4)
mail (~> 2.5, >= 2.5.4)
rails-dom-testing (~> 2.0)
actionpack (6.0.3.4)
actionview (= 6.0.3.4)
activesupport (= 6.0.3.4)
rack (~> 2.0, >= 2.0.8)
rack-test (>= 0.6.3)
rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.0, >= 1.2.0)
actiontext (6.0.3.4)
actionpack (= 6.0.3.4)
activerecord (= 6.0.3.4)
activestorage (= 6.0.3.4)
activesupport (= 6.0.3.4)
nokogiri (>= 1.8.5)
actionview (6.0.3.4)
activesupport (= 6.0.3.4)
builder (~> 3.1)
erubi (~> 1.4)
rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.1, >= 1.2.0)
activejob (6.0.3.4)
activesupport (= 6.0.3.4)
globalid (>= 0.3.6)
activemodel (6.0.3.4)
activesupport (= 6.0.3.4)
activerecord (6.0.3.4)
activemodel (= 6.0.3.4)
activesupport (= 6.0.3.4)
activestorage (6.0.3.4)
actionpack (= 6.0.3.4)
activejob (= 6.0.3.4)
activerecord (= 6.0.3.4)
marcel (~> 0.3.1)
activesupport (6.0.3.4)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (>= 0.7, < 2)
minitest (~> 5.1)
tzinfo (~> 1.1)
zeitwerk (~> 2.2, >= 2.2.2)
ansi (1.5.0)
bootsnap (1.5.1)
msgpack (~> 1.0)
builder (3.2.4)
byebug (11.1.3)
coderay (1.1.3)
concurrent-ruby (1.1.7)
crass (1.0.6)
debase (2.3.0)
debase-ruby_core_source (~> 0.10.10)
debase-ruby_core_source (0.10.11)
erubi (1.10.0)
ffi (1.13.1)
formatador (0.2.5)
globalid (0.4.2)
activesupport (>= 4.2.0)
guard (2.16.2)
formatador (>= 0.2.4)
listen (>= 2.7, < 4.0)
lumberjack (>= 1.0.12, < 2.0)
nenv (~> 0.1)
notiffany (~> 0.0)
pry (>= 0.9.12)
shellany (~> 0.0)
thor (>= 0.18.1)
guard-compat (1.2.1)
guard-minitest (2.4.6)
guard-compat (~> 1.2)
minitest (>= 3.0)
i18n (1.8.5)
concurrent-ruby (~> 1.0)
listen (3.3.3)
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
loofah (2.8.0)
crass (~> 1.0.2)
nokogiri (>= 1.5.9)
lumberjack (1.2.8)
mail (2.7.1)
mini_mime (>= 0.1.1)
marcel (0.3.3)
mimemagic (~> 0.3.2)
method_source (1.0.0)
mimemagic (0.3.5)
mini_mime (1.0.2)
mini_portile2 (2.4.0)
minitest (5.14.2)
minitest-rails (6.0.1)
minitest (~> 5.10)
railties (~> 6.0.0)
minitest-reporters (1.4.2)
ansi
builder
minitest (>= 5.0)
ruby-progressbar
msgpack (1.3.3)
nenv (0.3.0)
nio4r (2.5.4)
nokogiri (1.10.10)
mini_portile2 (~> 2.4.0)
notiffany (0.1.3)
nenv (~> 0.1)
shellany (~> 0.0)
pg (1.2.3)
pry (0.13.1)
coderay (~> 1.1)
method_source (~> 1.0)
pry-rails (0.3.9)
pry (>= 0.10.4)
puma (4.3.7)
nio4r (~> 2.0)
rack (2.2.3)
rack-test (1.1.0)
rack (>= 1.0, < 3)
rails (6.0.3.4)
actioncable (= 6.0.3.4)
actionmailbox (= 6.0.3.4)
actionmailer (= 6.0.3.4)
actionpack (= 6.0.3.4)
actiontext (= 6.0.3.4)
actionview (= 6.0.3.4)
activejob (= 6.0.3.4)
activemodel (= 6.0.3.4)
activerecord (= 6.0.3.4)
activestorage (= 6.0.3.4)
activesupport (= 6.0.3.4)
bundler (>= 1.3.0)
railties (= 6.0.3.4)
sprockets-rails (>= 2.0.0)
rails-dom-testing (2.0.3)
activesupport (>= 4.2.0)
nokogiri (>= 1.6)
rails-html-sanitizer (1.3.0)
loofah (~> 2.3)
railties (6.0.3.4)
actionpack (= 6.0.3.4)
activesupport (= 6.0.3.4)
method_source
rake (>= 0.8.7)
thor (>= 0.20.3, < 2.0)
rake (13.0.1)
rb-fsevent (0.10.4)
rb-inotify (0.10.1)
ffi (~> 1.0)
ruby-debug-ide (2.3.0)
debase (~> 2.3.0)
ruby-progressbar (1.10.1)
shellany (0.0.1)
spring (2.1.1)
spring-watcher-listen (2.0.1)
listen (>= 2.7, < 4.0)
spring (>= 1.2, < 3.0)
sprockets (4.0.2)
concurrent-ruby (~> 1.0)
rack (> 1, < 3)
sprockets-rails (3.2.2)
actionpack (>= 4.0)
activesupport (>= 4.0)
sprockets (>= 3.0.0)
thor (1.0.1)
thread_safe (0.3.6)
tzinfo (1.2.8)
thread_safe (~> 0.1)
websocket-driver (0.7.3)
websocket-extensions (>= 0.1.0)
websocket-extensions (0.1.5)
zeitwerk (2.4.2)

PLATFORMS
ruby

DEPENDENCIES
bootsnap (>= 1.4.2)
byebug
debase (>= 0.2.4.1)
guard
guard-minitest
listen (~> 3.2)
minitest-rails
minitest-reporters
pg (>= 0.18, < 2.0)
pry-rails
puma (~> 4.1)
rails (~> 6.0.3, >= 6.0.3.4)
ruby-debug-ide (>= 0.7.0)
spring
spring-watcher-listen (~> 2.0.0)
tzinfo-data

RUBY VERSION
ruby 2.6.5p114

BUNDLED WITH
2.0.2
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
3 changes: 3 additions & 0 deletions app/controllers/application_controller.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
class ApplicationController < ActionController::API

end
Empty file added app/controllers/concerns/.keep
Empty file.
41 changes: 41 additions & 0 deletions app/controllers/customers_controller.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
class CustomersController < ApplicationController

def index
customers = Customer.all.as_json(only: [:id, :name, :registered_at, :postal_code, :phone, :videos_checked_out_count])
render json: customers, status: :ok
end

def create
customer = Customer.new(customer_params)

if customer.save
render json: customer.as_json(only: [:id]), status: :created
return
else
render json: {
ok: false,
errors: customer.errors.messages
}, status: :bad_request
return
end
end

def show
customer = Customer.find_by(id: params[:id])

if customer
render json: customer.as_json(only: [:id, :name, :registered_at, :postal_code, :phone, :videos_checked_out_count])
return
else
render json: { ok: false, errors: ["Not Found"] }, status: :not_found
return
end
end

def customer_params
return params.require(:customer).permit(:name, :address, :city, :state, :postal_code, :phone, :videos_checked_out_count)
end

end


Loading