Class: Citrix::Training::Serializer::Training

Inherits:
Object
  • Object
show all
Includes:
Helpers::Initializer
Defined in:
lib/citrix/training/serializer/training.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Helpers::Initializer

#initialize

Instance Attribute Details

#attributesObject

Set attributes that can be (de)serialized.



8
9
10
# File 'lib/citrix/training/serializer/training.rb', line 8

def attributes
  @attributes
end

Instance Method Details

#deserializeObject



24
25
26
27
28
29
30
31
32
33
34
# File 'lib/citrix/training/serializer/training.rb', line 24

def deserialize
  {
    key: attributes['trainingKey'],
    name: attributes['name'],
    description: attributes['description'],
    timezone: attributes['timeZone'],
    dates: deserialize_dates(attributes['times'] || []),
    web_registration: !attributes['registrationSettings']['disableWebRegistration'],
    confirmation_email: !attributes['registrationSettings']['disableConfirmationEmail']
  }
end

#serializeObject



10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/citrix/training/serializer/training.rb', line 10

def serialize
  {
    name: attributes[:name],
    description: attributes[:description],
    timeZone: attributes[:timezone],
    times: (attributes[:dates] || []).map(&:serialize),
    organizers: (attributes[:organizers] || []).map(&:key),
    registrationSettings: {
      disableWebRegistration: !attributes.fetch(:web_registration, true),
      disableConfirmationEmail: !attributes.fetch(:confirmation_email, true),
    }
  }
end