49 lines
937 B
Ruby
49 lines
937 B
Ruby
|
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
|