-
Notifications
You must be signed in to change notification settings - Fork 24
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
Amy & Christiane -- Carets #20
base: master
Are you sure you want to change the base?
Changes from all commits
fe5cf19
66d25df
f868fdb
e06981c
d7e9806
d5b37be
c2795e7
43e6f54
281d19b
fff6070
2834cf8
ac8bc5f
fa464fa
e189b14
89436e4
43d8e5d
5c42cb7
dcefa3b
e94e39a
6f0a696
8db92f7
4adaa97
0a20af6
50f3bd2
245c482
81c5504
7f192a2
3e4c536
b26709a
18326bd
f5e6eea
b12dc08
5ca00c8
270bcde
fc81591
0bd6cdb
6680806
a1ec535
05d6eb1
432d046
a699d20
58bbd62
bea4f0b
501fde7
e3f5edf
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
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 | ||
|
||
.byebug_history | ||
|
||
.DS_Store |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
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' | ||
gem 'foundation-rails', '6.4.1.2' | ||
group :development do | ||
gem 'better_errors' | ||
gem 'pry-rails' | ||
gem 'binding_of_caller' | ||
end | ||
|
||
group :test do | ||
gem 'minitest-rails' | ||
gem 'minitest-reporters' | ||
end |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,194 @@ | ||
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) | ||
babel-source (5.8.35) | ||
babel-transpiler (0.7.0) | ||
babel-source (>= 4.0, < 6) | ||
execjs (~> 2.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 | ||
coderay (1.1.2) | ||
concurrent-ruby (1.0.5) | ||
crass (1.0.2) | ||
debug_inspector (0.0.3) | ||
erubi (1.7.0) | ||
execjs (2.7.0) | ||
ffi (1.9.18) | ||
foundation-rails (6.4.1.2) | ||
railties (>= 3.1.0) | ||
sass (>= 3.3.0, < 3.5) | ||
sprockets-es6 (>= 0.9.0) | ||
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-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-progressbar (1.9.0) | ||
ruby_dep (1.5.0) | ||
sass (3.4.25) | ||
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-es6 (0.9.2) | ||
babel-source (>= 5.8.11) | ||
babel-transpiler | ||
sprockets (>= 3.0.0) | ||
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 | ||
foundation-rails (= 6.4.1.2) | ||
jquery-turbolinks | ||
listen (>= 3.0.5, < 3.2) | ||
minitest-rails | ||
minitest-reporters | ||
pg (~> 0.18) | ||
pry-rails | ||
puma (~> 3.7) | ||
rails (~> 5.1.4) | ||
spring | ||
spring-watcher-listen (~> 2.0.0) | ||
tzinfo-data | ||
|
||
BUNDLED WITH | ||
1.15.3 |
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 |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
module ApplicationCable | ||
class Channel < ActionCable::Channel::Base | ||
end | ||
end |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
module ApplicationCable | ||
class Connection < ActionCable::Connection::Base | ||
end | ||
end |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
class ApplicationController < ActionController::API | ||
|
||
def build_overdue_array(rentals_array) | ||
overdues = [] | ||
|
||
rentals_array.each do |rental| | ||
rental_info = {} | ||
movie = Movie.find_by(id: rental.movie_id) | ||
rental_info[:title] = movie.title | ||
rental_info[:checkout_date] = pretty_date(rental.created_at.to_s) | ||
rental_info[:due_date] = rental.due_date | ||
|
||
overdues << rental_info | ||
end | ||
|
||
return overdues | ||
end | ||
|
||
def pretty_date(date) | ||
d = Date.parse(date) | ||
return d.strftime('%a %d %b %Y') | ||
end | ||
|
||
end |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
class CustomersController < ApplicationController | ||
def index | ||
customers = Customer.all | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Your customers don't have a count of the movies checked out! |
||
render json: customers, status: :ok | ||
end | ||
|
||
def overdue | ||
# overdue_rentals = Rental.where("movie_id = ? AND customer_id = ?", movie.id, customer.id) | ||
# theoretical: has_overdue? | ||
customers_with_overdue= Customer.all.select {|customer| customer.has_overdue?} | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. While this will work, it's usually better to let the database do a lot of the work, with some sort of The database is almost always faster about this. |
||
|
||
if customers_with_overdue.empty? | ||
return render json: { ok: true, message: "No customers with overdue items" }, status: :ok | ||
end | ||
|
||
overdue_customers_array = [] | ||
|
||
customers_with_overdue.each do |customer| | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This should really be in the model |
||
#helper method: Customer# find_overdue_rentals, which returns an array of overdues | ||
# build the hash | ||
overdue_customer_hash = {} | ||
|
||
overdue_customer_hash[:customer_id] = customer.id | ||
overdue_customer_hash[:customer_name] = customer.name | ||
overdue_customer_hash[:postal_code] = customer.postal_code | ||
|
||
overdue_rentals = customer.find_overdue_rentals | ||
|
||
overdue_customer_hash[:overdue_rentals] = build_overdue_array(overdue_rentals) | ||
|
||
overdue_customers_array << overdue_customer_hash | ||
end | ||
|
||
render json: overdue_customers_array.as_json, status: :ok | ||
|
||
end | ||
|
||
def query(sort: params[:sort], n: params[:n], p: params[:p]) | ||
# sort: params[:sort], n: params[:n], p: params[:p] | ||
|
||
|
||
# if sort = not recognise | ||
# return error | ||
# end | ||
|
||
case sort | ||
when nil | ||
# Customer.all | ||
when "name" | ||
# Customer.sort_by(:name) | ||
when "registered_at" | ||
# Customer.sort_by(:registered_at) | ||
when "postal_code" | ||
# Customer.sort_by(:postal_code) | ||
end | ||
|
||
|
||
end | ||
end |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why is this here? This looks like it should be in the model!
Come to think of it it looks like it is!