Skip to content
Snippets Groups Projects
Commit 293972f7 authored by Eugen Rochko's avatar Eugen Rochko Committed by GitHub
Browse files

New API: GET /api/v1/custom_emojis to get a server's custom emojis (#5051)

parent 9c8e6021
No related branches found
No related tags found
No related merge requests found
......@@ -3,7 +3,7 @@
module Admin
class CustomEmojisController < BaseController
def index
@custom_emojis = CustomEmoji.where(domain: nil)
@custom_emojis = CustomEmoji.local
end
def new
......
# frozen_string_literal: true
class Api::V1::CustomEmojisController < Api::BaseController
respond_to :json
def index
render json: CustomEmoji.local, each_serializer: REST::CustomEmojiSerializer
end
end
......@@ -26,6 +26,8 @@ class CustomEmoji < ApplicationRecord
validates_attachment :image, content_type: { content_type: 'image/png' }, presence: true, size: { in: 0..50.kilobytes }
validates :shortcode, uniqueness: { scope: :domain }, format: { with: /\A#{SHORTCODE_RE_FRAGMENT}\z/ }, length: { minimum: 2 }
scope :local, -> { where(domain: nil) }
include Remotable
class << self
......
# frozen_string_literal: true
class REST::CustomEmojiSerializer < ActiveModel::Serializer
include RoutingHelper
attributes :shortcode, :url
def url
full_asset_url(object.image.url)
end
end
......@@ -17,7 +17,7 @@ class REST::StatusSerializer < ActiveModel::Serializer
has_many :media_attachments, serializer: REST::MediaAttachmentSerializer
has_many :mentions
has_many :tags
has_many :emojis
has_many :emojis, serializer: REST::CustomEmojiSerializer
def id
object.id.to_s
......@@ -119,14 +119,4 @@ class REST::StatusSerializer < ActiveModel::Serializer
tag_url(object)
end
end
class CustomEmojiSerializer < ActiveModel::Serializer
include RoutingHelper
attributes :shortcode, :url
def url
full_asset_url(object.image.url)
end
end
end
......@@ -188,6 +188,7 @@ Rails.application.routes.draw do
end
resources :streaming, only: [:index]
resources :custom_emojis, only: [:index]
get '/search', to: 'search#index', as: :search
......
# frozen_string_literal: true
require 'rails_helper'
RSpec.describe Api::V1::CustomEmojisController, type: :controller do
render_views
describe 'GET #index' do
before do
Fabricate(:custom_emoji)
get :index
end
it 'returns http success' do
expect(response).to have_http_status(:success)
end
end
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment