Open
Conversation
initial commit, generated models and controllers, routes
Created migrations for video and customer tables to change datatypes
Relationships and validations
changed and fixed schema columns in order to seed data
modified returned json data for customer
Get video show
Post video create
changed the error values in the show method
Rental controller
Removed some validations for video
CheezItMan
reviewed
Dec 9, 2020
CheezItMan
left a comment
There was a problem hiding this comment.
Video Store API
Major Learning Goals/Code Review
| Criteria | yes/no, and optionally any details/lines of code to reference |
|---|---|
| Practices git with at least 10 small commits and meaningful commit messages | ✔️ |
| Understands the importance of how APIs handle invalid/erroneous data in their reflection questions | ✔️ |
| Practices Rails best practices and well-designed separation, and encapsulates business logic around check-out and check-in in models | |
| Uses controller tests to ensure quality code for every route, and checks for response status and content, with positive cases and negative cases | |
Uses controller tests to ensure correctness for check out and check in requirement, and that checked out counts and inventories appropriately change |
Functional Requirements
| Functional Requirement | yes/no |
|---|---|
| All provided smoke tests for Wave 1 pass | ✔️, Except for the error reporting because you're missing validations. |
| All provided smoke tests for Wave 2 pass |
Overall Feedback
| Overall Feedback | Criteria | yes/no |
|---|---|---|
| Green (Meets/Exceeds Standards) | 3+ in Code Review && 2 in Functional Requirements | 💚 |
Code Style Bonus Awards
Was the code particularly impressive in code style for any of these reasons (or more...?)
| Quality | Yes? |
|---|---|
| Perfect Indentation | ✅ |
| Descriptive/Readable | ✅ |
| Logical/Organized | ✅ |
Summary
This is probably a yellowish green submission due to the failing tests for creating a video. Take a look at my comments, but the main issues are missing validations, and limited tests for the additional parts you wrote.
That said you demonstrated you know how to recieve an API request and respond with JSON and the proper status code.
| resources :customers, only: [:index, :show] | ||
| resources :videos, only: [:index, :show, :create] | ||
| # resources :rentals, only: [:index, :show] | ||
| post '/rentals/checkout', to: "rentals#checkout", as: 'checkout' |
Comment on lines
+2
to
+3
| resources :customers, only: [:index, :show] | ||
| resources :videos, only: [:index, :show, :create] |
| @@ -0,0 +1,4 @@ | |||
| class Customer < ApplicationRecord | |||
Comment on lines
+6
to
+9
| def calculate_due_date(checkout_date, days_due) | ||
| date = checkout_date + (60 * 60 * 24 * days_due) | ||
| return date.strftime('%Y-%m-%d') | ||
| end |
| has_many :rentals | ||
| has_many :customers, through: :rentals | ||
|
|
||
| validates :title, presence: true |
| @@ -0,0 +1,7 @@ | |||
| require "test_helper" | |||
|
|
|||
| describe Rental do | |||
| @@ -0,0 +1,7 @@ | |||
| require "test_helper" | |||
|
|
|||
| describe Video do | |||
Comment on lines
+25
to
+31
| it "decrease the video's available_inventory by one" do | ||
|
|
||
| end | ||
|
|
||
| it 'should create a due date, 7 days from checkout date' do | ||
|
|
||
| end |
Comment on lines
+71
to
+73
| it 'return back detailed errors and a status 400: Bad Request if the video does not have any available inventory before check out ' do | ||
|
|
||
| end |
There was a problem hiding this comment.
Good that you knew you needed this test.
| end | ||
| end | ||
|
|
||
| describe "rental check-in" do |
There was a problem hiding this comment.
These would be the things you need to test.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Assignment Submission: Video Store API
Congratulations! You're submitting your assignment. Please reflect on the assignment with these questions.
If you didn't get to the functionality the question is asking about, reply with what you would have done if you had completed it.
Reflection
/customers&/videosendpoints? What does the time complexity depend on? Explain your reasoning.POST /rentals/check-inendpoint? What does the time complexity depend on? Explain your reasoning.