feat: APIs for Articles (#4777)

Fixes: #4802
This commit is contained in:
Tejaswini Chile 2022-06-13 15:56:49 +05:30 committed by GitHub
parent 2198930185
commit ae72757d23
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
23 changed files with 511 additions and 42 deletions

View file

@ -0,0 +1,48 @@
class Api::V1::Accounts::ArticlesController < Api::V1::Accounts::BaseController
before_action :portal
before_action :fetch_article, except: [:index, :create]
def index
@articles = @portal.articles
@articles.search(list_params) if params[:payload].present?
end
def create
@article = @portal.articles.create!(article_params)
end
def edit; end
def show; end
def update
@article.update!(article_params)
end
def destroy
@article.destroy!
head :ok
end
private
def fetch_article
@article = @portal.articles.find(params[:id])
end
def portal
@portal ||= Current.account.portals.find_by(slug: params[:portal_id])
end
def article_params
params.require(:article).permit(
:title, :content, :description, :position, :category_id, :author_id
)
end
def list_params
params.require(:payload).permit(
:category_slug, :locale, :query
)
end
end

View file

@ -3,7 +3,7 @@ class Api::V1::Accounts::CategoriesController < Api::V1::Accounts::BaseControlle
before_action :fetch_category, except: [:index, :create]
def index
@categories = @portal.categories
@categories = @portal.categories.search(params)
end
def create
@ -31,7 +31,7 @@ class Api::V1::Accounts::CategoriesController < Api::V1::Accounts::BaseControlle
def category_params
params.require(:category).permit(
:name, :description, :position
:name, :description, :position, :slug, :locale
)
end
end