Added ban information to user api

This commit is contained in:
Chris Blanchard 2015-08-01 16:44:39 +01:00
parent 3ec284b925
commit 3f1077dff8
3 changed files with 51 additions and 19 deletions

View file

@ -17,6 +17,11 @@ class Api::V1::UsersController < Api::V1::BaseController
steam: {
url: @steam.base_url,
nickname: @steam.nickname
},
bans: {
gather: @user.banned?(Ban::TYPE_GATHER).present?,
mute: @user.banned?(Ban::TYPE_MUTE).present?,
site: @user.banned?(Ban::TYPE_SITE).present?
}
}
rescue ActiveRecord::RecordNotFound

View file

@ -29,6 +29,25 @@ describe Api::V1::UsersController do
get :show, id: -1
}.to raise_error(ActionController::RoutingError)
end
it 'returns correct ban if user muted' do
create :ban, :mute, user: @user
get :show, id: @user.id
expect(response).to be_success
expect(json['bans']['mute']).to eq(true)
end
it 'returns correct ban if user gather banned' do
create :ban, :gather, user: @user
get :show, id: @user.id
expect(response).to be_success
expect(json['bans']['gather']).to eq(true)
end
it 'returns correct ban if user site banned' do
create :ban, :site, user: @user
get :show, id: @user.id
expect(response).to be_success
expect(json['bans']['site']).to eq(true)
end
end
describe '#index' do

View file

@ -1,23 +1,31 @@
FactoryGirl.define do
factory :ban do
ban_type Ban::TYPE_SITE
expiry Date.today + 1
# Hack because of the awkward way bans are created (requires user_name)
before(:create) do |ban|
if ban.user.nil?
user = create :user
ban.user_name = user.username
else
ban.user_name = ban.user.username
end
end
end
factory :ban do
ban_type Ban::TYPE_SITE
expiry Date.today + 1
# Hack because of the awkward way bans are created (requires user_name)
before(:create) do |ban|
if ban.user.nil?
user = create :user
ban.user_name = user.username
else
ban.user_name = ban.user.username
end
end
end
trait :mute do
ban_type Ban::TYPE_MUTE
end
trait :mute do
ban_type Ban::TYPE_MUTE
end
trait :expired do
expiry Date.yesterday - 1
end
trait :site do
ban_type Ban::TYPE_SITE
end
trait :gather do
ban_type Ban::TYPE_GATHER
end
trait :expired do
expiry Date.yesterday - 1
end
end