@@ -102,6 +102,58 @@ private ArrayList<Event> getEvents(LinkedHashMap<String, String> params) throws
102
102
}
103
103
104
104
105
+ //**************************************************************************
106
+ //** getEvent
107
+ //**************************************************************************
108
+ public Event getEvent (String id ) throws Exception {
109
+ String url = getURL () + "/" + id ;
110
+ return new Event (conn .getResponse (url ), conn );
111
+ }
112
+
113
+
114
+ //**************************************************************************
115
+ //** saveEvent
116
+ //**************************************************************************
117
+ public void saveEvent (Event event ) throws Exception {
118
+ String url = getURL ();
119
+ if (event .getID ()==null ){
120
+ conn .getResponse (url , event .toJson (), "POST" );
121
+ }
122
+ else {
123
+ url += "/" + event .getID ();
124
+ JSONObject json = new JSONObject ();
125
+ for (String k : updatableKeys ){
126
+ json .set (k , event .get (k ));
127
+ }
128
+ conn .getResponse (url , json , "PATCH" );
129
+ }
130
+ }
131
+
132
+
133
+ //**************************************************************************
134
+ //** deleteEvent
135
+ //**************************************************************************
136
+ public void deleteEvent (Event event ) throws Exception {
137
+ deleteEvent (event .getID ());
138
+ }
139
+
140
+
141
+ //**************************************************************************
142
+ //** deleteEvent
143
+ //**************************************************************************
144
+ public void deleteEvent (String id ) throws Exception {
145
+ if (id ==null ) return ;
146
+
147
+ String url = getURL () + "/" + id ;
148
+ conn .getResponse (url , null , "DELETE" );
149
+ }
150
+
151
+
152
+ private static String [] updatableKeys = new String []{
153
+ "subject" , "body" , "categories" , "start" , "end" , "location"
154
+ };
155
+
156
+
105
157
//**************************************************************************
106
158
//** Event Class
107
159
//**************************************************************************
@@ -116,12 +168,36 @@ public String getSubject(){
116
168
return get ("subject" ).toString ();
117
169
}
118
170
171
+ public void setSubject (String subject ){
172
+ set ("subject" , subject );
173
+ }
174
+
175
+ public void set (String key , Object val ){
176
+ for (String k : updatableKeys ){
177
+ if (key .equalsIgnoreCase (k )){
178
+ super .set (k , val );
179
+ break ;
180
+ }
181
+ }
182
+ }
183
+
119
184
public javaxt .utils .Date getStartDate (){
120
- return getDate ("start" );
185
+ return getDate ("start" ).clone ();
186
+ }
187
+
188
+ public void setStartDate (javaxt .utils .Date date ){
189
+ int duration = (int ) getEndDate ().compareTo (getStartDate (), "minutes" );
190
+ javaxt .utils .Date endDate = date .clone ().add (duration , "minutes" );
191
+ setDate ("start" , date );
192
+ setDate ("end" , endDate );
121
193
}
122
194
123
195
public javaxt .utils .Date getEndDate (){
124
- return getDate ("end" );
196
+ return getDate ("end" ).clone ();
197
+ }
198
+
199
+ public void setEndDate (javaxt .utils .Date date ){
200
+ setDate ("end" , date );
125
201
}
126
202
127
203
private javaxt .utils .Date getDate (String key ){
@@ -136,17 +212,27 @@ private javaxt.utils.Date getDate(String key){
136
212
return null ;
137
213
}
138
214
}
215
+
216
+ private void setDate (String key , javaxt .utils .Date date ){
217
+ JSONObject json = get (key ).toJSONObject ();
218
+ json .set ("dateTime" , date .toISOString ());
219
+ json .set ("timeZone" , "UTC" );
220
+ }
139
221
}
140
222
141
223
142
224
//**************************************************************************
143
225
//** getURL
144
226
//**************************************************************************
227
+ private String getURL (){
228
+ return getURL (null );
229
+ }
230
+
145
231
private String getURL (LinkedHashMap <String , String > params ){
146
232
String calendarID = getID ();
147
233
String url = "/users/" + userID + "/calendars/" + calendarID + "/events" ;
148
234
149
- if (!params .isEmpty ()){
235
+ if (params != null && !params .isEmpty ()){
150
236
151
237
//Update url
152
238
url += "?" ;
0 commit comments