site_blog 0.10.0 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cab7ac4ecc8185d4c4767188b5ea55b94a80670e2e8b3b7a82eede29cf7e35c0
4
- data.tar.gz: 6978b193b7ec06015ce25b6eb1e830004bf5cc8afba4b3c89e4095e2f6d366c1
3
+ metadata.gz: '04381e66937aae5aeacf3feef9ab99fb9dfb56e639e84fcd60dc1039b7830a9b'
4
+ data.tar.gz: bfe3e36c1619ab08257a08603c668269a8024b6833947b09b4b3833f531f739e
5
5
  SHA512:
6
- metadata.gz: a3aa2e2048e05a1ec032d540931686a824a971274c42353be6c2eaf67bc3bbae7394c069bcc3ae8b508d1031c1ea8c1fccf2c6c55694dfcbb0d5a460da7bddde
7
- data.tar.gz: 545a4d6b16c671674e1c8b4a808a4434f52fe10a84f325629b1294babb2a53cb5337c63fed6415dba94857056d03b664c5edb42d802c114e133a7750c6756934
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 :set_article, only: %i[ show update destroy ]
3
+ before_action :set_host, only: %i[ index show main ]
4
4
 
5
5
  # GET /articles
6
6
  def index
7
- render json: Article.filters(params)
7
+ @data = Article.filters(params)
8
+ render formats: :json
8
9
  end
9
10
 
11
+ # GET /articles/main
10
12
  def main
11
- render json: Article.main
13
+ @article = Article.main
14
+ render formats: :json
12
15
  end
13
16
 
14
- # GET /articles/1
17
+ # GET /articles/:slug
15
18
  def show
19
+ @article = Article.find_by(slug: params[:id])
16
20
  @article.increment!(:view_count)
17
- render json: @article
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
- # Use callbacks to share common setup or constraints between actions.
49
- def set_article
50
- @article = Article.find_by(params[:slug])
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
- render json: @tag
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.length
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
- data: data
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
+
@@ -1,3 +1,3 @@
1
1
  module SiteBlog
2
- VERSION = "0.10.0"
2
+ VERSION = "0.12.0"
3
3
  end
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.10.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-28 00:00:00.000000000 Z
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