Correct time zone of API dates
Prior to this change, the API returned incorrect dates in UTC instead of the conference time zone.
This commit is contained in:
parent
397341a324
commit
6ce2e66f14
4 changed files with 24 additions and 8 deletions
|
|
@ -3,8 +3,11 @@
|
||||||
class EventScheduleSerializer < ActiveModel::Serializer
|
class EventScheduleSerializer < ActiveModel::Serializer
|
||||||
include ActionView::Helpers::TextHelper
|
include ActionView::Helpers::TextHelper
|
||||||
|
|
||||||
attribute :start_time, key: :date
|
attributes :date, :room
|
||||||
attributes :room
|
|
||||||
|
def date
|
||||||
|
object.start_time&.change(zone: object.event.program.conference.timezone)
|
||||||
|
end
|
||||||
|
|
||||||
def room
|
def room
|
||||||
object.room.guid
|
object.room.guid
|
||||||
|
|
|
||||||
|
|
@ -3,9 +3,11 @@
|
||||||
class EventSerializer < ActiveModel::Serializer
|
class EventSerializer < ActiveModel::Serializer
|
||||||
include ActionView::Helpers::TextHelper
|
include ActionView::Helpers::TextHelper
|
||||||
|
|
||||||
attributes :guid, :title, :length
|
attributes :guid, :title, :length, :scheduled_date, :language, :abstract, :speaker_ids, :type, :room, :track
|
||||||
attribute :time, key: :scheduled_date
|
|
||||||
attributes :language, :abstract, :speaker_ids, :type, :room, :track
|
def scheduled_date
|
||||||
|
object.time&.change(zone: object.program.conference.timezone)
|
||||||
|
end
|
||||||
|
|
||||||
def speaker_ids
|
def speaker_ids
|
||||||
speakers = object.event_users.select { |i| i.event_role == 'speaker' }
|
speakers = object.event_users.select { |i| i.event_role == 'speaker' }
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,12 @@ require 'spec_helper'
|
||||||
|
|
||||||
describe EventScheduleSerializer, type: :serializer do
|
describe EventScheduleSerializer, type: :serializer do
|
||||||
let(:start) { DateTime.new(2000, 1, 2, 3, 4, 5) }
|
let(:start) { DateTime.new(2000, 1, 2, 3, 4, 5) }
|
||||||
let(:conference) { create(:conference, start_date: start.to_date, start_hour: start.hour) }
|
let(:timezone) { 'Etc/GMT+11' }
|
||||||
|
let(:conference) do
|
||||||
|
create(:conference, start_date: start.to_date,
|
||||||
|
start_hour: start.hour,
|
||||||
|
timezone: timezone)
|
||||||
|
end
|
||||||
let(:program) { create(:program, conference: conference) }
|
let(:program) { create(:program, conference: conference) }
|
||||||
let(:event) { create(:event, program: program) }
|
let(:event) { create(:event, program: program) }
|
||||||
let(:event_schedule) { create(:event_schedule, event: event, start_time: start) }
|
let(:event_schedule) { create(:event_schedule, event: event, start_time: start) }
|
||||||
|
|
@ -12,7 +17,7 @@ describe EventScheduleSerializer, type: :serializer do
|
||||||
|
|
||||||
it 'sets date and room' do
|
it 'sets date and room' do
|
||||||
expected_json = {
|
expected_json = {
|
||||||
date: '2000-01-02T03:04:05.000Z',
|
date: '2000-01-02T03:04:05.000-11:00',
|
||||||
room: event_schedule.room.guid
|
room: event_schedule.room.guid
|
||||||
}.to_json
|
}.to_json
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,13 @@
|
||||||
|
|
||||||
require 'spec_helper'
|
require 'spec_helper'
|
||||||
describe EventSerializer, type: :serializer do
|
describe EventSerializer, type: :serializer do
|
||||||
let(:event) { create(:event, title: 'Some Talk', abstract: 'Lorem ipsum dolor sit amet') }
|
let(:conference) { create(:conference, timezone: 'UTC') }
|
||||||
|
let(:program) { create(:program, conference: conference) }
|
||||||
|
let(:event) do
|
||||||
|
create(:event, program: program,
|
||||||
|
title: 'Some Talk',
|
||||||
|
abstract: 'Lorem ipsum dolor sit amet')
|
||||||
|
end
|
||||||
let(:serializer) { EventSerializer.new(event) }
|
let(:serializer) { EventSerializer.new(event) }
|
||||||
|
|
||||||
context 'event does not have date, room and tracks assigned' do
|
context 'event does not have date, room and tracks assigned' do
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue