chore: Limit the number of articles retrieved by widget (#11095)
The UI displays only six articles, and this update introduces a per_page parameter to control the number of articles returned per API call. The value is capped between 1 and 100, with a default fallback if a lower number is set. This change is necessary due to high website traffic, where excessive payloads are returned without adding value. **Changes:** - Add index to status, account_id, portal_id, views. - Add per_page param in the API. - Update the code in the frontend to fetch only 6
This commit is contained in:
8
db/migrate/20250315202035_add_index_to_articles.rb
Normal file
8
db/migrate/20250315202035_add_index_to_articles.rb
Normal file
@@ -0,0 +1,8 @@
|
||||
class AddIndexToArticles < ActiveRecord::Migration[7.0]
|
||||
def change
|
||||
add_index :articles, :status unless index_exists?(:articles, :status)
|
||||
add_index :articles, :views unless index_exists?(:articles, :views)
|
||||
add_index :articles, :portal_id unless index_exists?(:articles, :portal_id)
|
||||
add_index :articles, :account_id unless index_exists?(:articles, :account_id)
|
||||
end
|
||||
end
|
||||
@@ -10,7 +10,7 @@
|
||||
#
|
||||
# It's strongly recommended that you check this file into your version control system.
|
||||
|
||||
ActiveRecord::Schema[7.0].define(version: 2025_02_28_185548) do
|
||||
ActiveRecord::Schema[7.0].define(version: 2025_03_15_202035) do
|
||||
# These extensions should be enabled to support this database
|
||||
enable_extension "pg_stat_statements"
|
||||
enable_extension "pg_trgm"
|
||||
@@ -159,9 +159,13 @@ ActiveRecord::Schema[7.0].define(version: 2025_02_28_185548) do
|
||||
t.string "slug", null: false
|
||||
t.integer "position"
|
||||
t.string "locale", default: "en", null: false
|
||||
t.index ["account_id"], name: "index_articles_on_account_id"
|
||||
t.index ["associated_article_id"], name: "index_articles_on_associated_article_id"
|
||||
t.index ["author_id"], name: "index_articles_on_author_id"
|
||||
t.index ["portal_id"], name: "index_articles_on_portal_id"
|
||||
t.index ["slug"], name: "index_articles_on_slug", unique: true
|
||||
t.index ["status"], name: "index_articles_on_status"
|
||||
t.index ["views"], name: "index_articles_on_views"
|
||||
end
|
||||
|
||||
create_table "attachments", id: :serial, force: :cascade do |t|
|
||||
|
||||
Reference in New Issue
Block a user