Module: Api::Affiliated

Extended by:
ActiveSupport::Concern
Included in:
SpacesController
Defined in:
app/controllers/concerns/api/affiliated.rb

Instance Method Summary collapse

Instance Method Details

#affiliated_createObject



26
27
28
29
30
# File 'app/controllers/concerns/api/affiliated.rb', line 26

def affiliated_create
  render json: { success: true }, status: :ok and return if @obj.add_affiliate(@affiliate)

  render json: { error: 'Affiliated could not be created' }, status: :unprocessable_entity
end

#affiliated_indexObject

/:parent_type/:id/affiliated/:object_type



14
15
16
17
18
19
20
21
22
23
24
# File 'app/controllers/concerns/api/affiliated.rb', line 14

def affiliated_index
  affiliated = ::Affiliation.where(parent: @obj, affiliate_type: params[:affiliate_type].classify).pluck(:affiliate_id, :status)
  response = affiliated.map do |affiliation|
    {
      affiliate_id: affiliation[0],
      status: affiliation[1]
    }
  end
  output = "{\"affiliates\": {\"#{params[:affiliate_type]}\": #{response.to_json}}}"
  render json: output, status: :ok
end

#affiliated_statsObject



32
33
34
35
36
37
38
39
# File 'app/controllers/concerns/api/affiliated.rb', line 32

def affiliated_stats
  affiliates = ::Affiliation.where(parent: @obj, status: 'accepted')
  # TODO: Fix the polymorphic error of this query
  # affiliates = Affiliation.where(parent: @obj, status:"accepted").joins(:affiliate).where.not(affiliate: {status: "draft"})
  results = affiliates.group(:affiliate_type).count
  results['total'] = affiliates.count
  render json: results, status: :ok
end