Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
b2c2253
new rails api setup
antoniairizarry May 26, 2020
4183145
generated models for movies,customers, and rentals. also controllers …
antoniairizarry May 26, 2020
bfe4e2a
did db:migrate
antoniairizarry May 26, 2020
3db1e9e
created migrations to relate customers to rentals and videos to rentals
antoniairizarry May 26, 2020
0f4037f
initial setup
FreeMonkey19 May 26, 2020
970c541
Merge branch 'master' of github.com:antoniairizarry/video-store-api
FreeMonkey19 May 26, 2020
2778ae4
fix migration issues
FreeMonkey19 May 26, 2020
3325027
added routes
antoniairizarry May 26, 2020
7f60007
added index to video and customer controllers
antoniairizarry May 26, 2020
cb10ecb
created validations and set up relationships in models
antoniairizarry May 26, 2020
8ba84be
add first index action test
FreeMonkey19 May 27, 2020
4e008da
initial index action
FreeMonkey19 May 27, 2020
d4ac42c
finish index action
FreeMonkey19 May 27, 2020
3209d12
write second/third controllers test - set up fixtures for customers
FreeMonkey19 May 27, 2020
574453e
add show action and tests
FreeMonkey19 May 27, 2020
5c24f4b
add video count column to table
FreeMonkey19 May 27, 2020
7a91d9c
add column to table
FreeMonkey19 May 27, 2020
9758c4d
update customers fields to match smoke test json
FreeMonkey19 May 27, 2020
2add15a
video index and show controller features working with corresponding t…
antoniairizarry May 27, 2020
e27a068
changes to video controller test
antoniairizarry May 27, 2020
fd262ba
fix typo
FreeMonkey19 May 27, 2020
c910acd
fix typo
FreeMonkey19 May 27, 2020
77ca3df
fix typo
FreeMonkey19 May 27, 2020
6c8b201
changes to controller test
antoniairizarry May 27, 2020
dbd8cd2
made change to validation in video model that was causing error in vi…
antoniairizarry May 27, 2020
7b33929
modified video controller and its test file, tests for endpoint are p…
antoniairizarry May 27, 2020
b0d9d05
create add/remove video checked in/out methods
FreeMonkey19 May 28, 2020
9e75361
changes to video controller params and small tweak to video controlle…
antoniairizarry May 28, 2020
2ef0c5b
add nullify to rentals relationship - clean up test file
FreeMonkey19 May 28, 2020
1d12a9b
Merge branch 'master' of github.com:antoniairizarry/video-store-api
FreeMonkey19 May 28, 2020
73d0ac7
added inventory methods to video model
antoniairizarry May 28, 2020
456ea71
added more validations to video model
antoniairizarry May 28, 2020
88e6c0f
add an end and a comma
FreeMonkey19 May 28, 2020
5087f70
Merge branch 'master' of github.com:antoniairizarry/video-store-api
FreeMonkey19 May 28, 2020
bce4116
modified relationship to customers through rentals
antoniairizarry May 28, 2020
fab3823
generated rentals controller
antoniairizarry May 28, 2020
95e7250
created index in rentals controller
antoniairizarry May 28, 2020
d584b44
ugh
FreeMonkey19 May 28, 2020
4f45fe7
add columns to table, migrate, and see changes in schema
FreeMonkey19 May 28, 2020
2215c90
add tests for check_in method
FreeMonkey19 May 28, 2020
0b21bbc
add first test for check-in method
FreeMonkey19 May 28, 2020
c7b36c4
clarify resources and add custom routes
FreeMonkey19 May 28, 2020
92d0387
create check-in method and test
FreeMonkey19 May 28, 2020
7f64d10
Merge branch 'char-rentals-controller' of github.com:antoniairizarry/…
FreeMonkey19 May 28, 2020
f9bafcd
fix conflict
FreeMonkey19 May 28, 2020
937a5a6
remove end
FreeMonkey19 May 28, 2020
5d8ede3
merged work on rentals controller and tests. added check out method
antoniairizarry May 28, 2020
50a8064
added index test to rentals controller tests again, fixed a couple of…
antoniairizarry May 28, 2020
8cca4f5
made some changes in order to get smoke tests to pass
antoniairizarry May 28, 2020
a6b2a0f
debug failing tests
FreeMonkey19 May 28, 2020
ff1e941
fix one failing test
FreeMonkey19 May 28, 2020
6c25552
make failing tests pass
FreeMonkey19 May 29, 2020
904bcde
establish has_many relations
FreeMonkey19 May 29, 2020
1b50cb8
remove comments/general cleanup
FreeMonkey19 May 29, 2020
ec08dda
add unit teests
FreeMonkey19 May 29, 2020
8e9a0f1
some changes to video controller and its test file in order to get te…
antoniairizarry May 29, 2020
8ccec61
unit tests passing for now
antoniairizarry May 29, 2020
0cf429a
Wave 1 Smoke Tests Passing
antoniairizarry May 29, 2020
ebdefd2
modified create controller tests
antoniairizarry May 29, 2020
9798742
made changes to rentals controller and rentals controller tests to ge…
antoniairizarry May 29, 2020
0e38802
made some modifications to match error response to smoke test
antoniairizarry May 29, 2020
6f7a416
had to change video_id to videos_id in smoke test file because of a t…
antoniairizarry May 29, 2020
9aba987
added a couple of validation tests for videos and customers models
antoniairizarry May 29, 2020
c4e659c
woke up to smoke tests failing again. fixed by changing rentals model…
antoniairizarry May 29, 2020
576df59
fix typos
FreeMonkey19 May 29, 2020
dd22a81
typo
FreeMonkey19 May 29, 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
Binary file added .DS_Store
Binary file not shown.
27 changes: 27 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# 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
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'
# 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.1)
actionpack (= 6.0.3.1)
nio4r (~> 2.0)
websocket-driver (>= 0.6.1)
actionmailbox (6.0.3.1)
actionpack (= 6.0.3.1)
activejob (= 6.0.3.1)
activerecord (= 6.0.3.1)
activestorage (= 6.0.3.1)
activesupport (= 6.0.3.1)
mail (>= 2.7.1)
actionmailer (6.0.3.1)
actionpack (= 6.0.3.1)
actionview (= 6.0.3.1)
activejob (= 6.0.3.1)
mail (~> 2.5, >= 2.5.4)
rails-dom-testing (~> 2.0)
actionpack (6.0.3.1)
actionview (= 6.0.3.1)
activesupport (= 6.0.3.1)
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.1)
actionpack (= 6.0.3.1)
activerecord (= 6.0.3.1)
activestorage (= 6.0.3.1)
activesupport (= 6.0.3.1)
nokogiri (>= 1.8.5)
actionview (6.0.3.1)
activesupport (= 6.0.3.1)
builder (~> 3.1)
erubi (~> 1.4)
rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.1, >= 1.2.0)
activejob (6.0.3.1)
activesupport (= 6.0.3.1)
globalid (>= 0.3.6)
activemodel (6.0.3.1)
activesupport (= 6.0.3.1)
activerecord (6.0.3.1)
activemodel (= 6.0.3.1)
activesupport (= 6.0.3.1)
activestorage (6.0.3.1)
actionpack (= 6.0.3.1)
activejob (= 6.0.3.1)
activerecord (= 6.0.3.1)
marcel (~> 0.3.1)
activesupport (6.0.3.1)
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.4.6)
msgpack (~> 1.0)
builder (3.2.4)
byebug (11.1.3)
coderay (1.1.2)
concurrent-ruby (1.1.6)
crass (1.0.6)
debase (0.2.4.1)
debase-ruby_core_source (>= 0.10.2)
debase-ruby_core_source (0.10.9)
erubi (1.9.0)
ffi (1.12.2)
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.2)
concurrent-ruby (~> 1.0)
listen (3.2.1)
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
loofah (2.5.0)
crass (~> 1.0.2)
nokogiri (>= 1.5.9)
lumberjack (1.2.4)
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.1)
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.2)
nokogiri (1.10.9)
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.5)
nio4r (~> 2.0)
rack (2.2.2)
rack-test (1.1.0)
rack (>= 1.0, < 3)
rails (6.0.3.1)
actioncable (= 6.0.3.1)
actionmailbox (= 6.0.3.1)
actionmailer (= 6.0.3.1)
actionpack (= 6.0.3.1)
actiontext (= 6.0.3.1)
actionview (= 6.0.3.1)
activejob (= 6.0.3.1)
activemodel (= 6.0.3.1)
activerecord (= 6.0.3.1)
activestorage (= 6.0.3.1)
activesupport (= 6.0.3.1)
bundler (>= 1.3.0)
railties (= 6.0.3.1)
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.1)
actionpack (= 6.0.3.1)
activesupport (= 6.0.3.1)
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 (0.7.2)
rake (>= 0.8.1)
ruby-progressbar (1.10.1)
shellany (0.0.1)
spring (2.1.0)
spring-watcher-listen (2.0.1)
listen (>= 2.7, < 4.0)
spring (>= 1.2, < 3.0)
sprockets (4.0.0)
concurrent-ruby (~> 1.0)
rack (> 1, < 3)
sprockets-rails (3.2.1)
actionpack (>= 4.0)
activesupport (>= 4.0)
sprockets (>= 3.0.0)
thor (1.0.1)
thread_safe (0.3.6)
tzinfo (1.2.7)
thread_safe (~> 0.1)
websocket-driver (0.7.2)
websocket-extensions (>= 0.1.0)
websocket-extensions (0.1.4)
zeitwerk (2.3.0)

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)
ruby-debug-ide (>= 0.7.0)
spring
spring-watcher-listen (~> 2.0.0)
tzinfo-data

RUBY VERSION
ruby 2.6.5p114

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

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

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

if customer.nil?
render json: {
ok: false,
message: 'Not found',
}, status: :not_found
return
end

render json: customer.as_json(only: [:id, :name, :registered_at, :postal_code, :phone, :videos_checked_out_count ]),
status: :ok
end #show
end # class end
Loading