Retrospring/app/controllers/ajax/group_controller.rb

112 lines
3.2 KiB
Ruby
Raw Normal View History

class Ajax::GroupController < AjaxController
2015-01-17 09:24:36 -08:00
def create
@response[:status] = :err
2015-01-17 09:24:36 -08:00
unless user_signed_in?
@response[:status] = :noauth
@response[:message] = I18n.t('messages.noauth')
2015-01-17 09:24:36 -08:00
return
end
2015-01-17 10:53:34 -08:00
begin
params.require :name
rescue ActionController::ParameterMissing => e
NewRelic::Agent.notice_error(e)
@response[:status] = :toolong
@response[:message] = I18n.t('messages.group.create.noname')
2015-01-17 10:53:34 -08:00
return
end
2015-01-17 09:24:36 -08:00
params.require :user
begin
2020-04-30 15:05:41 -07:00
target_user = User.find_by_screen_name!(params[:user])
2015-01-17 09:24:36 -08:00
group = Group.create! user: current_user, display_name: params[:name]
rescue ActiveRecord::RecordInvalid => e
NewRelic::Agent.notice_error(e)
@response[:status] = :toolong
@response[:message] = I18n.t('messages.group.create.toolong')
2015-01-17 09:24:36 -08:00
return
rescue ActiveRecord::RecordNotFound => e
NewRelic::Agent.notice_error(e)
@response[:status] = :notfound
@response[:message] = I18n.t('messages.group.create.notfound')
2015-01-17 09:24:36 -08:00
return
rescue ActiveRecord::RecordNotUnique => e
NewRelic::Agent.notice_error(e)
@response[:status] = :exists
@response[:message] = I18n.t('messages.group.create.exists')
2015-01-17 09:24:36 -08:00
return
end
@response[:status] = :okay
@response[:success] = true
@response[:message] = I18n.t('messages.group.create.okay')
@response[:render] = render_to_string(partial: 'modal/group/item', locals: { group: group, user: target_user })
2015-01-17 09:24:36 -08:00
end
2015-01-17 09:57:23 -08:00
def destroy
@response[:status] = :err
2015-01-17 09:57:23 -08:00
unless user_signed_in?
@response[:status] = :noauth
@response[:message] = I18n.t('messages.noauth')
2015-01-17 09:57:23 -08:00
return
end
params.require :group
begin
Group.where(user: current_user, name: params[:group]).first.destroy!
rescue ActiveRecord::RecordNotFound => e
NewRelic::Agent.notice_error(e)
@response[:status] = :notfound
@response[:message] = I18n.t('messages.group.destroy.notfound')
2015-01-17 09:57:23 -08:00
return
end
@response[:status] = :okay
@response[:success] = true
@response[:message] = I18n.t('messages.group.destroy.okay')
2015-01-17 09:57:23 -08:00
end
def membership
@response[:status] = :err
unless user_signed_in?
@response[:status] = :noauth
@response[:message] = I18n.t('messages.noauth')
return
end
params.require :user
params.require :group
params.require :add
add = params[:add] == 'true'
begin
2020-04-30 15:05:41 -07:00
group = current_user.groups.find_by_name!(params[:group])
rescue ActiveRecord::RecordNotFound => e
NewRelic::Agent.notice_error(e)
@response[:status] = :notfound
@response[:message] = I18n.t('messages.group.membership.notfound')
return
end
2020-04-30 15:05:41 -07:00
target_user = User.find_by_screen_name!(params[:user])
if add
group.add_member target_user if group.members.find_by_user_id(target_user.id).nil?
@response[:checked] = true
@response[:message] = I18n.t('messages.group.membership.add')
else
group.remove_member target_user unless group.members.find_by_user_id(target_user.id).nil?
@response[:checked] = false
@response[:message] = I18n.t('messages.group.membership.remove')
end
2015-05-08 16:31:31 -07:00
@response[:status] = :okay
@response[:success] = true
end
end