NAME WebService::Moodle::Simple - Client API and CLI for Moodle Web Services SYNOPSIS CLI moodlews login - login with your Moodle password and retrieve token moodlews add_user - Create a Moodle user account moodlews get_users - Get all users moodlews enrol - Enrol user into a course moodlews set_password - Update a user account password API use WebService::Moodle::Simple; my $moodle = WebService::Moodle::Simple->new( domain => 'moodle.example.edu', target => 'example_webservice' ); my $rh_token = $moodle->login( username => 'admin', password => 'p4ssw0rd'); DESCRIPTION WebService::Moodle::Simple is Client API and CLI for Moodle Web Services __THIS IS A DEVELOPMENT RELEASE. API MAY CHANGE WITHOUT NOTICE__. USAGE CLI Get instructions on CLI usage moodlews Example - Login and Get Users moodlews login -u admin -d moodle.example.edu -p p4ssw0rd -t example_webservice Retrieve the user list using the token returned from the login command moodlews get_users -o becac8d120119eb2a312a385644eb709 -d moodle.example.edu -t example_webservice Unit Tests prove -rlv t Full Unit Tests TEST_WSMS_ADMIN_PWD=p4ssw0rd \ TEST_WSMS_DOMAIN=moodle.example.edu \ TEST_WSMS_TARGET=example_webservice prove -rlv t __NOTE: Full unit tests write to Moodle Database - only run them against a test Moodle server__. Methods * *$OBJ*->login( username => *str*, password => *str*, ) Returns { msg => *str*, ok => *bool*, token => *str* } * *$OBJ*->set_password( username => *str*, password => *str*, token => *str*, ) * *$OBJ*->add_user( firstname => *str*, lastname => *str*, email => *str*, username => *str*, password => *str*, token => *str*, ) * *$OBJ*->get_users( token => *str*, ) * *$OBJ*->enrol_student( username => *str*, course => *str*, token => *str*, ) * *$OBJ*->get_course_id( short_cname => *str*, token => *str*, ) * *$OBJ*->get_user( token => *str*, username => *str*, ) * *$OBJ*->suspend_user( token => *str*, username => *str*, suspend => *bool default TRUE* ) If suspend is true/nonzero (which is the default) it kills the user's session and suspends their account preventing them from logging in. If suspend is false they are given permission to login. NOTE: This will only work if the Moodle server has had this patch (or its equivalent) applied: https://github.com/fabiomsouto/moodle/compare/MOODLE_22_STABLE...MDL -31465-MOODLE_22_STABLE * *$OBJ*->raw_api( method => *moodle webservice method name*, token => *str*, params => *hashref of method parameters* ) returns Moodle's response. AUTHOR Andrew Solomon COPYRIGHT Copyright 2014- Andrew Solomon ACKNOWLEDGEMENT Built by Dist::Milla LICENSE This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. SEE ALSO