The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

WebService::Moodle::Simple - API client for Stripe

VERSION

version 0.06

SYNOPSIS

CLI

    ./bin/moodlews --help

Example

    $ ./bin/moodlews add_user -u freddy -f Fred -l Flintstone -e freddy09@example.com -o 0123456789abcdef -p ff1234 -d moodle.example.com -t local_wssetup

    { id => 57, ok => 1, username => "freddy09" }

API

  use WebService::Moodle::Simple;

  my $moodle = WebService::Moodle::Simple->new(
    domain   => 'moodle.example.edu',
    port     => 80,                  # default 443
    timeout  => 100,                 # default 1000
    scheme   => 'http',              # default 'https'
    target   => 'example_webservice'
    token    => '0123456789abcdef',
  );

DESCRIPTION

WebService::Moodle::Simple is Client API and CLI for Moodle Web Services

__THIS IS A DEVELOPMENT RELEASE. API MAY CHANGE WITHOUT NOTICE__.

NAME

WebService::Moodle::Simple - Client API and CLI for Moodle Web Services

USAGE

CLI

Get instructions on CLI usage

  moodlews

Example - Login and Get Users

Retrieve the user list using the token

  moodlews get_users -o becac8d120119eb2a312a385644eb709 -d moodle.example.edu -t example_webservice

Unit Tests

  prove -rlv t

Full Unit Tests

    TEST_WSMS_SCHEME=https \
    TEST_WSMS_PORT=443 \
    TEST_WSMS_DOMAIN=moodle.example.com \
    TEST_WSMS_TARGET=example_webservice \
    TEST_WSMS_TOKEN=0123456789abcdef \
    TEST_WSMS_COURSE=example-short-course-name \
    prove -rlv t/

__NOTE: Full unit tests write to Moodle Database - only run them against a test Moodle server__.

Methods

  • add_user

        $OBJ->add_user(
            firstname => <str>,
            lastname  => <str>,
            email     => <str>,
            username  => <str>,
            password  => <str>,
            token     => <str>,
        );

    On failure, returns a hashref of the form

        {
            ok  => 0,
            msg => <str>,
        }

    or

        {
            ok       => 1,
            id       => <int>,
            username => <str>,
        }
  • check_password

        $OBJ->check_password(
            username => <str>,
            password => <str>,
        )

    Returns

         { msg => <str>, ok => <bool> }
  • set_password

        $OBJ->set_password(
            username => <str>,
            password => <str>,
        )

    Returns

        { ok => <bool> }
  • get_user

        $OBJ->get_user(
            username => <str>,
        )

    Returns

        {
            username  => <str>,
            id        => <int>,
            suspended => <JSON::PP::Boolean>,
            ...
        }
  • enrol_student

        $OBJ->enrol_student(
          username  => <str>,
          course    => <str>,
        )

    Returns

        { ok => <bool>, msg => <str> }
  • get_course_id

        $OBJ->get_course_id(
            short_cname  => <str>,
        )

    Returns an integer

  • suspend_user

        $OBJ->suspend_user(
            username => <str>,
            suspend  => <bool default TRUE>
        )

    Always returns undef

    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.

AUTHOR

Andrew Solomon <andrew@geekuni.com>

COPYRIGHT

Copyright 2014- Andrew Solomon

LICENSE

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

SEE ALSO

AUTHOR

Andrew Solomon

COPYRIGHT AND LICENSE

This software is copyright (c) 2014 by Copyright 2014- Andrew Solomon.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.