viewpoint 0.1.13 → 0.1.14
Sign up to get free protection for your applications and to get access to all the features.
- 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
|