FEATURE: custom emojis

This commit is contained in:
Régis Hanol
2014-12-23 01:12:26 +01:00
parent 6e1601c10d
commit 45dbdb6896
3536 changed files with 477 additions and 245 deletions

View File

@ -0,0 +1,36 @@
class Admin::EmojisController < Admin::AdminController
def index
render_serialized(Emoji.custom, EmojiSerializer, root: false)
end
def create
file = params[:file] || params[:files].first
name = params[:name] || File.basename(file.original_filename, ".*")
# fix the name
name = name.gsub(/[^a-z0-9]+/i, '_')
.gsub(/_{2,}/, '_')
.downcase
# check the name doesn't already exist
if Emoji.all.detect { |e| e.name == name }
render json: failed_json.merge(message: I18n.t("emoji.errors.name_already_exists", name: name)), status: 422
else
if emoji = Emoji.create_for(file, name)
render_serialized(emoji, EmojiSerializer, root: false)
else
render json: failed_json.merge(message: I18n.t("emoji.errors.error_while_storing_emoji")), status: 422
end
end
end
def destroy
name = params.require(:id)
Emoji.custom.detect { |e| e.name == name }.try(:remove)
render nothing: true
end
end