Class: Zm::Client::AppointmentJsnsInitializer
- Inherits:
-
Object
- Object
- Zm::Client::AppointmentJsnsInitializer
- Defined in:
- lib/zm/client/appointment/appointment_jsns_initializer.rb
Overview
class for account appointment
Instance Attribute Summary collapse
-
#appointment ⇒ Object
Returns the value of attribute appointment.
Instance Method Summary collapse
- #attendees ⇒ Object
- #comp ⇒ Object
- #comp_end_h ⇒ Object
- #comp_make_date ⇒ Object
- #comp_organizer_name ⇒ Object
- #comp_start_h ⇒ Object
- #create ⇒ Object
- #init_from_inv ⇒ Object
- #init_from_search ⇒ Object
-
#initialize(parent, json) ⇒ AppointmentJsnsInitializer
constructor
A new instance of AppointmentJsnsInitializer.
- #inv ⇒ Object
- #search_make_date ⇒ Object
- #search_organizer_name ⇒ Object
- #tz ⇒ Object
- #update ⇒ Object
Constructor Details
#initialize(parent, json) ⇒ AppointmentJsnsInitializer
Returns a new instance of AppointmentJsnsInitializer.
9 10 11 12 13 |
# File 'lib/zm/client/appointment/appointment_jsns_initializer.rb', line 9 def initialize(parent, json) @parent = parent @json = json @inv_id = @json.delete(:invId) end |
Instance Attribute Details
#appointment ⇒ Object
Returns the value of attribute appointment.
7 8 9 |
# File 'lib/zm/client/appointment/appointment_jsns_initializer.rb', line 7 def appointment @appointment end |
Instance Method Details
#attendees ⇒ Object
128 129 130 |
# File 'lib/zm/client/appointment/appointment_jsns_initializer.rb', line 128 def attendees @attendees ||= comp[:at] || [] end |
#comp ⇒ Object
110 111 112 113 114 |
# File 'lib/zm/client/appointment/appointment_jsns_initializer.rb', line 110 def comp raise Zm::Client::ZmError, 'invalid appointment received' if inv[:comp].nil? @comp ||= inv[:comp].first end |
#comp_end_h ⇒ Object
102 103 104 |
# File 'lib/zm/client/appointment/appointment_jsns_initializer.rb', line 102 def comp_end_h @comp_end_h ||= comp[:e].first end |
#comp_make_date ⇒ Object
88 89 90 91 92 93 94 95 96 |
# File 'lib/zm/client/appointment/appointment_jsns_initializer.rb', line 88 def comp_make_date if comp_start_h[:u].nil? @appointment.start_at = Time.parse(comp_start_h[:d]) @appointment.end_at = Time.parse(comp_end_h[:d]) else @appointment.start_at = Time.at(comp_start_h[:u] / 1000) @appointment.end_at = Time.at(comp_end_h[:u] / 1000) end end |
#comp_organizer_name ⇒ Object
116 117 118 119 120 |
# File 'lib/zm/client/appointment/appointment_jsns_initializer.rb', line 116 def comp_organizer_name return nil if comp[:or].nil? @comp_organizer_name ||= comp[:or][:a] end |
#comp_start_h ⇒ Object
98 99 100 |
# File 'lib/zm/client/appointment/appointment_jsns_initializer.rb', line 98 def comp_start_h @comp_start_h ||= comp[:s].first end |
#create ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/zm/client/appointment/appointment_jsns_initializer.rb', line 27 def create @appointment ||= Appointment.new(@parent) @appointment.id = @json.delete(:id) @appointment.tn = @json.delete(:tn) @appointment.l = @json.delete(:l) @appointment.uid = @json.delete(:uid) if inv.nil? init_from_search else init_from_inv end @appointment end |
#init_from_inv ⇒ Object
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/zm/client/appointment/appointment_jsns_initializer.rb', line 59 def init_from_inv @appointment.uid = comp[:uid] @appointment.fb = comp[:fb] @appointment.transp = comp[:transp] @appointment.timezone = tz[:id] @appointment.name = comp[:name] @appointment.desc = comp[:desc].first[:_content] unless comp[:desc].nil? @appointment.apptId = comp[:apptId] @appointment.allDay = comp[:allDay] unless comp[:allDay].nil? unless comp_organizer_name.nil? @appointment.organizer = Zm::Client::Appointment::Organizer.new(comp_organizer_name) end attendees.each do |attendee| @appointment.attendees.add(Zm::Client::Appointment::Attendee.new(attendee[:a])) end comp_make_date end |
#init_from_search ⇒ Object
48 49 50 51 52 53 54 55 56 57 |
# File 'lib/zm/client/appointment/appointment_jsns_initializer.rb', line 48 def init_from_search unless search_organizer_name.nil? @appointment.organizer = Zm::Client::Appointment::Organizer.new(search_organizer_name) end @appointment.name = @json.delete(:name) @appointment.id = @inv_id @appointment.desc = @json.delete(:fr) @appointment.allDay = @json.delete(:allDay) unless @json[:allDay].nil? search_make_date end |
#inv ⇒ Object
44 45 46 |
# File 'lib/zm/client/appointment/appointment_jsns_initializer.rb', line 44 def inv @inv ||= @json[:inv]&.first end |
#search_make_date ⇒ Object
80 81 82 83 84 85 86 |
# File 'lib/zm/client/appointment/appointment_jsns_initializer.rb', line 80 def search_make_date return if @json[:inst].nil? || @json[:inst].first.empty? || @json[:dur].nil? @appointment.start_at = Time.at(@json[:inst].first[:s] / 1000) @appointment.end_at = Time.at((@json[:inst].first[:s] + @json[:dur]) / 1000) @appointment.dur = @json[:dur] / 1000 end |
#search_organizer_name ⇒ Object
122 123 124 125 126 |
# File 'lib/zm/client/appointment/appointment_jsns_initializer.rb', line 122 def search_organizer_name return nil if @json[:or].nil? @search_organizer_name ||= @json[:or][:a] end |
#tz ⇒ Object
106 107 108 |
# File 'lib/zm/client/appointment/appointment_jsns_initializer.rb', line 106 def tz @tz ||= inv[:tz]&.first || { id: 'Europe/Berlin' } end |
#update ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/zm/client/appointment/appointment_jsns_initializer.rb', line 15 def update return false if @appointment.nil? @appointment.calItemId = @json.delete(:calItemId) @appointment.apptId = @json.delete(:apptId) @appointment.invId = @inv_id @appointment.id = @inv_id @appointment.rev = @json.delete(:rev) true end |