This commit is contained in:
Rob Smith 2016-01-13 11:13:04 +00:00
commit 8384f7a00e
3 changed files with 82 additions and 1 deletions

View file

@ -1,6 +1,13 @@
class ConferenceController < ApplicationController
before_filter :respond_to_options
load_and_authorize_resource find_by: :short_title
skip_before_filter :verify_authenticity_token, if: :json_request?
def json_request?
return false if request.request_method != 'GET'
return false if !request.format.json?
true
end
def index
@current = Conference.where('end_date >= ?', Date.current).order('start_date ASC')
@ -19,6 +26,11 @@ class ConferenceController < ApplicationController
else
@today = @conference.start_date.strftime('%Y-%m-%d')
end
respond_to do |format|
format.html
format.json { render json: @conference.as_json, callback: params[:callback] }
end
end
def gallery_photos

View file

@ -119,6 +119,73 @@ class Conference < ActiveRecord::Base
result
end
##
# Builds out the model for returning a json response
#
#
def as_json(_options={})
super(
only: [
:description,
:end_date,
:logo,
:short_title,
:start_date,
:title,
],
include: {
difficulty_levels: {
only: [
:description,
:id,
:title,
]
},
event_types: {
only: [
:description,
:id,
:length,
:title,
]
},
rooms: {
only: [
:name,
:size,
],
include: {
events: {
only: [
:abstract,
:description,
:difficulty_level_id,
:event_type_id,
:guid,
:is_highlight,
:require_registration,
:start_time,
:subtitle,
:title,
:track_id,
],
methods: [
:speaker_names,
],
},
},
},
tracks: {
only: [
:description,
:id,
:name,
]
},
}
)
end
##
# Checks if the user is registered to the conference
#

View file

@ -20,7 +20,9 @@ class ConferenceSerializer < ActiveModel::Serializer
# FIXME: adjusting the format the DIRTY way, for oSC13.
# If you think this is ugly, don't look at the methods below
def date_range
object.date_range_string.try(:split, ',').try(:first)
if defined? object.date_range_string
object.date_range_string.try(:split, ',').try(:first)
end
end
# FIXME: just giving suseconferenceclient something to play with