In the context of connecting a campus management system of one of our departments to our Moodle instance, we had to solve some problems that could not be covered with the existing web service functions. Course categories and courses should be created externally in Moodle, roles should be assigned on course categories and course level and (possibly on the platform not yet existing) users should be enrolled. The CMS should not get the permissions for free user creation or similar.
We added features like:
- Synchronization of users. List of user names as input, user IDs as return including creation of accounts on demand if needed. User IDs needed for further requests like course enrollments.
- Query existing role assignments for course categories.
- Query existing role IDs
We could build on this and go through scenarios in a structured way and look for and implement further missing WS functionalities.