org.deepamehta.plugins.moodle
Class MoodleServiceClient
java.lang.Object
de.deepamehta.core.osgi.PluginActivator
org.deepamehta.plugins.moodle.MoodleServiceClient
- All Implemented Interfaces:
- de.deepamehta.core.osgi.PluginContext, de.deepamehta.core.service.event.AllPluginsActiveListener, de.deepamehta.core.service.EventListener, de.deepamehta.plugins.accesscontrol.event.PostLoginUserListener, org.osgi.framework.BundleActivator
public class MoodleServiceClient
- extends de.deepamehta.core.osgi.PluginActivator
- implements de.deepamehta.plugins.accesscontrol.event.PostLoginUserListener, de.deepamehta.core.service.event.AllPluginsActiveListener
A webservice-client enabling collaborative mapping on course-materials (and more) for any moodle
(2.4+) course. A very simple plugin to connect users of DeepaMehta 4 with a moodle installation.
- Version:
- 1.2.1-SNAPSHOT
- Author:
- Malte Reißig ()
Fields inherited from class de.deepamehta.core.osgi.PluginActivator |
bundle, dms |
Method Summary |
void |
allPluginsActive()
|
private de.deepamehta.core.Association |
assignDefaultAuthorship(de.deepamehta.core.Topic item)
|
private void |
assignToMoodleWorkspace(de.deepamehta.core.Topic topic)
|
private boolean |
associationExists(String edge_type,
de.deepamehta.core.Topic item,
de.deepamehta.core.Topic user)
|
private String |
callMoodle(String key,
String functionName,
String params)
|
private de.deepamehta.core.Topic |
checkAuthorization()
|
private void |
createAggregatingCourseEdge(de.deepamehta.core.Topic courseTopic,
de.deepamehta.core.Topic sectionTopic)
|
private void |
createAggregatingSectionEdge(de.deepamehta.core.Topic sectionTopic,
de.deepamehta.core.Topic itemTopic)
|
private de.deepamehta.core.Topic |
createMoodleCourseTopic(org.codehaus.jettison.json.JSONObject object)
|
private de.deepamehta.core.Topic |
createMoodleItemTopic(org.codehaus.jettison.json.JSONObject object,
List<de.deepamehta.core.Topic> hashtags)
|
private de.deepamehta.core.Topic |
createMoodleSectionTopic(org.codehaus.jettison.json.JSONObject object,
int nr)
|
private void |
createParticipantEdge(de.deepamehta.core.Topic courseTopic,
de.deepamehta.core.Topic userAccount)
|
private String |
createYoutubeEmbedUrl(String fileUrl)
|
private de.deepamehta.core.Topic |
fetchAndSetMoodleUserId(de.deepamehta.core.Topic userAccount)
Fetches and relates the internal moodle-user-id to our currently logged-in user-account. |
private de.deepamehta.core.Topic |
getCourseContentsWithoutAuth(long topicId,
String token,
List<de.deepamehta.core.Topic> hashtags)
|
private de.deepamehta.core.Topic |
getJavaKeyStorePass()
|
private de.deepamehta.core.Topic |
getJavaKeyStorePath()
|
private de.deepamehta.core.service.ResultList<de.deepamehta.core.RelatedTopic> |
getMoodleCoursesByUser(de.deepamehta.core.Topic user)
|
private de.deepamehta.core.Topic |
getMoodleCoursesWithoutAuth(de.deepamehta.core.Topic userAccount,
long moodleUserId,
String token)
|
private de.deepamehta.core.Topic |
getMoodleCourseTopic(long courseId)
|
private de.deepamehta.core.Topic |
getMoodleEndpointUrl()
|
private de.deepamehta.core.Topic |
getMoodleItemTopic(long itemId)
|
private de.deepamehta.core.Topic |
getMoodleSectionTopic(long sectionId)
|
String |
getMoodleSecurityKey()
|
private String |
getMoodleSecurityKeyWithoutAuthCheck(de.deepamehta.core.Topic userAccount)
|
private long |
getMoodleUserId(de.deepamehta.core.Topic userAccount)
|
private de.deepamehta.core.Topic |
getUserAccountTopic(String username)
|
private boolean |
hasAggregatingCourseParentEdge(de.deepamehta.core.Topic child,
de.deepamehta.core.Topic parent)
|
private boolean |
hasAggregatingSectionParentEdge(de.deepamehta.core.Topic child,
de.deepamehta.core.Topic parent)
|
private boolean |
hasAnyWorkspace(de.deepamehta.core.Topic topic)
|
private boolean |
hasParticipantEdge(de.deepamehta.core.Topic course,
de.deepamehta.core.Topic user)
|
void |
init()
|
private boolean |
isHTTPSConfigured()
|
private de.deepamehta.core.model.CompositeValueModel |
parseGenericsToItemModel(org.codehaus.jettison.json.JSONObject object)
|
private de.deepamehta.core.model.CompositeValueModel |
parseResourceToItemModel(de.deepamehta.core.model.CompositeValueModel model,
org.codehaus.jettison.json.JSONObject resource)
|
private de.deepamehta.core.model.CompositeValueModel |
parseTimestampsToItemModel(de.deepamehta.core.model.CompositeValueModel model,
org.codehaus.jettison.json.JSONObject item)
|
void |
postLoginUser(String username)
|
void |
serviceArrived(de.deepamehta.core.service.PluginService service)
|
void |
serviceGone(de.deepamehta.core.service.PluginService service)
|
private de.deepamehta.core.DeepaMehtaObject |
setDefaultMoodleAdminACLEntries(de.deepamehta.core.DeepaMehtaObject item)
|
private de.deepamehta.core.DeepaMehtaObject |
setDefaultMoodleGroupACLEntries(de.deepamehta.core.DeepaMehtaObject item)
|
String |
setMoodleSecurityKey(int id,
String input)
Relates the moodle-security-key to our currently logged-in user-account. |
private boolean |
setMoodleUserId(de.deepamehta.core.Topic userAccount,
long moodleUserId)
|
String |
startMoodleSynchronization(String username)
|
private void |
startSynchronizationThreadFor(de.deepamehta.core.Topic user)
|
private de.deepamehta.core.Topic |
updateMoodleCourseTopic(de.deepamehta.core.Topic course,
org.codehaus.jettison.json.JSONObject object)
|
private de.deepamehta.core.Topic |
updateMoodleItemTopic(de.deepamehta.core.Topic item,
de.deepamehta.core.Topic courseTopic,
org.codehaus.jettison.json.JSONObject object)
|
private de.deepamehta.core.Topic |
updateMoodleSectionTopic(de.deepamehta.core.Topic section,
org.codehaus.jettison.json.JSONObject object)
|
Methods inherited from class de.deepamehta.core.osgi.PluginActivator |
getBundleContext, getUri, postInstall, publishDirectory, setCoreService, shutdown, start, stop, toString |
log
private static Logger log
aclService
private de.deepamehta.plugins.accesscontrol.service.AccessControlService aclService
WS_MOODLE_NAME
public static final String WS_MOODLE_NAME
- See Also:
- Constant Field Values
WS_MOODLE_URI
public static final String WS_MOODLE_URI
- See Also:
- Constant Field Values
MOODLE_PARTICIPANT_EDGE
public static final String MOODLE_PARTICIPANT_EDGE
- See Also:
- Constant Field Values
MOODLE_COURSE_URI
public static final String MOODLE_COURSE_URI
- See Also:
- Constant Field Values
MOODLE_COURSE_NAME_URI
public static final String MOODLE_COURSE_NAME_URI
- See Also:
- Constant Field Values
MOODLE_COURSE_SHORT_NAME_URI
public static final String MOODLE_COURSE_SHORT_NAME_URI
- See Also:
- Constant Field Values
MOODLE_SECTION_URI
public static final String MOODLE_SECTION_URI
- See Also:
- Constant Field Values
MOODLE_SECTION_NAME_URI
public static final String MOODLE_SECTION_NAME_URI
- See Also:
- Constant Field Values
MOODLE_SECTION_SUMMARY_URI
public static final String MOODLE_SECTION_SUMMARY_URI
- See Also:
- Constant Field Values
MOODLE_SECTION_ORDINAL_NR
public static final String MOODLE_SECTION_ORDINAL_NR
- See Also:
- Constant Field Values
MOODLE_ITEM_URI
public static final String MOODLE_ITEM_URI
- See Also:
- Constant Field Values
MOODLE_ITEM_NAME_URI
public static final String MOODLE_ITEM_NAME_URI
- See Also:
- Constant Field Values
MOODLE_ITEM_ICON_URI
public static final String MOODLE_ITEM_ICON_URI
- See Also:
- Constant Field Values
MOODLE_ITEM_REMOTE_URL_URI
public static final String MOODLE_ITEM_REMOTE_URL_URI
- See Also:
- Constant Field Values
MOODLE_ITEM_MEDIA_TYPE_URI
public static final String MOODLE_ITEM_MEDIA_TYPE_URI
- See Also:
- Constant Field Values
MOODLE_ITEM_DESC_URI
public static final String MOODLE_ITEM_DESC_URI
- See Also:
- Constant Field Values
MOODLE_ITEM_HREF_URI
public static final String MOODLE_ITEM_HREF_URI
- See Also:
- Constant Field Values
MOODLE_ITEM_TYPE_URI
public static final String MOODLE_ITEM_TYPE_URI
- See Also:
- Constant Field Values
MOODLE_ITEM_MODIFIED_URI
public static final String MOODLE_ITEM_MODIFIED_URI
- See Also:
- Constant Field Values
MOODLE_ITEM_CREATED_URI
public static final String MOODLE_ITEM_CREATED_URI
- See Also:
- Constant Field Values
MOODLE_ITEM_AUTHOR_URI
public static final String MOODLE_ITEM_AUTHOR_URI
- See Also:
- Constant Field Values
MOODLE_ITEM_LICENSE_URI
public static final String MOODLE_ITEM_LICENSE_URI
- See Also:
- Constant Field Values
MOODLE_ITEM_SIZE_URI
public static final String MOODLE_ITEM_SIZE_URI
- See Also:
- Constant Field Values
PLUGIN_URI_TAGGING_NOTES
public static final String PLUGIN_URI_TAGGING_NOTES
- See Also:
- Constant Field Values
ISIS_COURSE_URI_PREFIX
public static final String ISIS_COURSE_URI_PREFIX
- See Also:
- Constant Field Values
ISIS_SECTION_URI_PREFIX
public static final String ISIS_SECTION_URI_PREFIX
- See Also:
- Constant Field Values
ISIS_ITEM_URI_PREFIX
public static final String ISIS_ITEM_URI_PREFIX
- See Also:
- Constant Field Values
CLIENT_OPTION_ENDPOINT_URL_URI
private final String CLIENT_OPTION_ENDPOINT_URL_URI
- See Also:
- Constant Field Values
CLIENT_OPTION_USE_HTTPS
private final String CLIENT_OPTION_USE_HTTPS
- See Also:
- Constant Field Values
CLIENT_OPTION_JAVA_KEY_STORE_PATH
private final String CLIENT_OPTION_JAVA_KEY_STORE_PATH
- See Also:
- Constant Field Values
CLIENT_OPTION_JAVA_KEY_STORE_PASS
private final String CLIENT_OPTION_JAVA_KEY_STORE_PASS
- See Also:
- Constant Field Values
USERNAME_OF_SETTINGS_ADMINISTRATOR
private final String USERNAME_OF_SETTINGS_ADMINISTRATOR
- See Also:
- Constant Field Values
MOODLE_SECURITY_KEY_URI
private final String MOODLE_SECURITY_KEY_URI
- See Also:
- Constant Field Values
MOODLE_USER_ID_URI
private final String MOODLE_USER_ID_URI
- See Also:
- Constant Field Values
MOODLE_SERVICE_NAME
private final String MOODLE_SERVICE_NAME
- See Also:
- Constant Field Values
MOODLE_SERVICE_FORMAT
private final String MOODLE_SERVICE_FORMAT
- See Also:
- Constant Field Values
DEFAULT_ROLE_TYPE_URI
private final String DEFAULT_ROLE_TYPE_URI
- See Also:
- Constant Field Values
CHILD_ROLE_TYPE_URI
private final String CHILD_ROLE_TYPE_URI
- See Also:
- Constant Field Values
PARENT_ROLE_TYPE_URI
private final String PARENT_ROLE_TYPE_URI
- See Also:
- Constant Field Values
AGGREGATION_TYPE_URI
private final String AGGREGATION_TYPE_URI
- See Also:
- Constant Field Values
COMPOSITION_TYPE_URI
private final String COMPOSITION_TYPE_URI
- See Also:
- Constant Field Values
USER_ACCOUNT_TYPE_URI
private final String USER_ACCOUNT_TYPE_URI
- See Also:
- Constant Field Values
USER_NAME_TYPE_URI
private final String USER_NAME_TYPE_URI
- See Also:
- Constant Field Values
CHILD_URI
private final String CHILD_URI
- See Also:
- Constant Field Values
PARENT_URI
private final String PARENT_URI
- See Also:
- Constant Field Values
TAG_URI
private final String TAG_URI
- See Also:
- Constant Field Values
REVIEW_SCORE_URI
private final String REVIEW_SCORE_URI
- See Also:
- Constant Field Values
MoodleServiceClient
public MoodleServiceClient()
init
public void init()
- Specified by:
init
in interface de.deepamehta.core.osgi.PluginContext
- Overrides:
init
in class de.deepamehta.core.osgi.PluginActivator
serviceArrived
public void serviceArrived(de.deepamehta.core.service.PluginService service)
- Specified by:
serviceArrived
in interface de.deepamehta.core.osgi.PluginContext
- Overrides:
serviceArrived
in class de.deepamehta.core.osgi.PluginActivator
serviceGone
public void serviceGone(de.deepamehta.core.service.PluginService service)
- Specified by:
serviceGone
in interface de.deepamehta.core.osgi.PluginContext
- Overrides:
serviceGone
in class de.deepamehta.core.osgi.PluginActivator
postLoginUser
public void postLoginUser(String username)
- Specified by:
postLoginUser
in interface de.deepamehta.plugins.accesscontrol.event.PostLoginUserListener
allPluginsActive
public void allPluginsActive()
- Specified by:
allPluginsActive
in interface de.deepamehta.core.service.event.AllPluginsActiveListener
setMoodleSecurityKey
public String setMoodleSecurityKey(int id,
String input)
- Relates the moodle-security-key to our currently logged-in user-account.
getMoodleSecurityKey
public String getMoodleSecurityKey()
startMoodleSynchronization
public String startMoodleSynchronization(String username)
checkAuthorization
private de.deepamehta.core.Topic checkAuthorization()
setMoodleUserId
private boolean setMoodleUserId(de.deepamehta.core.Topic userAccount,
long moodleUserId)
startSynchronizationThreadFor
private void startSynchronizationThreadFor(de.deepamehta.core.Topic user)
fetchAndSetMoodleUserId
private de.deepamehta.core.Topic fetchAndSetMoodleUserId(de.deepamehta.core.Topic userAccount)
throws javax.ws.rs.WebApplicationException
- Fetches and relates the internal moodle-user-id to our currently logged-in user-account.
- Throws:
javax.ws.rs.WebApplicationException
getMoodleCoursesWithoutAuth
private de.deepamehta.core.Topic getMoodleCoursesWithoutAuth(de.deepamehta.core.Topic userAccount,
long moodleUserId,
String token)
getCourseContentsWithoutAuth
private de.deepamehta.core.Topic getCourseContentsWithoutAuth(long topicId,
String token,
List<de.deepamehta.core.Topic> hashtags)
callMoodle
private String callMoodle(String key,
String functionName,
String params)
throws MoodleConnectionException
- Throws:
MoodleConnectionException
createParticipantEdge
private void createParticipantEdge(de.deepamehta.core.Topic courseTopic,
de.deepamehta.core.Topic userAccount)
createAggregatingCourseEdge
private void createAggregatingCourseEdge(de.deepamehta.core.Topic courseTopic,
de.deepamehta.core.Topic sectionTopic)
createAggregatingSectionEdge
private void createAggregatingSectionEdge(de.deepamehta.core.Topic sectionTopic,
de.deepamehta.core.Topic itemTopic)
createMoodleCourseTopic
private de.deepamehta.core.Topic createMoodleCourseTopic(org.codehaus.jettison.json.JSONObject object)
updateMoodleCourseTopic
private de.deepamehta.core.Topic updateMoodleCourseTopic(de.deepamehta.core.Topic course,
org.codehaus.jettison.json.JSONObject object)
createMoodleSectionTopic
private de.deepamehta.core.Topic createMoodleSectionTopic(org.codehaus.jettison.json.JSONObject object,
int nr)
updateMoodleSectionTopic
private de.deepamehta.core.Topic updateMoodleSectionTopic(de.deepamehta.core.Topic section,
org.codehaus.jettison.json.JSONObject object)
createMoodleItemTopic
private de.deepamehta.core.Topic createMoodleItemTopic(org.codehaus.jettison.json.JSONObject object,
List<de.deepamehta.core.Topic> hashtags)
updateMoodleItemTopic
private de.deepamehta.core.Topic updateMoodleItemTopic(de.deepamehta.core.Topic item,
de.deepamehta.core.Topic courseTopic,
org.codehaus.jettison.json.JSONObject object)
parseGenericsToItemModel
private de.deepamehta.core.model.CompositeValueModel parseGenericsToItemModel(org.codehaus.jettison.json.JSONObject object)
throws org.codehaus.jettison.json.JSONException
- Throws:
org.codehaus.jettison.json.JSONException
parseResourceToItemModel
private de.deepamehta.core.model.CompositeValueModel parseResourceToItemModel(de.deepamehta.core.model.CompositeValueModel model,
org.codehaus.jettison.json.JSONObject resource)
throws org.codehaus.jettison.json.JSONException
- Throws:
org.codehaus.jettison.json.JSONException
parseTimestampsToItemModel
private de.deepamehta.core.model.CompositeValueModel parseTimestampsToItemModel(de.deepamehta.core.model.CompositeValueModel model,
org.codehaus.jettison.json.JSONObject item)
throws org.codehaus.jettison.json.JSONException
- Throws:
org.codehaus.jettison.json.JSONException
createYoutubeEmbedUrl
private String createYoutubeEmbedUrl(String fileUrl)
getUserAccountTopic
private de.deepamehta.core.Topic getUserAccountTopic(String username)
getMoodleUserId
private long getMoodleUserId(de.deepamehta.core.Topic userAccount)
getMoodleEndpointUrl
private de.deepamehta.core.Topic getMoodleEndpointUrl()
getJavaKeyStorePath
private de.deepamehta.core.Topic getJavaKeyStorePath()
getJavaKeyStorePass
private de.deepamehta.core.Topic getJavaKeyStorePass()
isHTTPSConfigured
private boolean isHTTPSConfigured()
getMoodleCoursesByUser
private de.deepamehta.core.service.ResultList<de.deepamehta.core.RelatedTopic> getMoodleCoursesByUser(de.deepamehta.core.Topic user)
getMoodleSecurityKeyWithoutAuthCheck
private String getMoodleSecurityKeyWithoutAuthCheck(de.deepamehta.core.Topic userAccount)
hasParticipantEdge
private boolean hasParticipantEdge(de.deepamehta.core.Topic course,
de.deepamehta.core.Topic user)
hasAggregatingCourseParentEdge
private boolean hasAggregatingCourseParentEdge(de.deepamehta.core.Topic child,
de.deepamehta.core.Topic parent)
hasAggregatingSectionParentEdge
private boolean hasAggregatingSectionParentEdge(de.deepamehta.core.Topic child,
de.deepamehta.core.Topic parent)
getMoodleCourseTopic
private de.deepamehta.core.Topic getMoodleCourseTopic(long courseId)
getMoodleSectionTopic
private de.deepamehta.core.Topic getMoodleSectionTopic(long sectionId)
getMoodleItemTopic
private de.deepamehta.core.Topic getMoodleItemTopic(long itemId)
setDefaultMoodleGroupACLEntries
private de.deepamehta.core.DeepaMehtaObject setDefaultMoodleGroupACLEntries(de.deepamehta.core.DeepaMehtaObject item)
setDefaultMoodleAdminACLEntries
private de.deepamehta.core.DeepaMehtaObject setDefaultMoodleAdminACLEntries(de.deepamehta.core.DeepaMehtaObject item)
assignToMoodleWorkspace
private void assignToMoodleWorkspace(de.deepamehta.core.Topic topic)
hasAnyWorkspace
private boolean hasAnyWorkspace(de.deepamehta.core.Topic topic)
assignDefaultAuthorship
private de.deepamehta.core.Association assignDefaultAuthorship(de.deepamehta.core.Topic item)
associationExists
private boolean associationExists(String edge_type,
de.deepamehta.core.Topic item,
de.deepamehta.core.Topic user)
Copyright © 2014. All Rights Reserved.