Skip to content

Commit a2f9a70

Browse files
committed
Added new methods to create, edit, and delete Events in the Calendar class
1 parent fc6942c commit a2f9a70

File tree

1 file changed

+89
-3
lines changed

1 file changed

+89
-3
lines changed

src/javaxt/azure/graph/Calendar.java

Lines changed: 89 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,58 @@ private ArrayList<Event> getEvents(LinkedHashMap<String, String> params) throws
102102
}
103103

104104

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+
105157
//**************************************************************************
106158
//** Event Class
107159
//**************************************************************************
@@ -116,12 +168,36 @@ public String getSubject(){
116168
return get("subject").toString();
117169
}
118170

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+
119184
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);
121193
}
122194

123195
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);
125201
}
126202

127203
private javaxt.utils.Date getDate(String key){
@@ -136,17 +212,27 @@ private javaxt.utils.Date getDate(String key){
136212
return null;
137213
}
138214
}
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+
}
139221
}
140222

141223

142224
//**************************************************************************
143225
//** getURL
144226
//**************************************************************************
227+
private String getURL(){
228+
return getURL(null);
229+
}
230+
145231
private String getURL(LinkedHashMap<String, String> params){
146232
String calendarID = getID();
147233
String url = "/users/" + userID + "/calendars/" + calendarID + "/events";
148234

149-
if (!params.isEmpty()){
235+
if (params!=null && !params.isEmpty()){
150236

151237
//Update url
152238
url += "?";

0 commit comments

Comments
 (0)