IVLE 0.0.1
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/.gitignore +4 -0
- data/Gemfile +4 -0
- data/IVLE.gemspec +29 -0
- data/LICENSE +7 -0
- data/README.md +61 -0
- data/Rakefile +1 -0
- data/config/settings.yml +2 -0
- data/doc/Fixtures.html +167 -0
- data/doc/Fixtures/IVLE.html +213 -0
- data/doc/Gemfile.html +133 -0
- data/doc/IVLE.html +278 -0
- data/doc/IVLE/API.html +424 -0
- data/doc/IVLE/Announcement.html +309 -0
- data/doc/IVLE/Community.html +1305 -0
- data/doc/IVLE/Consultation.html +342 -0
- data/doc/IVLE/DeltaDatasets.html +213 -0
- data/doc/IVLE/Forum.html +533 -0
- data/doc/IVLE/Gradebook.html +213 -0
- data/doc/IVLE/IVLEModule.html +567 -0
- data/doc/IVLE/IVLENews.html +213 -0
- data/doc/IVLE/LibraryEReserves.html +245 -0
- data/doc/IVLE/Login.html +309 -0
- data/doc/IVLE/MyOrganizer.html +520 -0
- data/doc/IVLE/OpenWebcastLectures.html +247 -0
- data/doc/IVLE/Poll.html +309 -0
- data/doc/IVLE/Profile.html +213 -0
- data/doc/IVLE/RostersAndGroups.html +676 -0
- data/doc/IVLE/StudentEvents.html +378 -0
- data/doc/IVLE/Timetable.html +309 -0
- data/doc/IVLE/Webcast.html +247 -0
- data/doc/IVLE/Workbin.html +245 -0
- data/doc/Object.html +185 -0
- data/doc/Rakefile.html +131 -0
- data/doc/created.rid +26 -0
- data/doc/images/add.png +0 -0
- data/doc/images/brick.png +0 -0
- data/doc/images/brick_link.png +0 -0
- data/doc/images/bug.png +0 -0
- data/doc/images/bullet_black.png +0 -0
- data/doc/images/bullet_toggle_minus.png +0 -0
- data/doc/images/bullet_toggle_plus.png +0 -0
- data/doc/images/date.png +0 -0
- data/doc/images/delete.png +0 -0
- data/doc/images/find.png +0 -0
- data/doc/images/loadingAnimation.gif +0 -0
- data/doc/images/macFFBgHack.png +0 -0
- data/doc/images/package.png +0 -0
- data/doc/images/page_green.png +0 -0
- data/doc/images/page_white_text.png +0 -0
- data/doc/images/page_white_width.png +0 -0
- data/doc/images/plugin.png +0 -0
- data/doc/images/ruby.png +0 -0
- data/doc/images/tag_blue.png +0 -0
- data/doc/images/tag_green.png +0 -0
- data/doc/images/transparent.png +0 -0
- data/doc/images/wrench.png +0 -0
- data/doc/images/wrench_orange.png +0 -0
- data/doc/images/zoom.png +0 -0
- data/doc/index.html +126 -0
- data/doc/js/darkfish.js +155 -0
- data/doc/js/jquery.js +18 -0
- data/doc/js/navigation.js +142 -0
- data/doc/js/search.js +94 -0
- data/doc/js/search_index.js +1 -0
- data/doc/js/searcher.js +228 -0
- data/doc/rdoc.css +543 -0
- data/doc/table_of_contents.html +379 -0
- data/lib/IVLE.rb +133 -0
- data/lib/IVLE/api/announcement.rb +19 -0
- data/lib/IVLE/api/community.rb +174 -0
- data/lib/IVLE/api/consultation.rb +24 -0
- data/lib/IVLE/api/delta_datasets.rb +7 -0
- data/lib/IVLE/api/forum.rb +47 -0
- data/lib/IVLE/api/gradebook.rb +7 -0
- data/lib/IVLE/api/ivle_news.rb +7 -0
- data/lib/IVLE/api/library_ereserves.rb +11 -0
- data/lib/IVLE/api/login.rb +19 -0
- data/lib/IVLE/api/module.rb +53 -0
- data/lib/IVLE/api/my_organizer.rb +62 -0
- data/lib/IVLE/api/open_webcast_lectures.rb +13 -0
- data/lib/IVLE/api/poll.rb +19 -0
- data/lib/IVLE/api/profile.rb +7 -0
- data/lib/IVLE/api/rosters_and_groups.rb +78 -0
- data/lib/IVLE/api/student_events.rb +32 -0
- data/lib/IVLE/api/timetable.rb +19 -0
- data/lib/IVLE/api/webcast.rb +13 -0
- data/lib/IVLE/api/workbin.rb +11 -0
- data/lib/IVLE/version.rb +3 -0
- data/spec/api/api_spec.rb +34 -0
- data/spec/fixtures/api/login.html +11 -0
- data/spec/fixtures/api/modules.json +201 -0
- data/spec/fixtures/ivle.rb +7 -0
- data/spec/fixtures/modules.json +201 -0
- metadata +216 -0
@@ -0,0 +1,19 @@
|
|
1
|
+
module IVLE
|
2
|
+
module Announcement
|
3
|
+
def announcements(course_id, duration=0, title_only=false)
|
4
|
+
api 'Announcements', courseid: course_id, duration: duration, titleonly: title_only
|
5
|
+
end
|
6
|
+
|
7
|
+
def announcements_unread(title_only=false)
|
8
|
+
api 'Announcements_Unread'
|
9
|
+
end
|
10
|
+
|
11
|
+
def announcement_add_log(ann_event_id)
|
12
|
+
api_post 'Announcement_AddLog_JSON', anneventid: ann_event_id
|
13
|
+
end
|
14
|
+
|
15
|
+
def announcement_add(course_id, ann_title, ann_message, send_email)
|
16
|
+
api_post 'Announcement_Add_JSON', courseid: course_id, anntitle: ann_title, annmessage: ann_message, sendemail: send_email
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,174 @@
|
|
1
|
+
module IVLE
|
2
|
+
module Community
|
3
|
+
def communities(duration=0)
|
4
|
+
api 'Communities', duration: duration
|
5
|
+
end
|
6
|
+
|
7
|
+
def community_search(search_type, keyword, active_only=false, title_only=false)
|
8
|
+
api 'Community_Search', searchtype: search_type, keyword: keyword, activeonly: active_only, titleonly: title_only
|
9
|
+
end
|
10
|
+
|
11
|
+
def community_categories(active_only=false)
|
12
|
+
# Just look at this snake_CamelCase consistency!
|
13
|
+
api 'CommunityCategories', activeonly: active_only
|
14
|
+
end
|
15
|
+
|
16
|
+
def community_tags(active_only=false)
|
17
|
+
api 'CommunityTags', activeonly: active_only
|
18
|
+
end
|
19
|
+
|
20
|
+
def community(com_id, duration=0)
|
21
|
+
api 'Community', comid: com_id, duration: duration
|
22
|
+
end
|
23
|
+
|
24
|
+
def community_members(com_id)
|
25
|
+
api 'CommunityMembers', comid: com_id
|
26
|
+
end
|
27
|
+
|
28
|
+
def community_announcements(com_id, duration=0)
|
29
|
+
api 'CommunityAnnouncements', comid: com_id, duration: duration
|
30
|
+
end
|
31
|
+
|
32
|
+
def community_workbin_folders(com_id, including_files=true, duration=0)
|
33
|
+
api 'CommunityWorkbinFolders', comid: com_id, includingfiles: including_files, duration: duration
|
34
|
+
end
|
35
|
+
|
36
|
+
def community_workbin_files(folder_id, duration=0)
|
37
|
+
api 'CommunityWorkbinFiles', folderid: folder_id, duration: duration
|
38
|
+
end
|
39
|
+
|
40
|
+
def community_forum_headings(com_id, including_posts=true, duration=0)
|
41
|
+
api 'CommunityForumHeadings', comid: com_id, includingposts: including_posts, duration: duration
|
42
|
+
end
|
43
|
+
|
44
|
+
def community_forum_posts(heading_id, duration=0)
|
45
|
+
api 'CommunityForumPosts', headingid: heading_id, duration: duration
|
46
|
+
end
|
47
|
+
|
48
|
+
def community_forum_add_log_by_post(post_id)
|
49
|
+
api_post 'CommunityForum_AddLogByPost_JSON', postid: post_id
|
50
|
+
end
|
51
|
+
|
52
|
+
def community_forum_new_topic(heading_id, title, message)
|
53
|
+
api_post 'CommunityForum_NewTopic_JSON', headingid: heading_id, message: message
|
54
|
+
end
|
55
|
+
|
56
|
+
def community_forum_reply_post(post_id, title, message)
|
57
|
+
api_post 'CommunityForum_ReplyPost_JSON', postid: post_id, title: title, message: message
|
58
|
+
end
|
59
|
+
|
60
|
+
def community_weblinks(com_id)
|
61
|
+
api 'CommunityWeblinks', comid: com_id
|
62
|
+
end
|
63
|
+
|
64
|
+
def community_join(com_id)
|
65
|
+
api_post 'Community_Join_JSON', comid: com_id
|
66
|
+
end
|
67
|
+
|
68
|
+
def community_quit(com_id)
|
69
|
+
api_post 'Community_Quit_JSON', comid: com_id
|
70
|
+
end
|
71
|
+
|
72
|
+
def community_add_member(com_id, member_id, member_type)
|
73
|
+
api_post 'Community_AddMember_JSON', comid: com_id, memberid: member_id, membertype: member_type
|
74
|
+
end
|
75
|
+
|
76
|
+
def community_delete_member(com_id, member_id)
|
77
|
+
api_post 'Community_DeleteMember_JSON', comid: com_id, memberid: member_id
|
78
|
+
end
|
79
|
+
def community_update_member(com_id, member_id, member_type)
|
80
|
+
api_post 'Community_UpdateMember_JSON', comid: com_id, memberid: member_id, membertype: member_type
|
81
|
+
end
|
82
|
+
|
83
|
+
def community_create(title, description, access_type, default_forum, default_workbin, category_id, tags)
|
84
|
+
api_post 'Community_Create_JSON', {
|
85
|
+
title: title,
|
86
|
+
accesstype: access_type,
|
87
|
+
defaultforum: default_forum,
|
88
|
+
defaultworkbin: default_workbin,
|
89
|
+
categoryid: category_id,
|
90
|
+
tags: tags
|
91
|
+
}
|
92
|
+
end
|
93
|
+
|
94
|
+
def community_update(com_id, title, description, access_type, default_forum, default_workbin, category_id, tags, display_members_to, opening_date, expiry_date)
|
95
|
+
api_post 'Community_Update_JSON', {
|
96
|
+
comid: com_id,
|
97
|
+
title: title,
|
98
|
+
description: description,
|
99
|
+
accesstype: access_type,
|
100
|
+
defaultforum: default_forum,
|
101
|
+
defaultworkbin: default_workbin,
|
102
|
+
categoryid: category_id,
|
103
|
+
tags: tags,
|
104
|
+
displaymembersto: display_members_to,
|
105
|
+
openingdate: opening_date,
|
106
|
+
expirydate: expiry_date
|
107
|
+
}
|
108
|
+
end
|
109
|
+
|
110
|
+
def download_file(id)
|
111
|
+
api 'downloadfile', id: id
|
112
|
+
end
|
113
|
+
|
114
|
+
def community_get_task(task_id)
|
115
|
+
api 'Community_GetTask', taskid: task_id
|
116
|
+
end
|
117
|
+
|
118
|
+
def community_get_all_tasks(com_id)
|
119
|
+
api 'Community_GetAllTasks', comid: com_id
|
120
|
+
end
|
121
|
+
|
122
|
+
def community_get_sub_task(task_id)
|
123
|
+
api 'Community_GetSubTask', taskid: task_id
|
124
|
+
end
|
125
|
+
|
126
|
+
def community_create_task(com_id, task_name, task_description, parent_task_id, task_status, task_priority, task_due_date)
|
127
|
+
api_post 'Community_CreateTask_JSON', {
|
128
|
+
comid: com_id,
|
129
|
+
taskname: task_name,
|
130
|
+
taskdescription: task_description,
|
131
|
+
parenttaskid: parent_task_id,
|
132
|
+
taskstatus: task_status,
|
133
|
+
taskpriority: task_priority,
|
134
|
+
taskduedate: task_due_date
|
135
|
+
}
|
136
|
+
end
|
137
|
+
|
138
|
+
def community_update_task(task_id, task_name, task_description, parent_task_id, task_status, task_priority, task_due_date)
|
139
|
+
api_post 'Community_UpdateTask_JSON', {
|
140
|
+
taskid: com_id,
|
141
|
+
taskname: task_name,
|
142
|
+
taskdescription: task_description,
|
143
|
+
parenttaskid: parent_task_id,
|
144
|
+
taskstatus: task_status,
|
145
|
+
taskpriority: task_priority,
|
146
|
+
taskduedate: task_due_date
|
147
|
+
}
|
148
|
+
end
|
149
|
+
|
150
|
+
def community_delete_task(task_id)
|
151
|
+
api_post 'Community_DeleteTask_JSON', taskid: task_id
|
152
|
+
end
|
153
|
+
|
154
|
+
def community_create_comment(task_id, comment)
|
155
|
+
api_post 'Community_CreateComment_JSON', taskid: task_id, comment: comment
|
156
|
+
end
|
157
|
+
|
158
|
+
def community_update_comment(comment_id, comment)
|
159
|
+
api_post 'Commmunity_UpdateComment_JSON', commentid: comment_id, comment: comment
|
160
|
+
end
|
161
|
+
|
162
|
+
def community_delete_comment(comment_id)
|
163
|
+
api_post 'Community_DeleteComment_JSON', commentid: comment_id
|
164
|
+
end
|
165
|
+
|
166
|
+
def community_get_comment(comment_id)
|
167
|
+
api 'Community_GetComment', commentid: comment_id
|
168
|
+
end
|
169
|
+
|
170
|
+
def community_get_all_comments(task_id)
|
171
|
+
api 'Community_GetAllComments', taskid: task_id
|
172
|
+
end
|
173
|
+
end
|
174
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module IVLE
|
2
|
+
module Consultation
|
3
|
+
def consultation_module_facilitators_with_slots(course_id, include_slots, slot_type)
|
4
|
+
api 'Consultation_ModuleFacilitatorsWithSlots', courseid: course_id, includeslots: include_slots, slottype: slot_type
|
5
|
+
end
|
6
|
+
|
7
|
+
def consultation_slots(lec_id, slot_type)
|
8
|
+
api 'ConsultationSlots', lecid: lec_id, slottype: slot_type
|
9
|
+
end
|
10
|
+
|
11
|
+
def consultation_signed_up_slots
|
12
|
+
api 'Consultation_SignedUpSlots'
|
13
|
+
end
|
14
|
+
|
15
|
+
def consultation_sign_up(consultation_id)
|
16
|
+
# WTF is this? Gosh, just pass in an additional format parameter!
|
17
|
+
api_post 'Consultation_SignUp_JSON', consultationid: consultation_id
|
18
|
+
end
|
19
|
+
|
20
|
+
def consultation_cancel_slot(consultation_id)
|
21
|
+
api_post 'Consultation_CancelSlot_JSON', consultationid: consultation_id
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
module IVLE
|
2
|
+
module Forum
|
3
|
+
def forums(course_id, duration=0, include_threads=true, title_only=false)
|
4
|
+
api 'Forums', courseid: course_id, duration: duration, includethreads: include_threads, titleonly: title_only
|
5
|
+
end
|
6
|
+
|
7
|
+
def forum(forum_id, duration=0, include_threads=true)
|
8
|
+
api 'Forum', forumid: forum_id, duration: duration, includethreads: include_threads
|
9
|
+
end
|
10
|
+
|
11
|
+
def forum_headings(forum_id, duration=0, include_threads=true)
|
12
|
+
api 'Announcement_AddLog', forumid: forum_id, duration: duration, includethreads: include_threads
|
13
|
+
end
|
14
|
+
|
15
|
+
def forum_heading_threads(heading_id, duration=0, get_main_topics_only=false)
|
16
|
+
api 'Forum_HeadingThreads', headingid: heading_id, duration: duration, getmaintopicsonly: get_main_topics_only
|
17
|
+
end
|
18
|
+
|
19
|
+
def forum_threads(forum_id, duration=0, get_sub_threads=true)
|
20
|
+
api 'Forum_Threads', threadid: thread_id, duration: duration, getsubthreads: get_sub_threads
|
21
|
+
end
|
22
|
+
|
23
|
+
def forum_thread(thread_id)
|
24
|
+
api 'Forum_Thread', threadid: thread_id
|
25
|
+
end
|
26
|
+
|
27
|
+
def forum_post_new_thread(heading_id, title, reply)
|
28
|
+
api_post 'Forum_PostNewThread_JSON', headingid: heading_id, title: title, reply: reply
|
29
|
+
end
|
30
|
+
|
31
|
+
def forum_reply_thread(thread_id, title, reply)
|
32
|
+
api_post 'Forum_ReplyThread_JSON', threadid: thread_id, title: title, reply: reply
|
33
|
+
end
|
34
|
+
|
35
|
+
def forum_thread_add_log(thread_id)
|
36
|
+
api_post 'Forum_Thread_AddLog_JSON', threadid: thread_id
|
37
|
+
end
|
38
|
+
|
39
|
+
def forum_sale_of_used_textbooks(duration=0, include_threads=true)
|
40
|
+
api 'Forum_SaleOfUsedTextbooks', includethreads: include_threads, duration: duration
|
41
|
+
end
|
42
|
+
|
43
|
+
def forum_student_feedback(duration=0, include_threads=true)
|
44
|
+
api 'Forum_StudentFeedback', includethreads: include_threads, duration: duration
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
module IVLE
|
2
|
+
module LibraryEReserves
|
3
|
+
def lib_ereserves(course_id, title_only=false)
|
4
|
+
api 'LibEreserves', courseid: course_id, titleonly: title_only
|
5
|
+
end
|
6
|
+
|
7
|
+
def lib_ereserve_files(folder_id)
|
8
|
+
api 'LibEreserveFiles', folderid: folder_id
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module IVLE
|
2
|
+
module Login
|
3
|
+
def validate(api_key, token)
|
4
|
+
api 'Validate', apikey: api_key, token: token
|
5
|
+
end
|
6
|
+
|
7
|
+
def username_get(api_key, token)
|
8
|
+
api 'UserName_Get', apikey: api_key, token: token
|
9
|
+
end
|
10
|
+
|
11
|
+
def userid_get(api_key, token)
|
12
|
+
api 'UserID_Get', apikey: api_key, token: token
|
13
|
+
end
|
14
|
+
|
15
|
+
def useremail_get(api_key, token)
|
16
|
+
api 'UserEmail_Get', apikey: api_key, token: token
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
module IVLE
|
2
|
+
module IVLEModule
|
3
|
+
def modules(duration=0, include_all_info=true)
|
4
|
+
api 'Modules', duration: duration, includeallinfo: include_all_info
|
5
|
+
end
|
6
|
+
|
7
|
+
def modules_staff(duration=0, include_all_info=true)
|
8
|
+
api 'Modules_Staff', duration: duration, includeallinfo: include_all_info
|
9
|
+
end
|
10
|
+
|
11
|
+
def modules_student(duration=0, include_all_info=true)
|
12
|
+
api 'Modules_Student', duration: duration, includeallinfo: include_all_info
|
13
|
+
end
|
14
|
+
|
15
|
+
def module(course_id, title_only=false, duration=0, include_all_info=true)
|
16
|
+
api 'Module', courseid: course_id, titleonly: title_only, duration: duration, includeallinfo: include_all_info
|
17
|
+
end
|
18
|
+
|
19
|
+
def modules_search(search_parameters={}, duration=0, include_all_info=true)
|
20
|
+
# Verbatim from API docs: AuthToken, ModuleCode, ModuleTitle, LecturerName, Department, Semester, AcadYear, ModNameExact,
|
21
|
+
# LecNameExact, tag are optional fields. But at least one must be supplied.
|
22
|
+
api 'Modules_Search', search_parameters.merge({ duration: duration, includeallinfo: include_all_info })
|
23
|
+
end
|
24
|
+
|
25
|
+
def module_lecturers(course_id, duration=0)
|
26
|
+
api 'Module_Lecturers', courseid: course_id, duration: duration
|
27
|
+
end
|
28
|
+
|
29
|
+
def module_information(course_id, duration=0)
|
30
|
+
api 'Module_Information', courseid: course_id, duration: duration
|
31
|
+
end
|
32
|
+
|
33
|
+
def module_weblinks(course_id)
|
34
|
+
api 'Module_Weblinks', courseid: course_id
|
35
|
+
end
|
36
|
+
|
37
|
+
def module_reading_formatted(course_id, duration=0)
|
38
|
+
api 'Module_ReadingFormatted', courseid: course_id, duration: duration
|
39
|
+
end
|
40
|
+
|
41
|
+
def module_reading_unformatted(course_id, duration=0)
|
42
|
+
api 'Module_ReadingUnformatted', courseid: course_id, duration: duration
|
43
|
+
end
|
44
|
+
|
45
|
+
def module_reading(course_id, duration=0)
|
46
|
+
api 'Module_Reading', courseid: course_id, duration: duration
|
47
|
+
end
|
48
|
+
|
49
|
+
def modules_taken(student_id)
|
50
|
+
api 'Modules_Taken', studentid: student_id
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
module IVLE
|
2
|
+
module MyOrganizer
|
3
|
+
def my_organizer_personal(start_date=nil, end_date=nil)
|
4
|
+
api 'MyOrganizer_Personal', startdate: start_date, enddate: end_date
|
5
|
+
end
|
6
|
+
|
7
|
+
def my_organizer_ivle(start_date=nil, end_date=nil)
|
8
|
+
api 'MyOrganizer_IVLE', startdate: start_date, enddate: end_date
|
9
|
+
end
|
10
|
+
|
11
|
+
def my_organizer_events(start_date=nil, end_date=nil)
|
12
|
+
api 'MyOrganizer_Events', startdate: start_date, enddate: end_date
|
13
|
+
end
|
14
|
+
|
15
|
+
def my_organizer_add_personal_event(event_title, venue, event_date_time, description, recur_type, str_days, recur_till_date)
|
16
|
+
api_post 'MyOrganizer_AddPersonalEvent_JSON', {
|
17
|
+
eventtitle: event_title,
|
18
|
+
venue: venue,
|
19
|
+
eventdatetime: event_date_time,
|
20
|
+
description: description,
|
21
|
+
recurtype: recur_type,
|
22
|
+
recurtilldate: recur_till_date
|
23
|
+
}
|
24
|
+
end
|
25
|
+
|
26
|
+
def my_organizer_update_personal_event(event_id, event_title, venue, event_date_time, description, recur_type, weekly_recur_every, str_days, recur_from_date, recur_till_date, update_recurrence_event)
|
27
|
+
api_post 'MyOrganizer_UpdatePersonalEvent_JSON', {
|
28
|
+
eventid: event_id,
|
29
|
+
eventtitle: event_title,
|
30
|
+
venue: venue,
|
31
|
+
eventdatetime: event_date_time,
|
32
|
+
description: description,
|
33
|
+
recurtype: recur_type,
|
34
|
+
weeklyrecurevery: weekly_recur_every,
|
35
|
+
strdays: str_days,
|
36
|
+
recurfromdate: recur_from_date,
|
37
|
+
recurtilldate: recur_till_date,
|
38
|
+
updaterecurrenceevent: update_recurrence_event
|
39
|
+
}
|
40
|
+
end
|
41
|
+
|
42
|
+
def my_organizer_delete_personal_event(event_id, delete_all_recurrence=true)
|
43
|
+
api_post 'MyOrganizer_DeletePersonalEvent_JSON', eventid: event_id, deleteallrecurrence: delete_all_recurrence
|
44
|
+
end
|
45
|
+
|
46
|
+
def my_organizer_special_days(start_date=nil, end_date=nil)
|
47
|
+
api 'MyOrganizer_SpecialDays', startdate: start_date, enddate: end_date
|
48
|
+
end
|
49
|
+
|
50
|
+
def my_organizer_acad_semester_info(acad_year, semester)
|
51
|
+
api 'MyOrganizer_AcadSemesterInfo', acadyear: acad_year, semester: semester
|
52
|
+
end
|
53
|
+
|
54
|
+
def timetable_student(acad_year, semester)
|
55
|
+
api 'Timetable_Student', acadyear: acad_year, semester: semester
|
56
|
+
end
|
57
|
+
|
58
|
+
def code_table_week_types
|
59
|
+
api 'CodeTable_WeekTypes'
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module IVLE
|
2
|
+
module OpenWebcastLectures
|
3
|
+
def open_webcasts(acad_year, semester, title_only=false, media_channel_id=nil)
|
4
|
+
params = { acadyear: acad_year, semester: semester, titleonly: title_only }
|
5
|
+
params.merge!({ mediachannelid: media_channel_id }) unless media_channel_id.nil?
|
6
|
+
api 'OpenWebcasts', params
|
7
|
+
end
|
8
|
+
|
9
|
+
def open_webcast_add_log(media_channel_id, media_channel_item_id)
|
10
|
+
api_post 'OpenWebcast_AddLog_JSON', mediachannelid: media_channel_id, mediachannelitemid: media_channel_item_id
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|