Merge pull request #66 from turniere/ticket/TURNIERE-256

Include bets in match serializer
This commit is contained in:
Thor77 2019-06-18 19:21:43 +02:00 committed by GitHub
commit e8207c95c1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 19 additions and 7 deletions

View File

@ -6,12 +6,7 @@ class BetsController < ApplicationController
rescue_from UserServiceError, with: :handle_user_service_error
def index
render json: @match.bets.group_by(&:team).map { |team, bets|
{
team: ActiveModelSerializers::SerializableResource.new(team).as_json,
bets: bets.size
}
}
render json: @match.bets, serializer: BetsSerializer
end
def create

View File

@ -7,7 +7,7 @@ class MatchesController < ApplicationController
# GET /matches/1
def show
render json: @match, include: ['match_scores.points', 'match_scores.team']
render json: @match, include: ['match_scores.points', 'match_scores.team', 'bets']
end
# PATCH/PUT /matches/1

View File

@ -0,0 +1,12 @@
# frozen_string_literal: true
class BetsSerializer < ActiveModel::Serializer::CollectionSerializer
def serializable_hash(_adapter_options, _options, _adapter_instance)
@object.group_by(&:team).map do |team, bets|
{
team: ActiveModelSerializers::SerializableResource.new(team).as_json,
bets: bets.size
}
end
end
end

View File

@ -7,5 +7,10 @@ class MatchSerializer < ApplicationSerializer
ActiveModelSerializers::SerializableResource.new(object.winner).as_json
end
def bets
ActiveModelSerializers::SerializableResource.new(object.bets, serializer: BetsSerializer).as_json
end
has_many :match_scores
has_many :bets
end