site_blog 0.10.0 → 0.12.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/controllers/site_blog/articles_controller.rb +12 -39
- data/app/controllers/site_blog/tags_controller.rb +3 -40
- data/app/models/site_blog/article.rb +3 -3
- data/app/views/site_blog/articles/index.json.jbuilder +15 -0
- data/app/views/site_blog/articles/main.json.jbuilder +16 -0
- data/app/views/site_blog/articles/show.json.jbuilder +16 -0
- data/lib/site_blog/version.rb +1 -1
- metadata +19 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '04381e66937aae5aeacf3feef9ab99fb9dfb56e639e84fcd60dc1039b7830a9b'
|
4
|
+
data.tar.gz: bfe3e36c1619ab08257a08603c668269a8024b6833947b09b4b3833f531f739e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 458120de3332498bfdf5fd61bc48cf839d069bf0e3a7ff356c31900022883f7a3a7e23e9ff056964946191a8d6d69577dd118a8846a3791e86b531d3677d25da
|
7
|
+
data.tar.gz: fce6e95dbd5f01060908e17daa4ec0921fac521c8e69c5a3c71eee9f31eb3b962955f7880856e353c9ae3717e39f517fd4084a2ba624782f66a7536d9b323883
|
@@ -1,58 +1,31 @@
|
|
1
1
|
module SiteBlog
|
2
2
|
class ArticlesController < ApplicationController
|
3
|
-
before_action :
|
3
|
+
before_action :set_host, only: %i[ index show main ]
|
4
4
|
|
5
5
|
# GET /articles
|
6
6
|
def index
|
7
|
-
|
7
|
+
@data = Article.filters(params)
|
8
|
+
render formats: :json
|
8
9
|
end
|
9
10
|
|
11
|
+
# GET /articles/main
|
10
12
|
def main
|
11
|
-
|
13
|
+
@article = Article.main
|
14
|
+
render formats: :json
|
12
15
|
end
|
13
16
|
|
14
|
-
# GET /articles
|
17
|
+
# GET /articles/:slug
|
15
18
|
def show
|
19
|
+
@article = Article.find_by(slug: params[:id])
|
16
20
|
@article.increment!(:view_count)
|
17
|
-
render
|
18
|
-
end
|
19
|
-
|
20
|
-
# POST /articles
|
21
|
-
def create
|
22
|
-
article = Article.new(article_params)
|
23
|
-
|
24
|
-
if article.save
|
25
|
-
render json: article, status: :created
|
26
|
-
else
|
27
|
-
render json: article.errors, status: :unprocessable_entity
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
# PATCH/PUT /articles/1
|
32
|
-
def update
|
33
|
-
if @article.update(article_params)
|
34
|
-
render json: @article
|
35
|
-
else
|
36
|
-
render json: @article.errors, status: :unprocessable_entity
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
# DELETE /articles/1
|
41
|
-
def destroy
|
42
|
-
@article.destroy
|
43
|
-
render json: { success: true }
|
21
|
+
render formats: :json
|
44
22
|
end
|
45
23
|
|
46
24
|
private
|
47
25
|
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
end
|
26
|
+
def set_host
|
27
|
+
@host = !Rails.env.production? ? "https://#{request.host}" : ''
|
28
|
+
end
|
52
29
|
|
53
|
-
# Only allow a list of trusted parameters through.
|
54
|
-
def article_params
|
55
|
-
params.require(:article).permit(:title, :description, :image, :tag_id, :archived, :active)
|
56
|
-
end
|
57
30
|
end
|
58
31
|
end
|
@@ -1,53 +1,16 @@
|
|
1
1
|
module SiteBlog
|
2
2
|
class TagsController < ApplicationController
|
3
|
-
before_action :set_tag, only: %i[ show update destroy ]
|
4
3
|
|
5
4
|
# GET /tags
|
6
5
|
def index
|
7
|
-
render json: Tag.archived(false)
|
6
|
+
render json: Tag.archived(false).as_json(except: [:archived])
|
8
7
|
end
|
9
8
|
|
10
9
|
# GET /tags/1
|
11
10
|
def show
|
12
|
-
|
11
|
+
@tag = Tag.find(params[:id])
|
12
|
+
render json: @tag.as_json(except: [:archived])
|
13
13
|
end
|
14
14
|
|
15
|
-
# POST /tags
|
16
|
-
def create
|
17
|
-
@tag = Tag.new(tag_params)
|
18
|
-
|
19
|
-
if @tag.save
|
20
|
-
render json: @tag, status: :created
|
21
|
-
else
|
22
|
-
render json: @tag.errors, status: :unprocessable_entity
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
# PATCH/PUT /tags/1
|
27
|
-
def update
|
28
|
-
if @tag.update(tag_params)
|
29
|
-
render json: @tag
|
30
|
-
else
|
31
|
-
render json: @tag.errors, status: :unprocessable_entity
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
# DELETE /tags/1
|
36
|
-
def destroy
|
37
|
-
@tag.destroy
|
38
|
-
render json: { success: true }
|
39
|
-
end
|
40
|
-
|
41
|
-
private
|
42
|
-
|
43
|
-
# Use callbacks to share common setup or constraints between actions.
|
44
|
-
def set_tag
|
45
|
-
@tag = Tag.find(params[:id])
|
46
|
-
end
|
47
|
-
|
48
|
-
# Only allow a list of trusted parameters through.
|
49
|
-
def tag_params
|
50
|
-
params.require(:tag).permit(:slug, :archived)
|
51
|
-
end
|
52
15
|
end
|
53
16
|
end
|
@@ -33,14 +33,14 @@ module SiteBlog
|
|
33
33
|
data = archived(false)
|
34
34
|
data = data.joins(:tags).where(tags: { id: params[:tag_id] }) if params[:tag_id].present?
|
35
35
|
data = data.search(params[:query]) if params[:query].present?
|
36
|
-
count = data.
|
36
|
+
count = data.count
|
37
37
|
data = data.order('created_at DESC')
|
38
|
-
data = data.limit(params[:limit]) if params[:limit]
|
39
38
|
data = data.page(params[:page]).per(20)
|
39
|
+
data = data.limit(params[:limit]) if params[:limit]
|
40
40
|
|
41
41
|
{
|
42
42
|
total_count: count,
|
43
|
-
|
43
|
+
articles: data
|
44
44
|
}
|
45
45
|
}
|
46
46
|
|
@@ -0,0 +1,15 @@
|
|
1
|
+
json.total_count @data[:total_count]
|
2
|
+
json.data do
|
3
|
+
json.array! @data[:articles] do |article|
|
4
|
+
json.id article.id
|
5
|
+
json.title article.title
|
6
|
+
json.slug article.slug
|
7
|
+
json.html_description article.html_description
|
8
|
+
json.view_count article.view_count
|
9
|
+
json.main article.main
|
10
|
+
json.orig_image_url @host + article.image.url
|
11
|
+
json.thumb_image_url @host + article.image.thumb.url
|
12
|
+
json.(article, :created_at, :updated_at)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
@@ -0,0 +1,16 @@
|
|
1
|
+
json.id @article.id
|
2
|
+
json.title @article.title
|
3
|
+
json.slug @article.slug
|
4
|
+
json.html_description @article.html_description
|
5
|
+
json.view_count @article.view_count
|
6
|
+
json.main @article.main
|
7
|
+
json.orig_image_url @host + @article.image.url
|
8
|
+
json.thumb_image_url @host + @article.image.thumb.url
|
9
|
+
json.tags do
|
10
|
+
json.array! @article.tags do |tag|
|
11
|
+
json.id tag.id
|
12
|
+
json.slug tag.slug
|
13
|
+
end
|
14
|
+
end
|
15
|
+
json.(@article, :created_at, :updated_at)
|
16
|
+
|
@@ -0,0 +1,16 @@
|
|
1
|
+
json.id @article.id
|
2
|
+
json.title @article.title
|
3
|
+
json.slug @article.slug
|
4
|
+
json.html_description @article.html_description
|
5
|
+
json.view_count @article.view_count
|
6
|
+
json.main @article.main
|
7
|
+
json.orig_image_url @host + @article.image.url
|
8
|
+
json.thumb_image_url @host + @article.image.thumb.url
|
9
|
+
json.tags do
|
10
|
+
json.array! @article.tags do |tag|
|
11
|
+
json.id tag.id
|
12
|
+
json.slug tag.slug
|
13
|
+
end
|
14
|
+
end
|
15
|
+
json.(@article, :created_at, :updated_at)
|
16
|
+
|
data/lib/site_blog/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: site_blog
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.12.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eldar
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-02
|
11
|
+
date: 2023-03-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -94,6 +94,20 @@ dependencies:
|
|
94
94
|
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: jbuilder
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
97
111
|
description: Description of AppComponent
|
98
112
|
email:
|
99
113
|
- eldarweb@mail.ru
|
@@ -118,6 +132,9 @@ files:
|
|
118
132
|
- app/models/site_blog/tagging.rb
|
119
133
|
- app/uploaders/site_blog/image_uploader.rb
|
120
134
|
- app/views/layouts/blog/application.html.erb
|
135
|
+
- app/views/site_blog/articles/index.json.jbuilder
|
136
|
+
- app/views/site_blog/articles/main.json.jbuilder
|
137
|
+
- app/views/site_blog/articles/show.json.jbuilder
|
121
138
|
- config/routes.rb
|
122
139
|
- db/migrate/20230201140930_add_article_and_tag.rb
|
123
140
|
- lib/site_blog.rb
|