viewpoint 0.1.13 → 0.1.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/model/calendar_item.rb +1 -1
- data/lib/model/contact.rb +20 -6
- data/lib/model/item.rb +7 -0
- data/lib/model/item_field_uri_map.rb +1 -1
- data/lib/model/model.rb +43 -39
- data/lib/model/task.rb +4 -2
- metadata +3 -3
data/lib/model/calendar_item.rb
CHANGED
@@ -200,7 +200,7 @@ module Viewpoint
|
|
200
200
|
def update!(updates)
|
201
201
|
conn = Viewpoint::EWS::EWS.instance
|
202
202
|
resp = conn.ews.update_item([{:id => @item_id, :change_key => @change_key}], {:updates => updates},
|
203
|
-
{:message_disposition => 'SaveOnly', :conflict_resolution => 'AutoResolve', :send_meeting_invitations_or_cancellations => '
|
203
|
+
{:message_disposition => 'SaveOnly', :conflict_resolution => 'AutoResolve', :send_meeting_invitations_or_cancellations => 'SendOnlyToChanged'})
|
204
204
|
if resp.status == 'Success'
|
205
205
|
@item_id = resp.items.first[resp.items.first.keys.first][:item_id][:id]
|
206
206
|
@change_key = resp.items.first[resp.items.first.keys.first][:item_id][:change_key]
|
data/lib/model/contact.rb
CHANGED
@@ -59,8 +59,6 @@ module Viewpoint
|
|
59
59
|
end
|
60
60
|
end
|
61
61
|
|
62
|
-
|
63
|
-
|
64
62
|
# Create a Contact in the Exchange Data Store
|
65
63
|
def self.add_contact()
|
66
64
|
item = {}
|
@@ -76,25 +74,41 @@ module Viewpoint
|
|
76
74
|
end
|
77
75
|
end
|
78
76
|
|
79
|
-
|
80
|
-
|
81
77
|
# Initialize an Exchange Web Services item of type Contact
|
82
78
|
def initialize(ews_item)
|
83
79
|
super(ews_item)
|
84
80
|
end
|
81
|
+
|
82
|
+
def set_email_addresses(email1, email2=nil, email3=nil)
|
83
|
+
changes = []
|
84
|
+
type = self.class.name.split(/::/).last.ruby_case.to_sym
|
85
|
+
k = :email_addresses
|
86
|
+
v = 'EmailAddress1'
|
87
|
+
changes << {:set_item_field =>
|
88
|
+
[{:indexed_field_uRI => {:field_uRI => FIELD_URIS[k][:text], :field_index => v}}, {type=>{k => {:entry => {:key => v, :text => email1}}}}]} unless email1.nil?
|
89
|
+
v = 'EmailAddress2'
|
90
|
+
changes << {:set_item_field =>
|
91
|
+
[{:indexed_field_uRI => {:field_uRI => FIELD_URIS[k][:text], :field_index => v}}, {type=>{k => {:entry => {:key => v, :text => email2}}}}]} unless email2.nil?
|
92
|
+
v = 'EmailAddress3'
|
93
|
+
changes << {:set_item_field =>
|
94
|
+
[{:indexed_field_uRI => {:field_uRI => FIELD_URIS[k][:text], :field_index => v}}, {type=>{k => {:entry => {:key => v, :text => email3}}}}]} unless email3.nil?
|
95
|
+
@updates.merge!({:preformatted => changes}) {|k,v1,v2| v1 + v2}
|
96
|
+
end
|
97
|
+
|
85
98
|
|
86
99
|
private
|
87
100
|
|
88
101
|
def init_methods
|
89
102
|
super()
|
90
103
|
|
91
|
-
define_str_var :file_as, :file_as_mapping, :display_name, :job_title, :given_name, :surname
|
104
|
+
define_str_var :file_as, :file_as_mapping, :display_name, :job_title, :given_name, :surname, :company_name
|
92
105
|
define_attr_str_var :complete_name, :first_name, :middle_name, :last_name, :initials, :full_name
|
93
106
|
define_inet_addresses :email_addresses, :im_addresses
|
94
107
|
define_phone_numbers :phone_numbers
|
95
108
|
define_physical_addresses :physical_addresses
|
96
109
|
end
|
97
|
-
|
110
|
+
|
111
|
+
|
98
112
|
# Define email_addresses or im_addresses for a Contact
|
99
113
|
def define_inet_addresses(*inet_addresses)
|
100
114
|
inet_addresses.each do |itype|
|
data/lib/model/item.rb
CHANGED
@@ -100,6 +100,13 @@ module Viewpoint
|
|
100
100
|
end
|
101
101
|
end
|
102
102
|
|
103
|
+
# Clear out any pending updates
|
104
|
+
# @return [TrueClass]
|
105
|
+
def clear_updates!
|
106
|
+
@updates = {}
|
107
|
+
true
|
108
|
+
end
|
109
|
+
|
103
110
|
# Call UpdateItem for this item with the passed updates
|
104
111
|
# @param [Hash] updates a well-formed update hash
|
105
112
|
# @example {:set_item_field=>{:field_uRI=>{:field_uRI=>"message:IsRead"}, :message=>{:is_read=>{:text=>"true"}}}}
|
@@ -148,7 +148,7 @@ module Viewpoint
|
|
148
148
|
:culture => {:text => 'contacts:Culture', :writable => true},
|
149
149
|
:department => {:text => 'contacts:Department', :writable => true},
|
150
150
|
:display_name => {:text => 'contacts:DisplayName', :writable => true},
|
151
|
-
:email_addresses => {:text => 'contacts:
|
151
|
+
:email_addresses => {:ftype => :indexed_field_uRI, :text => 'contacts:EmailAddress', :writable => true},
|
152
152
|
:file_as => {:text => 'contacts:FileAs', :writable => true},
|
153
153
|
:file_as_mapping => {:text => 'contacts:FileAsMapping', :writable => true},
|
154
154
|
:generation => {:text => 'contacts:Generation', :writable => true},
|
data/lib/model/model.rb
CHANGED
@@ -55,27 +55,28 @@ module Viewpoint
|
|
55
55
|
# This is the text
|
56
56
|
# </method_name>
|
57
57
|
def define_str_var(*vars)
|
58
|
-
map = ( vars.last.is_a?(Hash) ? vars.pop : {})
|
58
|
+
map = ( vars.last.is_a?(Hash) ? vars.pop : {})
|
59
59
|
vars.each do |var|
|
60
|
+
mname = ( map.has_key?(var) ? map[var] : var )
|
60
61
|
if(@ews_item[var])
|
61
|
-
mname = ( map.has_key?(var) ? map[var] : var )
|
62
62
|
@ews_methods << mname
|
63
63
|
self.instance_eval <<-EOF
|
64
64
|
def #{mname}
|
65
65
|
@ews_item[:#{var}][:text]
|
66
66
|
end
|
67
67
|
EOF
|
68
|
-
if(Item::FIELD_URIS.has_key?(var.to_sym) && Item::FIELD_URIS[var.to_sym][:writable])
|
69
|
-
self.instance_eval <<-EOF
|
70
|
-
def #{mname}=(newtext)
|
71
|
-
@ews_item[:#{var}][:text] = newtext
|
72
|
-
@updates[:#{var}] = @ews_item[:#{var}]
|
73
|
-
end
|
74
|
-
EOF
|
75
|
-
end
|
76
68
|
else
|
77
69
|
@ews_methods_undef << var
|
78
70
|
end
|
71
|
+
if(Item::FIELD_URIS.has_key?(var.to_sym) && Item::FIELD_URIS[var.to_sym][:writable])
|
72
|
+
self.instance_eval <<-EOF
|
73
|
+
def #{mname}=(newtext)
|
74
|
+
@ews_item[:#{var}] = {} unless @ews_item[:#{var}]
|
75
|
+
@ews_item[:#{var}][:text] = newtext
|
76
|
+
@updates[:#{var}] = @ews_item[:#{var}]
|
77
|
+
end
|
78
|
+
EOF
|
79
|
+
end
|
79
80
|
end
|
80
81
|
end
|
81
82
|
|
@@ -107,7 +108,7 @@ module Viewpoint
|
|
107
108
|
end
|
108
109
|
end
|
109
110
|
end
|
110
|
-
|
111
|
+
|
111
112
|
|
112
113
|
def define_int_var(*vars)
|
113
114
|
vars.each do |var|
|
@@ -115,20 +116,21 @@ module Viewpoint
|
|
115
116
|
@ews_methods << var
|
116
117
|
self.instance_eval <<-EOF
|
117
118
|
def #{var}
|
118
|
-
|
119
|
+
@ews_item[:#{var}][:text].to_i
|
119
120
|
end
|
120
121
|
EOF
|
121
|
-
if(Item::FIELD_URIS.has_key?(var.to_sym) && Item::FIELD_URIS[var.to_sym][:writable])
|
122
|
-
self.instance_eval <<-EOF
|
123
|
-
def #{var}=(newint)
|
124
|
-
@ews_item[:#{var}][:text] = newint.to_s
|
125
|
-
@updates[:#{var}] = @ews_item[:#{var}]
|
126
|
-
end
|
127
|
-
EOF
|
128
|
-
end
|
129
122
|
else
|
130
123
|
@ews_methods_undef << var
|
131
124
|
end
|
125
|
+
if(Item::FIELD_URIS.has_key?(var.to_sym) && Item::FIELD_URIS[var.to_sym][:writable])
|
126
|
+
self.instance_eval <<-EOF
|
127
|
+
def #{var}=(newint)
|
128
|
+
@ews_item[:#{var}] = {} unless @ews_item[:#{var}]
|
129
|
+
@ews_item[:#{var}][:text] = newint.to_s
|
130
|
+
@updates[:#{var}] = @ews_item[:#{var}]
|
131
|
+
end
|
132
|
+
EOF
|
133
|
+
end
|
132
134
|
end
|
133
135
|
end
|
134
136
|
|
@@ -138,21 +140,22 @@ module Viewpoint
|
|
138
140
|
@ews_methods << "#{var}?".to_sym
|
139
141
|
self.instance_eval <<-EOF
|
140
142
|
def #{var}?
|
141
|
-
|
143
|
+
(@ews_item[:#{var}][:text] == 'true') ? true : false
|
142
144
|
end
|
143
145
|
EOF
|
144
|
-
if(Item::FIELD_URIS.has_key?(var.to_sym) && Item::FIELD_URIS[var.to_sym][:writable])
|
145
|
-
self.instance_eval <<-EOF
|
146
|
-
def #{var}=(newbool)
|
147
|
-
raise EwsError, "Value not boolean for method #{var}=" unless(newbool.is_a?(TrueClass) || newbool.is_a?(FalseClass))
|
148
|
-
@ews_item[:#{var}][:text] = newbool.to_s
|
149
|
-
@updates[:#{var}] = @ews_item[:#{var}]
|
150
|
-
end
|
151
|
-
EOF
|
152
|
-
end
|
153
146
|
else
|
154
147
|
@ews_methods_undef << "#{var}?".to_sym
|
155
148
|
end
|
149
|
+
if(Item::FIELD_URIS.has_key?(var.to_sym) && Item::FIELD_URIS[var.to_sym][:writable])
|
150
|
+
self.instance_eval <<-EOF
|
151
|
+
def #{var}=(newbool)
|
152
|
+
raise EwsError, "Value not boolean for method #{var}=" unless(newbool.is_a?(TrueClass) || newbool.is_a?(FalseClass))
|
153
|
+
@ews_item[:#{var}] = {} unless @ews_item[:#{var}]
|
154
|
+
@ews_item[:#{var}][:text] = newbool.to_s
|
155
|
+
@updates[:#{var}] = @ews_item[:#{var}]
|
156
|
+
end
|
157
|
+
EOF
|
158
|
+
end
|
156
159
|
end
|
157
160
|
end
|
158
161
|
|
@@ -162,20 +165,21 @@ module Viewpoint
|
|
162
165
|
@ews_methods << var
|
163
166
|
self.instance_eval <<-EOF
|
164
167
|
def #{var}
|
165
|
-
|
168
|
+
DateTime.parse(@ews_item[:#{var}][:text])
|
166
169
|
end
|
167
170
|
EOF
|
168
|
-
if(Item::FIELD_URIS.has_key?(var.to_sym) && Item::FIELD_URIS[var.to_sym][:writable])
|
169
|
-
self.instance_eval <<-EOF
|
170
|
-
def #{var}=(newdate)
|
171
|
-
@ews_item[:#{var}][:text] = newdate.to_s
|
172
|
-
@updates[:#{var}] = @ews_item[:#{var}]
|
173
|
-
end
|
174
|
-
EOF
|
175
|
-
end
|
176
171
|
else
|
177
172
|
@ews_methods_undef << var
|
178
173
|
end
|
174
|
+
if(Item::FIELD_URIS.has_key?(var.to_sym) && Item::FIELD_URIS[var.to_sym][:writable])
|
175
|
+
self.instance_eval <<-EOF
|
176
|
+
def #{var}=(newdate)
|
177
|
+
@ews_item[:#{var}] = {} unless @ews_item[:#{var}]
|
178
|
+
@ews_item[:#{var}][:text] = newdate.to_s
|
179
|
+
@updates[:#{var}] = @ews_item[:#{var}]
|
180
|
+
end
|
181
|
+
EOF
|
182
|
+
end
|
179
183
|
end
|
180
184
|
end
|
181
185
|
|
data/lib/model/task.rb
CHANGED
@@ -58,12 +58,15 @@ module Viewpoint
|
|
58
58
|
# @param [String] body The task body
|
59
59
|
# @param [DateTime] v_start The date/time when this task begins
|
60
60
|
# @param [DateTime] v_end The date/time when this task is due
|
61
|
-
|
61
|
+
# @param [Symbol] status The current status of this task
|
62
|
+
# :completed, :in_progress, :waiting_on_others,
|
63
|
+
def self.create_task(folder, subject, body, v_start = nil, v_end = nil, status = nil)
|
62
64
|
item = {}
|
63
65
|
item[:subject] = {:text => subject}
|
64
66
|
item[:body] = {:text => body, :body_type => 'Text'} unless body.nil?
|
65
67
|
item[:start_date] = {:text => v_start.to_s} unless v_start.nil?
|
66
68
|
item[:due_date] = {:text => v_end.to_s} unless v_end.nil?
|
69
|
+
item[:status] = {:text => status} unless status.nil?
|
67
70
|
|
68
71
|
self.create_item_from_hash(item, folder)
|
69
72
|
end
|
@@ -109,7 +112,6 @@ module Viewpoint
|
|
109
112
|
|
110
113
|
def init_methods
|
111
114
|
super
|
112
|
-
|
113
115
|
define_str_var :status, :owner
|
114
116
|
define_bool_var :is_complete, :is_recurring, :is_team_task
|
115
117
|
define_int_var :percent_complete, :actual_work, :change_count
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 1
|
8
|
-
-
|
9
|
-
version: 0.1.
|
8
|
+
- 14
|
9
|
+
version: 0.1.14
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Dan Wanek
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date:
|
17
|
+
date: 2011-01-05 00:00:00 -06:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|