Client Library that allow third party to access AcademyHQ APIs.
include the following line in your composer.json file and do composer update "olivemedia/academyhq-api-client": "dev-master"
$credentials = new \AcademyHQ\API\Common\Credentials( new \AcademyHQ\API\ValueObjects\AppID('Your App ID'), new \AcademyHQ\API\ValueObjects\SecretKey('Your Secret Key') ); $factory = new \AcademyHQ\API\Repository\Factory($credentials); /*@return instance of \AcademyHQ\API\Repository\MemberRepository */ $member_repository = $factory->get_member_repository(); [Instance of \AcademyHQ\API\Repository\MemberRepository is required to perform any action related to member] /*@return instance of \AcademyHQ\API\Repository\EnrolmentRepository */ $enrolment_repository = $factory->get_enrolment_repository(); [Instance of \AcademyHQ\API\Repository\EnrolmentRepository is required to perform any action related to enrolment] /*@return instance of \AcademyHQ\API\Repository\LicenseRepository */ $license_repository = $factory->get_license_repository(); [Instance of \AcademyHQ\API\Repository\LicenseRepository is required to perform any action related to license] /*@return instance of \AcademyHQ\API\Repository\CourseRepository */ $course_repository = $factory->get_course_repository(); [Instance of \AcademyHQ\API\Repository\CourseRepository is required to perform any action related to course] *@return instance of \AcademyHQ\API\Repository\PurchaseRepository */ $purchase_repository = $factory->get_purchase_repository(); [Instance of \AcademyHQ\API\Repository\PurchaseRepository is required to perform any action related to purchase]
/*@return member_id */ $member_id = $member_repository->create( \AcademyHQ\API\ValueObjects\Name::fromNative("First Name", "Last Name"), new \AcademyHQ\API\ValueObjects\Username("User Name"), new \AcademyHQ\API\ValueObjects\Email("email@email.com"), new \AcademyHQ\API\ValueObjects\Password("password") );
Alternatively you can provide ID as an extra parameter while creating member. Example shown below:
/*@return member_id */ $member_id = $member_repository->create( \AcademyHQ\API\ValueObjects\Name::fromNative("First Name", "Last Name"), new \AcademyHQ\API\ValueObjects\Username("User Name"), new \AcademyHQ\API\ValueObjects\Email("email@email.com"), new \AcademyHQ\API\ValueObjects\Password("password"), new \AcademyHQ\API\ValueObjects\ID('CUST-JOHN-SMITH') );
/*@return member std object */ /* member std object will contain id, first_name, last_name, username, email of member*/ $member = $member_repository->get(new \AcademyHQ\API\ValueObjects\MemberID('your member id'));
/*@return success message */ $response = $member_repository->delete(new \AcademyHQ\API\ValueObjects\MemberID('your member id'));
/*@return success message */ $response = $member_repository->save( new \AcademyHQ\API\ValueObjects\MemberID($member_id), \AcademyHQ\API\ValueObjects\Name::fromNative('Updated Fname', 'Updated Lname'), new \AcademyHQ\API\ValueObjects\Username('updated username'), new \AcademyHQ\API\ValueObjects\Email('updated password') );
/*@return success message */ $response = $member_repository->create_bulk_members_array( new \AcademyHQ\API\ValueObjects\MemberID($member_id), new \AcademyHQ\API\ValueObjects\Password('updated password') );
/*@return members_ids */ $response = $member_repository->create_bulk_members_array( \AcademyHQ\API\ValueObjects\FirstNameArray::fromNative(array('first_name_1', 'first_name_2')), \AcademyHQ\API\ValueObjects\LastNameArray::fromNative(array('last_name_1', 'last_name_2')), \AcademyHQ\API\ValueObjects\UsernameArray::fromNative(array('username_1', 'username_2')), \AcademyHQ\API\ValueObjects\EmailArray::fromNative(array('email_1', 'email_2')), \AcademyHQ\API\ValueObjects\PasswordArray::fromNative(array('password_1', 'password_2')) );
/*@return members_ids */ $response = $member_repository->create_bulk_members_json( \AcademyHQ\API\ValueObjects\FirstNameArray::fromNative(array('first_name_1', 'first_name_2')), \AcademyHQ\API\ValueObjects\LastNameArray::fromNative(array('last_name_1', 'last_name_2')), \AcademyHQ\API\ValueObjects\UsernameArray::fromNative(array('username_1', 'username_2')), \AcademyHQ\API\ValueObjects\EmailArray::fromNative(array('email_1', 'email_2')), \AcademyHQ\API\ValueObjects\PasswordArray::fromNative(array('password_1', 'password_2')) );
/*@return enrolment_id */ $enrolment_id = $enrolment_repository->create( new \AcademyHQ\API\ValueObjects\MemberID('member_id'), new \AcademyHQ\API\ValueObjects\LicenseID('license_id') );
/*@return array of enrolment_ids */ $enrolment_ids = $enrolment_repository->create_enrolments( new \AcademyHQ\API\ValueObjects\MemberID('member_id'), \AcademyHQ\API\ValueObjects\LicenseIDArray::fromNative(array('license_id_1', 'license_id_2')), new \AcademyHQ\API\ValueObjects\SendEmail(true/false) );
/*@return enrolment_ids / array of enrolment id */ $enrolment_ids = $enrolment_repository->create_for_organisation( new \AcademyHQ\API\ValueObjects\MemberID('member_id') );
/*@return Enrolment std object that contain the status of enrolment, registration and course name*/ $enrolment = $enrolment_repository->get(new \AcademyHQ\API\ValueObjects\EnrolmentID('enrolment_id'));
/*@return Success message*/ $enrolment = $enrolment_repository->delete(new \AcademyHQ\API\ValueObjects\EnrolmentID('enrolment_id'));
/*@Start or resume the enrolment and return the launch url*/ /*@Require Callback Url: Upon exit, the url in your application that the SCORM player will redirect to */ /*@ See Note Below regarding callback url*/ $launch_url = $enrolment_repository->get_launch_url(new \AcademyHQ\API\ValueObjects\EnrolmentID('enrolment_id'), \AcademyHQ\API\ValueObjects\HTTP\Url::fromNative('callback_url')); /* The launch_url can launched in new window or iframe */
/*@ returns Certificate std object that has id, course, member, certificate, enrolment_succeeded_at and expire_at*/ $certificate = $enrolment->get_certificate(new \AcademyHQ\API\ValueObjects\MemberCertificateID('member_certificate_id'));
/*@ returns url of certificate*/ $certificate = $enrolment->get_certificate_url(new \AcademyHQ\API\ValueObjects\MemberCertificateID('member_certificate_id'));
/*Below code in callback url will sync registration summary and provide you the recent enrolment status */ /*@Return enrolment std object that contain enrolment status */ $enrolment = $enrolment_repository->sync_result(new \AcademyHQ\API\ValueObjects\EnrolmentID('enrolment_id'));
/*@return enrolment_id */ $enrolment_id = $enrolment_repository->create_offline_enrolment( new \AcademyHQ\API\ValueObjects\MemberID('member_id'), new \AcademyHQ\API\ValueObjects\CourseID('course_id'), new \AcademyHQ\API\ValueObjects\StringVO('file_name'), new \AcademyHQ\API\ValueObjects\Integer(hrs), new \AcademyHQ\API\ValueObjects\Integer(min), new \AcademyHQ\API\ValueObjects\Integer(secs), new \AcademyHQ\API\ValueObjects\StringVO('issued_at'), new \AcademyHQ\API\ValueObjects\StringVO('expire_at'), );
/*@return array of enrolment_ids */ $enrolment_ids = $enrolment_repository->create_bulK_enrolments( new \AcademyHQ\API\ValueObjects\MemberID('member_id'), \AcademyHQ\API\ValueObjects\LicenseIDArray::fromNative(array('license_id_1', 'license_id_2')), \AcademyHQ\API\ValueObjects\CourseIDArray::fromNative(array()) );
/*@return array of enrolment_ids */ $enrolment_ids = $enrolment_repository->create_bulK_enrolments( new \AcademyHQ\API\ValueObjects\MemberID('member_id'), \AcademyHQ\API\ValueObjects\LicenseIDArray::fromNative(array()), \AcademyHQ\API\ValueObjects\CourseIDArray::fromNative(array('course_id_1', 'course_id_2')) );
/*@returns array of License std object */ /* License std object contains id, created_at, updated_at, course_id, name, descripton_message, completion_message, duration, typical_time, is_active and is_deleted */ $licenses = $license_repository->get_all();
/*@returns id of created license */ $login = $auth_repository->login( new \AcademyHQ\API\ValueObjects\ID('organisation_id'), new \AcademyHQ\API\ValueObjects\CourseID('course_id'))) );
/*@returns array of Course std object */ /* Course std object contains id, pub_id, name, certificate_name, module_count and image_url */ $courses = $course_repository->get_all();
/*@returns Course std object that contains id, pub_id, name, certificate_name, module_count, image_url, price and enrolment_count */ $course = $course_repository->get( new \AcademyHQ\API\ValueObjects\CourseID('course_id') );
/*@returns Course std object that contains id, pub_id, name, certificate_name, module_count, image_url, price and enrolment_count */ $courses = $course_repository->get_by_pub_id( new \AcademyHQ\API\ValueObjects\ID('id') );
/*@returns url of AcademyHQ Purchase Portal*/ $launch_url = $purchase_repository->get_launch_url( new \AcademyHQ\API\ValueObjects\LicenseID('license_id'), new \AcademyHQ\API\ValueObjects\MemberID('member_id')), new \AcademyHQ\API\ValueObjects\StringVO('callback_url') );
/*@returns token after sucessfull login which is valid for next two hours of genertation time*/ $login = $auth_repository->login( new \AcademyHQ\API\ValueObjects\Username('username'), new \AcademyHQ\API\ValueObjects\Password('password'))) );
/*@returns member_id created sub organisation admin*/ $sub_organisation_admin = $employer_repository->create_sub_organisation_admin( \AcademyHQ\API\ValueObjects\Name::fromNative("First Name", "Last Name"), new \AcademyHQ\API\ValueObjects\Username("User Name"), new \AcademyHQ\API\ValueObjects\Email("email@email.com") );
/*@returns organisation_id of created sub organisation*/ $sub_organisation = $employer_repository->create_sub_organisation( new \AcademyHQ\API\ValueObjects\Integer(1), new \AcademyHQ\API\ValueObjects\StringVO("Test Organisation"), new \AcademyHQ\API\ValueObjects\WebAddress("http://example.com"), new \AcademyHQ\API\ValueObjects\Email("email@email.com"), new \AcademyHQ\API\ValueObjects\Address("address"), new \AcademyHQ\API\ValueObjects\FaxNumber("+123456"), );
/*@returns etb_id of created education training board and token is generated using auth repository */ $etb = $super_organisation_admin_repository->create_etb( new \AcademyHQ\API\ValueObjects\Token("token"), new \AcademyHQ\API\ValueObjects\Address("address"), new \AcademyHQ\API\ValueObjects\Latitude("12.0123"), new \AcademyHQ\API\ValueObjects\Longitude("18.0123"), new \AcademyHQ\API\ValueObjects\ID("A123"), new \AcademyHQ\API\ValueObjects\StringVO("ETB Name"), );
/*@returns member_id of created education training board admin*/ $etb_admin = $super_organisation_admin_repository->create_etb_admin( new \AcademyHQ\API\ValueObjects\Token("token"), \AcademyHQ\API\ValueObjects\Name::fromNative("First Name", "Last Name"), new \AcademyHQ\API\ValueObjects\Username("User Name"), new \AcademyHQ\API\ValueObjects\Email("email@email.com") );
/*@returns member_id of created education training board authorising officer*/ $etb_ao = $super_organisation_admin_repository->create_etb_authorizing_officer( new \AcademyHQ\API\ValueObjects\Token("token"), \AcademyHQ\API\ValueObjects\Name::fromNative("First Name", "Last Name"), new \AcademyHQ\API\ValueObjects\Username("User Name"), new \AcademyHQ\API\ValueObjects\Email("email@email.com") );