Updated to have comments

This commit is contained in:
mcmac 2018-02-22 16:00:39 +00:00
parent c2aab96494
commit 4992632a84
8 changed files with 177 additions and 167 deletions

228
.idea/workspace.xml generated
View file

@ -2,7 +2,14 @@
<project version="4">
<component name="ChangeListManager">
<list default="true" id="42443dfa-4405-4cad-b0d1-6c57eb86e644" name="Default" comment="">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
<change beforePath="$PROJECT_DIR$/app/controllers/v1/articles_controller.rb" afterPath="$PROJECT_DIR$/app/controllers/v1/articles_controller.rb" />
<change beforePath="$PROJECT_DIR$/app/controllers/v1/items_controller.rb" afterPath="" />
<change beforePath="$PROJECT_DIR$/app/controllers/v1/todos_controller.rb" afterPath="" />
<change beforePath="$PROJECT_DIR$/app/models/article.rb" afterPath="$PROJECT_DIR$/app/models/article.rb" />
<change beforePath="$PROJECT_DIR$/app/models/user.rb" afterPath="$PROJECT_DIR$/app/models/user.rb" />
<change beforePath="$PROJECT_DIR$/config/routes.rb" afterPath="$PROJECT_DIR$/config/routes.rb" />
<change beforePath="$PROJECT_DIR$/db/schema.rb" afterPath="$PROJECT_DIR$/db/schema.rb" />
</list>
<ignored path="$PROJECT_DIR$/.bundle/" />
<ignored path="$PROJECT_DIR$/components/" />
@ -33,9 +40,19 @@
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file leaf-file-name="articles_controller.rb" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/app/controllers/v1/articles_controller.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="306">
<caret line="17" column="18" lean-forward="true" selection-start-line="17" selection-start-column="18" selection-end-line="17" selection-end-column="18" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="routes.rb" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/config/routes.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="288">
<caret line="16" column="85" lean-forward="false" selection-start-line="16" selection-start-column="85" selection-end-line="16" selection-end-column="85" />
<caret line="16" column="0" lean-forward="false" selection-start-line="16" selection-start-column="0" selection-end-line="16" selection-end-column="0" />
<folding />
</state>
</provider>
@ -51,6 +68,66 @@
</provider>
</entry>
</file>
<file leaf-file-name="20180222154430_create_comments.rb" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/db/migrate/20180222154430_create_comments.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="72">
<caret line="4" column="46" lean-forward="false" selection-start-line="4" selection-start-column="46" selection-end-line="4" selection-end-column="46" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="comments_controller.rb" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/controllers/comments_controller.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="288">
<caret line="16" column="12" lean-forward="false" selection-start-line="16" selection-start-column="12" selection-end-line="16" selection-end-column="12" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="comment.rb" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/models/comment.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="72">
<caret line="4" column="0" lean-forward="false" selection-start-line="4" selection-start-column="0" selection-end-line="4" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="article.rb" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/models/article.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="36">
<caret line="2" column="20" lean-forward="false" selection-start-line="2" selection-start-column="20" selection-end-line="2" selection-end-column="20" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="user.rb" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/models/user.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="90">
<caret line="5" column="20" lean-forward="false" selection-start-line="5" selection-start-column="20" selection-end-line="5" selection-end-column="20" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="20180219100642_create_articles.rb" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/db/migrate/20180219100642_create_articles.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="90">
<caret line="5" column="43" lean-forward="false" selection-start-line="5" selection-start-column="24" selection-end-line="5" selection-end-column="43" />
<folding />
</state>
</provider>
</entry>
</file>
</leaf>
</component>
<component name="FindInProjectRecents">
@ -95,8 +172,6 @@
<option value="$PROJECT_DIR$/app/controllers/todos_controller.rb" />
<option value="$PROJECT_DIR$/spec/requests/items_spec.rb" />
<option value="$PROJECT_DIR$/db/migrate/20180219100239_create_articles.rb" />
<option value="$PROJECT_DIR$/app/models/article.rb" />
<option value="$PROJECT_DIR$/app/models/user.rb" />
<option value="$PROJECT_DIR$/app/controllers/users_controller.rb" />
<option value="$PROJECT_DIR$/app/controllers/application_controller.rb" />
<option value="$PROJECT_DIR$/app/controllers/authentication_controller.rb" />
@ -107,13 +182,17 @@
<option value="$PROJECT_DIR$/app/controllers/articles_controller.rb" />
<option value="$PROJECT_DIR$/app/controllers/v1/items_controller.rb" />
<option value="$PROJECT_DIR$/app/controllers/v1/todos_controller.rb" />
<option value="$PROJECT_DIR$/config/routes.rb" />
<option value="$PROJECT_DIR$/app/lib/api_version.rb" />
<option value="$PROJECT_DIR$/app/controllers/v2/todos_controller.rb" />
<option value="$PROJECT_DIR$/app/serializers/todo_serializer.rb" />
<option value="$PROJECT_DIR$/app/controllers/v2/articles_controller.rb" />
<option value="$PROJECT_DIR$/Gemfile" />
<option value="$PROJECT_DIR$/app/serializers/article_serializer.rb" />
<option value="$PROJECT_DIR$/config/routes.rb" />
<option value="$PROJECT_DIR$/db/migrate/20180222154430_create_comments.rb" />
<option value="$PROJECT_DIR$/app/models/comment.rb" />
<option value="$PROJECT_DIR$/app/models/article.rb" />
<option value="$PROJECT_DIR$/app/models/user.rb" />
<option value="$PROJECT_DIR$/app/controllers/v1/articles_controller.rb" />
</list>
</option>
@ -168,7 +247,7 @@
<item name="vereto-api" type="462c0819:PsiDirectoryNode" />
<item name="app" type="462c0819:PsiDirectoryNode" />
<item name="controllers" type="462c0819:PsiDirectoryNode" />
<item name="concerns" type="462c0819:PsiDirectoryNode" />
<item name="v1" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="vereto-api" type="b2602c69:ProjectViewProjectNode" />
@ -181,6 +260,12 @@
<item name="vereto-api" type="462c0819:PsiDirectoryNode" />
<item name="db" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="vereto-api" type="b2602c69:ProjectViewProjectNode" />
<item name="vereto-api" type="462c0819:PsiDirectoryNode" />
<item name="db" type="462c0819:PsiDirectoryNode" />
<item name="migrate" type="462c0819:PsiDirectoryNode" />
</path>
</expand>
<select />
</subPane>
@ -333,12 +418,12 @@
<workItem from="1519029876792" duration="13672000" />
<workItem from="1519112531617" duration="11606000" />
<workItem from="1519202717236" duration="9748000" />
<workItem from="1519290005411" duration="11256000" />
<workItem from="1519290005411" duration="14364000" />
</task>
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="62794000" />
<option name="totallyTimeSpent" value="65902000" />
</component>
<component name="ToolWindowManager">
<frame x="0" y="28" width="1920" height="1026" extended-state="6" />
@ -347,11 +432,11 @@
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.19497864" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Docker" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.37782562" sideWeight="0.29540598" order="7" side_tool="true" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.22820237" sideWeight="0.29540598" order="7" side_tool="true" content_ui="tabs" />
<window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32959402" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.37782562" sideWeight="0.704594" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.22820237" sideWeight="0.704594" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
@ -377,27 +462,6 @@
<watches-manager />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/spec/support/request_spec_helper.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="108">
<caret line="6" column="3" lean-forward="false" selection-start-line="6" selection-start-column="3" selection-end-line="6" selection-end-column="3" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/spec/models/user_spec.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="180">
<caret line="10" column="54" lean-forward="false" selection-start-line="10" selection-start-column="54" selection-end-line="10" selection-end-column="54" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/spec/factories/items.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="126">
<caret line="7" column="3" lean-forward="false" selection-start-line="7" selection-start-column="3" selection-end-line="7" selection-end-column="3" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/spec/factories/todos.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="108">
@ -482,13 +546,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/db/migrate/20180216131546_create_users.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/db/migrate/20180216101247_create_items.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
@ -505,13 +562,6 @@
</entry>
<entry file="file://$PROJECT_DIR$/db/migrate/20180219100239_create_articles.rb" />
<entry file="file://$PROJECT_DIR$/db/migrate/20180219100444_create_articles.rb" />
<entry file="file://$PROJECT_DIR$/db/migrate/20180219100642_create_articles.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="90">
<caret line="5" column="22" lean-forward="true" selection-start-line="5" selection-start-column="22" selection-end-line="5" selection-end-column="22" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/models/item.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="54">
@ -534,13 +584,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/models/user.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="72">
<caret line="4" column="18" lean-forward="false" selection-start-line="4" selection-start-column="18" selection-end-line="4" selection-end-column="18" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/auth/authorize_api_request.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="594">
@ -604,13 +647,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/config/routes.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="162">
<caret line="9" column="22" lean-forward="false" selection-start-line="9" selection-start-column="22" selection-end-line="9" selection-end-column="22" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/controllers/v1/items_controller.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="162">
@ -677,14 +713,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/models/article.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="18">
<caret line="1" column="17" lean-forward="false" selection-start-line="1" selection-start-column="17" selection-end-line="1" selection-end-column="17" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Gemfile">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="240">
@ -709,10 +737,74 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/controllers/v1/articles_controller.rb">
<entry file="file://$PROJECT_DIR$/config/routes.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="288">
<caret line="16" column="85" lean-forward="false" selection-start-line="16" selection-start-column="85" selection-end-line="16" selection-end-column="85" />
<caret line="16" column="0" lean-forward="false" selection-start-line="16" selection-start-column="0" selection-end-line="16" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/db/migrate/20180216131546_create_users.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/db/migrate/20180219100642_create_articles.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="90">
<caret line="5" column="43" lean-forward="false" selection-start-line="5" selection-start-column="24" selection-end-line="5" selection-end-column="43" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/models/user.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="90">
<caret line="5" column="20" lean-forward="false" selection-start-line="5" selection-start-column="20" selection-end-line="5" selection-end-column="20" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/models/article.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="36">
<caret line="2" column="20" lean-forward="false" selection-start-line="2" selection-start-column="20" selection-end-line="2" selection-end-column="20" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/db/migrate/20180222154430_create_comments.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="72">
<caret line="4" column="46" lean-forward="false" selection-start-line="4" selection-start-column="46" selection-end-line="4" selection-end-column="46" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/models/comment.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="72">
<caret line="4" column="0" lean-forward="false" selection-start-line="4" selection-start-column="0" selection-end-line="4" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/controllers/comments_controller.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="288">
<caret line="16" column="12" lean-forward="false" selection-start-line="16" selection-start-column="12" selection-end-line="16" selection-end-column="12" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/controllers/v1/articles_controller.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="306">
<caret line="17" column="18" lean-forward="true" selection-start-line="17" selection-start-column="18" selection-end-line="17" selection-end-column="18" />
<folding />
</state>
</provider>

View file

@ -9,14 +9,13 @@ class V1::ArticlesController < ApplicationController
@article = Article.all.order(created_at: :desc).paginate(page: current_page, per_page: 10)
total_pages = (@article.count / posts_per_page).ceil
pagination = {
"current_page": current_page.to_i == 0 ? 1 : current_page,
"last_page": total_pages,
"next_page": "#{current_page.to_i < total_pages.to_i ? (current_page.to_i+1) : (current_page)}",
"prev_page": "#{current_page.to_i > 1 ? (current_page.to_i-1) : (current_page)}"
}
json_response({articles: @article.as_json(include: [:user]), pagination: pagination})
json_response({articles: @article.as_json(include: [:user, :comments]), pagination: pagination})
end
# POST /articles

View file

@ -1,48 +0,0 @@
module V1
class ItemsController < ApplicationController
before_action :set_todo
before_action :set_todo_item, only: [:show, :update, :destroy]
# GET /todos/:todo_id/items
def index
json_response(@todo.items)
end
# GET /todos/:todo_id/items/:id
def show
json_response(@item)
end
# POST /todos/:todo_id/items
def create
@todo.items.create!(item_params)
json_response(@todo, :created)
end
# PUT /todos/:todo_id/items/:d
def update
@item.update(item_params)
head :no_content
end
# DELETE /todos/:todo_id/items/:id
def destroy
@item.destroy
head :no_content
end
private
def item_params
params.permit(:name, :done)
end
def set_todo
@todo = Todo.find(params[:todo_id])
end
def set_todo_item
@item = @todo.items.find_by!(id: params[:id]) if @todo
end
end
end

View file

@ -1,45 +0,0 @@
module V1
class TodosController < ApplicationController
before_action :set_todo, only: [:show, :update, :destroy]
# GET /todos
def index
@todos = current_user.todos
json_response(@todos)
end
# POST /todos
def create
@todo = current_user.todos.create!(todo_params)
json_response(@todo, :created)
end
# GET /todos/:id
def show
json_response(@todo)
end
# PUT /todos/:id
def update
@todo.update(todo_params)
head :no_content
end
# DELETE /todos/:id
def destroy
@todo.destroy
head :no_content
end
private
def todo_params
# whitelist params
params.permit(:title)
end
def set_todo
@todo = Todo.find(params[:id])
end
end
end

View file

@ -1,5 +1,6 @@
class Article < ApplicationRecord
belongs_to :user
has_many :comments
validates_presence_of :title, :post
end

View file

@ -3,6 +3,7 @@ class User < ApplicationRecord
has_many :todos, foreign_key: :created_by
has_many :articles
has_many :comments
validates_presence_of :name, :email, :password_digest
validates_uniqueness_of :email

View file

@ -1,4 +1,5 @@
Rails.application.routes.draw do
resources :comments
# For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
scope module: :v2, constraints: ApiVersion.new('v2') do
@ -6,9 +7,6 @@ Rails.application.routes.draw do
end
scope module: :v1, constraints: ApiVersion.new('v1', true) do
resources :todos do
resources :items
end
resources :articles
end

View file

@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema.define(version: 20180219100642) do
ActiveRecord::Schema.define(version: 20180222154430) do
create_table "articles", force: :cascade, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8" do |t|
t.string "title"
@ -21,6 +21,16 @@ ActiveRecord::Schema.define(version: 20180219100642) do
t.index ["user_id"], name: "index_articles_on_user_id"
end
create_table "comments", force: :cascade, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8" do |t|
t.text "content"
t.bigint "article_id"
t.bigint "user_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["article_id"], name: "index_comments_on_article_id"
t.index ["user_id"], name: "index_comments_on_user_id"
end
create_table "items", force: :cascade, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8" do |t|
t.string "name"
t.boolean "done"
@ -46,5 +56,7 @@ ActiveRecord::Schema.define(version: 20180219100642) do
end
add_foreign_key "articles", "users"
add_foreign_key "comments", "articles"
add_foreign_key "comments", "users"
add_foreign_key "items", "todos"
end