Added article serializer

This commit is contained in:
mcmac 2018-02-21 13:40:31 +00:00
parent e85af664ce
commit beccc5dc01
7 changed files with 115 additions and 145 deletions

236
.idea/workspace.xml generated
View file

@ -2,11 +2,10 @@
<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/articles_controller.rb" afterPath="$PROJECT_DIR$/app/controllers/v1/articles_controller.rb" />
<change beforePath="$PROJECT_DIR$/app/controllers/items_controller.rb" afterPath="" />
<change beforePath="$PROJECT_DIR$/app/controllers/todos_controller.rb" afterPath="" />
<change beforePath="$PROJECT_DIR$/config/routes.rb" afterPath="$PROJECT_DIR$/config/routes.rb" />
<change beforePath="$PROJECT_DIR$/Gemfile" afterPath="$PROJECT_DIR$/Gemfile" />
<change beforePath="$PROJECT_DIR$/Gemfile.lock" afterPath="$PROJECT_DIR$/Gemfile.lock" />
<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/v2/articles_controller.rb" afterPath="$PROJECT_DIR$/app/controllers/v2/articles_controller.rb" />
</list>
<ignored path="$PROJECT_DIR$/.bundle/" />
<ignored path="$PROJECT_DIR$/components/" />
@ -35,21 +34,11 @@
</component>
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file leaf-file-name="users_controller.rb" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/controllers/users_controller.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="24" column="36" lean-forward="false" selection-start-line="21" selection-start-column="15" selection-end-line="24" selection-end-column="36" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="articles_controller.rb" pinned="false" current-in-tab="false">
<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="288">
<caret line="16" column="21" lean-forward="false" selection-start-line="16" selection-start-column="21" selection-end-line="16" selection-end-column="21" />
<state relative-caret-position="108">
<caret line="6" column="34" lean-forward="false" selection-start-line="6" selection-start-column="34" selection-end-line="6" selection-end-column="34" />
<folding />
</state>
</provider>
@ -59,17 +48,27 @@
<entry file="file://$PROJECT_DIR$/app/controllers/v2/articles_controller.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="36">
<caret line="2" column="54" lean-forward="false" selection-start-line="2" selection-start-column="54" selection-end-line="2" selection-end-column="54" />
<caret line="2" column="43" lean-forward="false" selection-start-line="2" selection-start-column="43" selection-end-line="2" selection-end-column="43" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="api_version.rb" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/app/lib/api_version.rb">
<file leaf-file-name="Gemfile" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/Gemfile">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="324">
<caret line="18" column="118" lean-forward="false" selection-start-line="18" selection-start-column="118" selection-end-line="18" selection-end-column="118" />
<state relative-caret-position="414">
<caret line="23" column="0" lean-forward="false" selection-start-line="23" selection-start-column="0" selection-end-line="23" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="article_serializer.rb" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/serializers/article_serializer.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="18">
<caret line="1" column="57" lean-forward="false" selection-start-line="1" selection-start-column="57" selection-end-line="1" selection-end-column="57" />
<folding />
</state>
</provider>
@ -85,56 +84,6 @@
</provider>
</entry>
</file>
<file leaf-file-name="todos_controller.rb" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/controllers/v1/todos_controller.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="396">
<caret line="22" column="14" lean-forward="false" selection-start-line="22" selection-start-column="14" selection-end-line="22" selection-end-column="14" />
<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="54">
<caret line="3" column="54" lean-forward="false" selection-start-line="3" selection-start-column="54" selection-end-line="3" selection-end-column="54" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="application.rb" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/config/application.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="204">
<caret line="30" column="82" lean-forward="false" selection-start-line="30" selection-start-column="82" selection-end-line="30" selection-end-column="82" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="seeds.rb" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/db/seeds.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="414">
<caret line="23" column="0" lean-forward="false" selection-start-line="23" selection-start-column="0" selection-end-line="23" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="database.yml" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/config/database.yml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="378">
<caret line="21" column="65" lean-forward="false" selection-start-line="21" selection-start-column="65" selection-end-line="21" selection-end-column="65" />
<folding />
</state>
</provider>
</entry>
</file>
</leaf>
</component>
<component name="FindInProjectRecents">
@ -185,17 +134,20 @@
<option value="$PROJECT_DIR$/app/controllers/application_controller.rb" />
<option value="$PROJECT_DIR$/app/controllers/authentication_controller.rb" />
<option value="$PROJECT_DIR$/README.md" />
<option value="$PROJECT_DIR$/Gemfile" />
<option value="$PROJECT_DIR$/config/database.yml" />
<option value="$PROJECT_DIR$/db/seeds.rb" />
<option value="$PROJECT_DIR$/config/application.rb" />
<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$/app/controllers/v1/articles_controller.rb" />
<option value="$PROJECT_DIR$/config/routes.rb" />
<option value="$PROJECT_DIR$/app/controllers/v2/articles_controller.rb" />
<option value="$PROJECT_DIR$/app/lib/api_version.rb" />
<option value="$PROJECT_DIR$/app/controllers/v2/todos_controller.rb" />
<option value="$PROJECT_DIR$/Gemfile" />
<option value="$PROJECT_DIR$/app/serializers/todo_serializer.rb" />
<option value="$PROJECT_DIR$/app/controllers/v2/articles_controller.rb" />
<option value="$PROJECT_DIR$/app/serializers/article_serializer.rb" />
<option value="$PROJECT_DIR$/app/controllers/v1/articles_controller.rb" />
</list>
</option>
</component>
@ -261,12 +213,7 @@
<item name="vereto-api" type="b2602c69:ProjectViewProjectNode" />
<item name="vereto-api" type="462c0819:PsiDirectoryNode" />
<item name="app" type="462c0819:PsiDirectoryNode" />
<item name="lib" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="vereto-api" type="b2602c69:ProjectViewProjectNode" />
<item name="vereto-api" type="462c0819:PsiDirectoryNode" />
<item name="config" type="462c0819:PsiDirectoryNode" />
<item name="serializers" type="462c0819:PsiDirectoryNode" />
</path>
</expand>
<select />
@ -419,12 +366,12 @@
<workItem from="1518772064427" duration="15673000" />
<workItem from="1519029876792" duration="13672000" />
<workItem from="1519112531617" duration="11606000" />
<workItem from="1519202717236" duration="7085000" />
<workItem from="1519202717236" duration="9748000" />
</task>
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="48066000" />
<option name="totallyTimeSpent" value="50729000" />
</component>
<component name="ToolWindowManager">
<frame x="0" y="28" width="1920" height="1026" extended-state="6" />
@ -461,27 +408,6 @@
<watches-manager />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/app/channels/application_cable/channel.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$/spec/models/todo_spec.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="180">
<caret line="10" column="0" lean-forward="false" selection-start-line="10" selection-start-column="0" selection-end-line="10" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/.gitignore">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="360">
<caret line="20" column="0" lean-forward="false" selection-start-line="20" selection-start-column="0" selection-end-line="20" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/spec/support/request_spec_helper.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="108">
@ -712,14 +638,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Gemfile">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="540">
<caret line="39" column="0" lean-forward="false" selection-start-line="39" selection-start-column="0" selection-end-line="39" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/controllers/users_controller.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
@ -768,14 +686,6 @@
</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">
<caret line="9" column="0" lean-forward="false" selection-start-line="9" selection-start-column="0" selection-end-line="9" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/controllers/v1/todos_controller.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="396">
@ -784,22 +694,6 @@
</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="288">
<caret line="16" column="21" lean-forward="false" selection-start-line="16" selection-start-column="21" selection-end-line="16" selection-end-column="21" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/config/routes.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="54">
<caret line="3" column="54" lean-forward="false" selection-start-line="3" selection-start-column="54" selection-end-line="3" selection-end-column="54" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/config/application.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="204">
@ -808,18 +702,74 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/controllers/v2/articles_controller.rb">
<entry file="file://$PROJECT_DIR$/app/lib/api_version.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="36">
<caret line="2" column="54" lean-forward="false" selection-start-line="2" selection-start-column="54" selection-end-line="2" selection-end-column="54" />
<state relative-caret-position="342">
<caret line="19" column="5" lean-forward="false" selection-start-line="19" selection-start-column="5" selection-end-line="19" selection-end-column="5" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/lib/api_version.rb">
<entry file="file://$PROJECT_DIR$/config/routes.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="324">
<caret line="18" column="118" lean-forward="false" selection-start-line="18" selection-start-column="118" selection-end-line="18" selection-end-column="118" />
<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" />
<folding />
</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">
<caret line="9" column="0" lean-forward="false" selection-start-line="9" selection-start-column="0" selection-end-line="9" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/controllers/v2/todos_controller.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="36">
<caret line="2" column="4" lean-forward="false" selection-start-line="2" selection-start-column="4" selection-end-line="2" selection-end-column="4" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Gemfile">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="414">
<caret line="23" column="0" lean-forward="false" selection-start-line="23" selection-start-column="0" selection-end-line="23" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/serializers/todo_serializer.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="18">
<caret line="1" column="16" lean-forward="false" selection-start-line="1" selection-start-column="16" selection-end-line="1" selection-end-column="16" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/controllers/v2/articles_controller.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="36">
<caret line="2" column="43" lean-forward="false" selection-start-line="2" selection-start-column="43" selection-end-line="2" selection-end-column="43" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/serializers/article_serializer.rb">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="18">
<caret line="1" column="57" lean-forward="false" selection-start-line="1" selection-start-column="57" selection-end-line="1" selection-end-column="57" />
<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="108">
<caret line="6" column="34" lean-forward="false" selection-start-line="6" selection-start-column="34" selection-end-line="6" selection-end-column="34" />
<folding />
</state>
</provider>

View file

@ -20,6 +20,7 @@ gem 'puma', '~> 3.7'
gem 'bcrypt', '~> 3.1.7'
gem 'jwt'
gem 'rack-cors', :require => 'rack/cors'
gem 'active_model_serializers', '~> 0.10.0'
# Use Capistrano for deployment
# gem 'capistrano-rails', group: :development

View file

@ -24,6 +24,11 @@ GEM
erubi (~> 1.4)
rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.0, >= 1.0.3)
active_model_serializers (0.10.7)
actionpack (>= 4.1, < 6)
activemodel (>= 4.1, < 6)
case_transform (>= 0.2)
jsonapi-renderer (>= 0.1.1.beta1, < 0.3)
activejob (5.1.5)
activesupport (= 5.1.5)
globalid (>= 0.3.6)
@ -42,6 +47,8 @@ GEM
bcrypt (3.1.11)
builder (3.2.3)
byebug (10.0.0)
case_transform (0.2)
activesupport
concurrent-ruby (1.0.5)
crass (1.0.3)
database_cleaner (1.6.2)
@ -59,6 +66,7 @@ GEM
activesupport (>= 4.2.0)
i18n (0.9.5)
concurrent-ruby (~> 1.0)
jsonapi-renderer (0.2.0)
jwt (2.1.0)
listen (3.1.5)
rb-fsevent (~> 0.9, >= 0.9.4)
@ -153,6 +161,7 @@ PLATFORMS
ruby
DEPENDENCIES
active_model_serializers (~> 0.10.0)
bcrypt (~> 3.1.7)
byebug
database_cleaner

View file

@ -4,7 +4,7 @@ class V1::ArticlesController < ApplicationController
# GET /articles
def index
@article = Article.order(:created_at).reverse.to_json(include: :user)
@article = Article.all.reverse
json_response(@article)
end

View file

@ -1,5 +1,5 @@
class V2::ArticlesController < ApplicationController
def index
json_response({message: 'Version 2 not implemented'})
json_response(message: 'Not implmeneted')
end
end

View file

@ -0,0 +1,5 @@
class ArticleSerializer < ActiveModel::Serializer
attributes :id, :title, :post, :created_at, :updated_at
belongs_to :user
end

View file

@ -0,0 +1,5 @@
require 'rails_helper'
RSpec.describe V2::TodosController, type: :controller do
end