olivemedia / academyhq-api-client

客户端库,允许第三方访问 AcademyHQ API。

该软件包的规范仓库似乎已消失,因此该软件包已被冻结。

dev-master 2023-03-03 11:29 UTC

This package is auto-updated.

Last update: 2023-07-01 00:11:32 UTC


README

客户端库,允许第三方访问 AcademyHQ API。

安装(使用 Composer)

 	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]	

使用成员仓库

1> 创建成员

 	/*@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')
	);

2> 获取成员

  	/*@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'));

3> 删除成员

  	/*@return success message */
  	$response = $member_repository->delete(new \AcademyHQ\API\ValueObjects\MemberID('your member id'));

4> 更新成员

	/*@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')
	);

5> 修改密码

	/*@return success message */
	$response = $member_repository->create_bulk_members_array(
		new \AcademyHQ\API\ValueObjects\MemberID($member_id),
		new \AcademyHQ\API\ValueObjects\Password('updated password')
	);

6> 从数组对象创建一个或多个成员

	/*@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'))
	);

7> 从 JSON 对象创建一个或多个成员

	/*@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'))
	);

使用注册仓库

1> 创建注册

	/*@return enrolment_id */
	$enrolment_id = $enrolment_repository->create(
		new \AcademyHQ\API\ValueObjects\MemberID('member_id'),
		new \AcademyHQ\API\ValueObjects\LicenseID('license_id')
	);

2> 创建一个或多个注册

	/*@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)
	);

3> 为组织中所有可用的许可证创建注册

	/*@return enrolment_ids / array of enrolment id */
	$enrolment_ids = $enrolment_repository->create_for_organisation(
		new \AcademyHQ\API\ValueObjects\MemberID('member_id')
	);

4> 获取注册

	/*@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'));

5> 删除注册

	/*@return Success message*/
	$enrolment = $enrolment_repository->delete(new \AcademyHQ\API\ValueObjects\EnrolmentID('enrolment_id'));

6> 获取启动 URL

	/*@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 */
	

7> 获取证书

	/*@ 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'));

8> 获取证书 URL

	/*@ returns url of certificate*/ 
	$certificate = $enrolment->get_certificate_url(new \AcademyHQ\API\ValueObjects\MemberCertificateID('member_certificate_id'));

回调 URL 所需信息

	/*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'));

9> 创建离线注册

	/*@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'),
	);

10> 通过许可证创建批量注册

	/*@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())
	);

11> 通过课程创建批量注册

	/*@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'))
	);

使用许可证仓库

1> 获取许可证

 	/*@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();

2> 创建许可证

 	/*@returns id of created license */
	$login = $auth_repository->login(
		new \AcademyHQ\API\ValueObjects\ID('organisation_id'),
		new \AcademyHQ\API\ValueObjects\CourseID('course_id')))
	);

使用课程仓库

1> 获取课程

 	/*@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();

2> 获取课程

 	/*@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')
	);

3> 通过发布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')
	);

使用购买仓库

1> 获取启动URL

 	/*@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')
	);

使用身份验证仓库

1> 登录

 	/*@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')))
	);

2> 从电子邮件登录

 	/*@returns token after sucessfull login which is valid for next two hours of genertation time*/
	$login = $auth_repository->login_from_email(
		new \AcademyHQ\API\ValueObjects\Email('email_address'),
		new \AcademyHQ\API\ValueObjects\Password('password')))
	);

3> 登出

 	/*@returns message after sucesful logout*/
	$logout = $auth_repository->logout(
		new \AcademyHQ\API\ValueObjects\Token('yoour_token'))
	);

使用雇主仓库

1> 创建子组织管理员

 	/*@returns member_details of created sub organisation admin*/
	$sub_organisation_admin = $employer_repository->create_sub_organisation_admin(
		new \AcademyHQ\API\ValueObjects\ID("sub_organisation_id")
		\AcademyHQ\API\ValueObjects\Name::fromNative("First Name", "Last Name"),
		new \AcademyHQ\API\ValueObjects\Username("User Name"),
		new \AcademyHQ\API\ValueObjects\Email("email@email.com")
	);

2> 创建子组织

 	/*@returns organisation_details of created sub organisation*/
	$sub_organisation = $employer_repository->create_sub_organisation(
		new \AcademyHQ\API\ValueObjects\StringVO("Test Organisation"),
		new \AcademyHQ\API\ValueObjects\Integer(1),
		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"),
		new \AcademyHQ\API\ValueObjects\TaxNumber("your_tax_number"),
		new \AcademyHQ\API\ValueObjects\CroNumber("your_cro_number"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_latitude"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_longitude"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_trade_name"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_date_of_commence")
	);

3> 创建继承域的子组织

 	/*@returns organisation_details of created sub organisation*/
	$sub_organisation = $employer_repository->create_sub_organisation_inherit_domain(
		new \AcademyHQ\API\ValueObjects\PublicID('ABC123'),
		new \AcademyHQ\API\ValueObjects\Integer(1),
		new \AcademyHQ\API\ValueObjects\StringVO("Test Organisation")
	);

4> 创建学徒子组织

 	/*@returns organisation_details of created sub organisation*/
	$sub_organisation = $employer_repository->create_apprenticeship_organisation(
		new \AcademyHQ\API\ValueObjects\StringVO('your_organisation_name'),
		new \AcademyHQ\API\ValueObjects\TaxNumber('your_tax_number'),
		\AcademyHQ\API\ValueObjects\Name::fromNative("First Name", "Last Name"),
		new \AcademyHQ\API\ValueObjects\Email('your_email'),
		new \AcademyHQ\API\ValueObjects\StringVO("your_trade_name"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_date_of_commence")
	);

5> 完成学徒注册

 	/*@returns member_details of updated organisation admin*/
	$registration = $employer_repository->registration_completion_for_admin(
		new \AcademyHQ\API\ValueObjects\MemberID('your_member_id'),
		\AcademyHQ\API\ValueObjects\Name::fromNative("First Name", "Last Name"),
		new \AcademyHQ\API\ValueObjects\Password('your_password'),
		new \AcademyHQ\API\ValueObjects\Password("your_password_confirmation"),
	);

6> 获取基础成员

 	/*@returns base_member_details*/
	$base_member_details = $employer_repository->base_member(
		new \AcademyHQ\API\ValueObjects\MemberID('your_member_id')
	);

7> 完成学徒注册

 	/*@returns member_details of updated candidate/
	$registration = $employer_repository->registration_completion_for_candidate(
		new \AcademyHQ\API\ValueObjects\MemberID('your_member_id'),
		\AcademyHQ\API\ValueObjects\Name::fromNative("First Name", "Last Name"),
		new \AcademyHQ\API\ValueObjects\Password('your_password'),
		new \AcademyHQ\API\ValueObjects\Password("your_password_confirmation")
	);

使用超级组织管理员仓库

1> 创建教育培训委员会

	/*@returns etb_details 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"),
		new \AcademyHQ\API\ValueObjects\StringVO("contact_person_name"),
		new \AcademyHQ\API\ValueObjects\PhoneNumber("your_phone_number")		
	);

2> 创建教育培训委员会管理员

	/*@returns member_details 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")
	);

3> 创建教育培训委员会授权官员

	/*@returns member_details 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")
	);

4> 获取ETB管理员

	*@return etb_admin_details std object */
  	$etb_admin_details = $super_organisation_admin_repository->get_etb_admins(new \AcademyHQ\API\ValueObjects\Token('your token'), new \AcademyHQ\API\ValueObjects\EtbID('your_etb_id'));

5> 获取ETB授权官员

	*@return etb_authorizing_officer_details std object */
  	$etb_authorizing_officer_details = $super_organisation_admin_repository->get_etb_authorizing_officer(new \AcademyHQ\API\ValueObjects\Token('your token'), new \AcademyHQ\API\ValueObjects\EtbID('your_etb_id'));

6> 获取候选人

	*@return member_details std object */
  	$member_details = $super_organisation_admin_repository->get_etb_authorizing_officer(
  		new \AcademyHQ\API\ValueObjects\Token('your token'), 
  		new \AcademyHQ\API\ValueObjects\Integer('is_declined'),
  		new \AcademyHQ\API\ValueObjects\Integer('is_approved_by_etb_ao'),
  		new \AcademyHQ\API\ValueObjects\Integer('is_approved_by_solas_admin'),
  		new \AcademyHQ\API\ValueObjects\ID('ato_id'),
  		new \AcademyHQ\API\ValueObjects\StringVO('order_by_field'),
  		new \AcademyHQ\API\ValueObjects\StringVO('order_by_direction')
  	);

使用通知存储库

1> 获取会员网页通知

	/*@return notifications std object */
  	/* notification std object will contain id, crerated_at, updated_at, member_id, sender_id, notification_message, server_response, sent_at, next_send_at, is_set, is_opened, opened_at of notification*/
  	$notification = $notification_repository->member_web_notifications(new \AcademyHQ\API\ValueObjects\Token('your token'), new \AcademyHQ\API\ValueObjects\MemberID('your member id'));

2> 获取发送者网页通知

	/*@return notifications std object */
  	/* notification std object will contain id, crerated_at, updated_at, member_id, sender_id, notification_message, server_response, sent_at, next_send_at, is_set, is_opened, opened_at of notification*/
  	$notification = $notification_repository->sender_web_notifications(new \AcademyHQ\API\ValueObjects\Token('your token'), new \AcademyHQ\API\ValueObjects\MemberID('your sender id'));

3> 获取带有附件的网页通知(如有)

	/*@return notifications std object */
  	/* notification std object will contain id, crerated_at, updated_at, member_id, sender_id, notification_message, server_response, sent_at, next_send_at, is_set, is_opened, opened_at, attachemnt_document_key, attachament_document_url of notification*/
  	$notification = $notification_repository->web_notification(new \AcademyHQ\API\ValueObjects\Token('your token'), new \AcademyHQ\API\ValueObjects\NotificationID('your notification id'));

4> 获取已登录会员的网页通知

	/*@return notifications std object */
  	/* notification std object will contain id, created_at, updated_at, member_id, sender_id, notification_message, server_response, sent_at, next_send_at, is_set, is_opened, opened_at of notification*/
  	$notifications = $notification_repository->member_notifications(new \AcademyHQ\API\ValueObjects\Token('your token'));

5> 创建通知

	/*@returns sucess message*/
	$notfication = $notification_repository->create_notification(
		new \AcademyHQ\API\ValueObjects\Token("token"),
		\AcademyHQ\API\ValueObjects\MemberIDArray::fromNative(array('member_id_1', 'member_id_2')),
		new \AcademyHQ\API\ValueObjects\StringVO("your_notification_message"),
		\AcademyHQ\API\ValueObjects\NotificationTypeArray::fromNative(array('type_1', 'type_2')),
		\AcademyHQ\API\ValueObjects\AttachmentIDArray::fromNative(array('attachment_id_1', 'attachment_id_2'))
	);

6> 使用发送者创建通知

	/*@returns sucess message*/
	$notfication = $notification_repository->create_notification(
		new \AcademyHQ\API\ValueObjects\Token("token"),
		\AcademyHQ\API\ValueObjects\MemberIDArray::fromNative(array('member_id_1', 'member_id_2')),
		new \AcademyHQ\API\ValueObjects\StringVO("your_notification_message"),
		\AcademyHQ\API\ValueObjects\NotificationTypeArray::fromNative(array('type_1', 'type_2')),new \AcademyHQ\API\ValueObjects\MemberID('your_sender_id'),		
		\AcademyHQ\API\ValueObjects\AttachmentIDArray::fromNative(array('attachment_id_1', 'attachment_id_2'))
	);

7> 更新通知

	/*@returns sucess message*/
	$notfication = $notification_repository->update_notification(
		new \AcademyHQ\API\ValueObjects\Token("token"),
		new \AcademyHQ\API\ValueObjects\Integer("your_notification_id"),
		new \AcademyHQ\API\ValueObjects\Integer("unseen")
	);

使用会员计划存储库

1> 获取所有会员计划

	/*@return member_programs std object */
  	$member_program = $member_program_repository->fetch_all_member_program(new \AcademyHQ\API\ValueObjects\Token('your token'), new \AcademyHQ\API\ValueObjects\MemberID('your member id'));

2> 获取所有会员计划详情

	/*@return member_program_detail std object */
  	$member_program_detail = $member_program_repository->member_program_detail(new \AcademyHQ\API\ValueObjects\Token('your token'), new \AcademyHQ\API\ValueObjects\MemberProgramID('your member id'));

3> 获取所有会员旅程

	/*@return member_journey std object */
  	$member_journey = $member_program_repository->member_journey_list(new \AcademyHQ\API\ValueObjects\Token('your token'), new \AcademyHQ\API\ValueObjects\MemberID('your_member_id'), new \AcademyHQ\API\ValueObjects\OccupationID('your_occupation_id'));

4> 获取阶段详情

	/*@return phase_details std object */
  	$phase_details = $member_program_repository->phase_details(new \AcademyHQ\API\ValueObjects\Token('your token'), new \AcademyHQ\API\ValueObjects\MemberID('your_member_id'), new \AcademyHQ\API\ValueObjects\ID('your_member_program_id'));

5> 创建计划证据

	/*@returns program_evidence of created program_evidence/
	$program_evidence = $member_program_repository->create_program_evidence(
		new \AcademyHQ\API\ValueObjects\Token("token"),
		new \AcademyHQ\API\ValueObjects\ProgramID('your_program_id'),
		new \AcademyHQ\API\ValueObjects\MemberID('your_member_id'),
		new \AcademyHQ\API\ValueObjects\OccupationID("your_occupation_id"),
		new \AcademyHQ\API\ValueObjects\Integer("your_program_unit_id"),
		new \AcademyHQ\API\ValueObjects\Address("address"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_latitude"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_longitude"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_evidence_image")
	);

6> 获取计划证据

	/*@return program_evidence_details std object */
  	$program_evidence_details = $member_program_repository->program_evidence(new \AcademyHQ\API\ValueObjects\Token('your token'), new \AcademyHQ\API\ValueObjects\ID('your_program_evidence_id'));

7> 获取会员旅程

	/*@return member_journey_details std object */
  	$member_journey_details = $member_program_repository->fetch_member_journey(new \AcademyHQ\API\ValueObjects\Token('your token'), new \AcademyHQ\API\ValueObjects\MemberID('your_member_id'));

8> 设置会员阶段代码

	/*@return member_details std object od updated member */
  	$member_details = $member_program_repository->update_member_phase_code(
  		new \AcademyHQ\API\ValueObjects\Token('your token'), 
  		new \AcademyHQ\API\ValueObjects\Integer('your_member_id'),
  		new \AcademyHQ\API\ValueObjects\StringVO('your_member_phase_code'),
  		new \AcademyHQ\API\ValueObjects\Integer('your_apprenticeship_id')
  	);

使用组织管理员存储库

1> 编辑组织

	/*@returns organisation_details of editied sub organisation*/
	$organisation = $organisation_admin_repository->edit_organisation(
		new \AcademyHQ\API\ValueObjects\Token("token"),
		new \AcademyHQ\API\ValueObjects\Integer('your_organisation_id'),
		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"),
		new \AcademyHQ\API\ValueObjects\TaxNumber("your_tax_number"),
		new \AcademyHQ\API\ValueObjects\CroNumber("your_cro_number"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_latitude"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_longitude"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_trade_name"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_date_of_commence"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_organisation_logo")
	);

2> 创建基础会员

	/*@returns member_details of created member*/
	$member_base = $organisation_admin_repository->create_base_member(
		new \AcademyHQ\API\ValueObjects\Token("token"),
		new \AcademyHQ\API\ValueObjects\Integer("your_organisation_id"),
		\AcademyHQ\API\ValueObjects\Name::fromNative("first_name", "last_name"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_role"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_qualification"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_occupation"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_comment"),
		new \AcademyHQ\API\ValueObjects\Email("your_email"),
		new \AcademyHQ\API\ValueObjects\PublicID("your_pub_id"),
		new \AcademyHQ\API\ValueObjects\Integer("is_member"),
		new \AcademyHQ\API\ValueObjects\Integer("is_contact_person"),
		new \AcademyHQ\API\ValueObjects\Integer("is_verifier"),
		new \AcademyHQ\API\ValueObjects\Integer("1")
	);

3> 创建候选人

	/*@returns member_details of created member*/
	$member_base = $organisation_admin_repository->create_candidate(
		new \AcademyHQ\API\ValueObjects\Token("your_token"),
		new \AcademyHQ\API\ValueObjects\Integer("your_organisation_id"),
		new \AcademyHQ\API\ValueObjects\Integer("your_apprenticeship_id"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_pub_id"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_date_of_birth"),
		\AcademyHQ\API\ValueObjects\Name::fromNative("first_name", "last_name"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_gender"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_country_code"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_mobile_number"),
		new \AcademyHQ\API\ValueObjects\Email("your_email"),
		new \AcademyHQ\API\ValueObjects\Integer("your_disability"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_disability_text"),
		new \AcademyHQ\API\ValueObjects\Integer("your_advice"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_advice_text"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_street"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_city"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_state"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_country"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_postal_code"),
		new \AcademyHQ\API\ValueObjects\Integer("your_eye_test_document_id"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_eye_test_data_image"),
		new \AcademyHQ\API\ValueObjects\Integer("your_mimimum_educational_document_id"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_minimum_educational_data_image"),
		new \AcademyHQ\API\ValueObjects\Integer("your_signature_id"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_signature_data_image"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_image")
	);

4> 获取所有未注册会员

	*@return unregistered member_details a/c to organisation  std object */
  	$un_registered_member = $organisation_admin_repository->fetch_un_registered_member(new \AcademyHQ\API\ValueObjects\Token('your token'), new \AcademyHQ\API\ValueObjects\OrganisationID('your_organisation_id'));

5> 创建ETB组织

	/*@return etb_organisagtion details of created etb organisation*/
	$etb_organisation = $organisation_admin_repository->create_organisation_etb(
		new \AcademyHQ\API\ValueObjects\Token("your_token"),
		new \AcademyHQ\API\ValueObjects\Integer("your_organisation_id"),
		new \AcademyHQ\API\ValueObjects\Integer("your_etb_id")
	);

6> 获取组织ETB

	*@return etb_organisations details of std object */
  	$etb_organisation = $organisation_admin_repository->get_organisation_etb(new \AcademyHQ\API\ValueObjects\Token('your token'), new \AcademyHQ\API\ValueObjects\OrganisationID('your_organisation_id'));

7> 获取组织

	*@return organisations details of std object */
  	$$organisation = $organisation_admin_repository->get_organisation(new \AcademyHQ\API\ValueObjects\Token('your token'), new \AcademyHQ\API\ValueObjects\OrganisationID('your_organisation_id'));

8> 列出学徒制

	/*@return apprenticeships_list std object*/
	$etb_organisation = $organisation_admin_repository->list_apprenticeships(
		new \AcademyHQ\API\ValueObjects\Token("your_token"),
		new \AcademyHQ\API\ValueObjects\Integer("your_employer_id"),
		new \AcademyHQ\API\ValueObjects\Integer("current_page"),
		new \AcademyHQ\API\ValueObjects\Integer("your_occupation_id"),
		new \AcademyHQ\API\ValueObjects\Integer("your_industry_id"),
		new \AcademyHQ\API\ValueObjects\Integer("your_sector_id"),
		new \AcademyHQ\API\ValueObjects\Integer("your_main_activity_id"),
		new \AcademyHQ\API\ValueObjects\Integer("your_number_of_qualified_person_in_occupation"),
		new \AcademyHQ\API\ValueObjects\Integer("your_contact_person_id"),
		new \AcademyHQ\API\ValueObjects\Integer("your_verifier_id"),
		new \AcademyHQ\API\ValueObjects\Integer("your_mentor_id"),
		new \AcademyHQ\API\ValueObjects\Integer("your_is_submitted"),
		new \AcademyHQ\API\ValueObjects\Integer("your_is_approved"),
		new \AcademyHQ\API\ValueObjects\Integer("your_is_declined"),
		new \AcademyHQ\API\ValueObjects\Integer("your_is_site_visited"),
		new \AcademyHQ\API\ValueObjects\Integer("is_appealed_to_solas_admin"),
		new \AcademyHQ\API\ValueObjects\Integer("is_approved_by_solas_admin"),
		new \AcademyHQ\API\ValueObjects\Integer("is_rejected_by_solas_admin"),
		new \AcademyHQ\API\ValueObjects\Integer("your_is_confirmed_as_occupation"),
		new \AcademyHQ\API\ValueObjects\StringVo("your_order_by_field"),
		new \AcademyHQ\API\ValueObjects\Integer("your_order_by_direction"),
	);

9> 获取最近的ETB

	/*@return nearest_etb std object*/
	$nearest_etb = $organisation_admin_repository->get_nearest_etb(
		new \AcademyHQ\API\ValueObjects\Token("your_token"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_latitude"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_longitude")
	);

10> 获取ETB管理员

	/*@return etb_admins std object*/
	$etb_admins = $organisation_admin_repository->get_etb_admins(
		new \AcademyHQ\API\ValueObjects\Token("your_token"),
		new \AcademyHQ\API\ValueObjects\EtbID("your_etb_id")
	);

11> 获取ETB授权官员

	/*@return etb_authorizing_officers std object*/
	$etb_authorizing_officers = $organisation_admin_repository->get_etb_authorizing_officer(
		new \AcademyHQ\API\ValueObjects\Token("your_token"),
		new \AcademyHQ\API\ValueObjects\EtbID("your_etb_id")
	);

12> 学徒制详情

	/*@return etb_authorizing_officers std object*/
	$apprenticeship_details = $organisation_admin_repository->apprenticeship_details(
		new \AcademyHQ\API\ValueObjects\Token("your_token"),
		new \AcademyHQ\API\ValueObjects\Integer("your_apprenticeship_id")
	);

13> 获取所有职业

	/*@return occuppations std object*/
	$occuppations = $organisation_admin_repository->list_occupations(
		new \AcademyHQ\API\ValueObjects\Token("your_token")
	);

14> 职业详情

	/*@return occupation_details std object*/
	$occupation_details = $organisation_admin_repository->occupation_details(
		new \AcademyHQ\API\ValueObjects\Token("your_token"),
		new \AcademyHQ\API\ValueObjects\Integer("your_occupation_id")
	);

15> 获取所有行业

	/*@return industry std object*/
	$industry = $organisation_admin_repository->list_industries(
		new \AcademyHQ\API\ValueObjects\Token("your_token")
	);

16> 行业详情

	/*@return industry_details std object*/
	$industry_details = $organisation_admin_repository->industry_details(
		new \AcademyHQ\API\ValueObjects\Token("your_token"),
		new \AcademyHQ\API\ValueObjects\Integer("your_industry_id")
	);

17> 获取所有部门

	/*@return sectors std object*/
	$sectors = $organisation_admin_repository->list_sectors(
		new \AcademyHQ\API\ValueObjects\Token("your_token")
	);

18> 部门详情

	/*@return sector_details std object*/
	$sector_details = $organisation_admin_repository->sector_details(
		new \AcademyHQ\API\ValueObjects\Token("your_token"),
		new \AcademyHQ\API\ValueObjects\Integer("your_sector_id")
	);

19> 获取所有主要活动

	/*@return main_activities std object*/
	$main_activities = $organisation_admin_repository->list_main_activities(
		new \AcademyHQ\API\ValueObjects\Token("your_token")
	);

20> 主要活动详情

	/*@return main_activity_details std object*/
	$main_activity_details = $organisation_admin_repository->main_activity_details(
		new \AcademyHQ\API\ValueObjects\Token("your_token"),
		new \AcademyHQ\API\ValueObjects\Integer("your_main_activity_id")
	);

21> 创建学徒制

	/*@return apprenticeship_details of created apprenticeship*/
	$apprenticeship_details = $organisation_admin_repository->create_apprenticeship(
		new \AcademyHQ\API\ValueObjects\Token("your_token"),
		new \AcademyHQ\API\ValueObjects\Integer("your_employer_id"),
		new \AcademyHQ\API\ValueObjects\Integer("your_occupation_id"),
		new \AcademyHQ\API\ValueObjects\Integer("your_sector_id"),
		new \AcademyHQ\API\ValueObjects\Integer("your_main_activity_id"),
		new \AcademyHQ\API\ValueObjects\Integer("your_industry_id"),
		new \AcademyHQ\API\ValueObjects\Integer("your_number_of_qualified_person_in_occupation"),
		new \AcademyHQ\API\ValueObjects\Integer("your_expected_number_of_apprentices_within_12_months"),
		new \AcademyHQ\API\ValueObjects\Integer("your_contact_person_id"),
		new \AcademyHQ\API\ValueObjects\Integer("your_verifier_id"),
		new \AcademyHQ\API\ValueObjects\Integer("your_mentor_id"),
		new \AcademyHQ\API\ValueObjects\Integer("your_is_submitted")
	);

22> 编辑学徒制

	/*@return apprenticeship_details of updated apprenticeship*/
	$apprenticeship_details = $organisation_admin_repository->edit_apprenticeship(
		new \AcademyHQ\API\ValueObjects\Token("your_token"),
		new \AcademyHQ\API\ValueObjects\ApprenticeshipID("your_apprenticeship_id"),
		new \AcademyHQ\API\ValueObjects\Integer("your_occupation_id"),
		new \AcademyHQ\API\ValueObjects\Integer("your_sector_id"),
		new \AcademyHQ\API\ValueObjects\Integer("your_main_activity_id"),
		new \AcademyHQ\API\ValueObjects\Integer("your_industry_id"),
		new \AcademyHQ\API\ValueObjects\Integer("your_number_of_qualified_person_in_occupation"),
		new \AcademyHQ\API\ValueObjects\Integer("your_expected_number_of_apprentices_within_12_months"),
		new \AcademyHQ\API\ValueObjects\Integer("your_contact_person"_id),
		new \AcademyHQ\API\ValueObjects\Integer("your_verifier_id"),
		new \AcademyHQ\API\ValueObjects\Integer("your_mentor_id"),
		new \AcademyHQ\API\ValueObjects\Integer("your_is_submitted"),
		new \AcademyHQ\API\ValueObjects\Integer("your_is_approved"),
		new \AcademyHQ\API\ValueObjects\Integer("your_is_declined"),
		new \AcademyHQ\API\ValueObjects\Integer("your_is_site_visited"),
		new \AcademyHQ\API\ValueObjects\Integer("your_is_confirmed_as_occupation"),
		new \AcademyHQ\API\ValueObjects\Integer("your_is_appealed_to_solas_admin"),
		new \AcademyHQ\API\ValueObjects\Integer("your_is_approved_by_solas_admin"),
		new \AcademyHQ\API\ValueObjects\Integer("your_is_rejected_by_solas_admin"),
		new \AcademyHQ\API\ValueObjects\Integer("your_is_site_visit_booked")
	);

23> 获取成员ID

	/*@return member_ids std object*/
	$member_ids = $organisation_admin_repository->get_member_ids(
		new \AcademyHQ\API\ValueObjects\Token("your_token"),
		new \AcademyHQ\API\ValueObjects\OrganisationID("your_organisation_id")
	);

24> 编辑候选人

	/*@returns member_details of updated candidate*/
	$member_base = $organisation_admin_repository->edit_candidate(
		new \AcademyHQ\API\ValueObjects\Token("your_token"),
		new \AcademyHQ\API\ValueObjects\Integer("your_organisation_id"),
		new \AcademyHQ\API\ValueObjects\Integer("your_apprenticeship_id"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_pub_id"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_date_of_birth"),
		\AcademyHQ\API\ValueObjects\Name::fromNative("first_name", "last_name"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_gender"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_country_code"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_mobile_number"),
		new \AcademyHQ\API\ValueObjects\Email("your_email"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_city"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_state"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_country"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_postal_code"),
		new \AcademyHQ\API\ValueObjects\Integer("your_disability"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_disability_text"),
		new \AcademyHQ\API\ValueObjects\Integer("your_advice"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_advice_text"),
		new \AcademyHQ\API\ValueObjects\Integer("your_eye_test_document_id"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_eye_test_data_image"),
		new \AcademyHQ\API\ValueObjects\Integer("your_mimimum_educational_document_id"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_minimum_educational_data_image"),
		new \AcademyHQ\API\ValueObjects\Integer("your_signature_id"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_signature_data_image"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_image")
	);

26> 获取候选人

	/*@returns member_details std object*/
	$member_base = $organisation_admin_repository->get_candidates(
		new \AcademyHQ\API\ValueObjects\Token("your_token"),
		new \AcademyHQ\API\ValueObjects\Integer("employer_id"),
		new \AcademyHQ\API\ValueObjects\Integer("is_declined"),
		new \AcademyHQ\API\ValueObjects\Integer("is_approved_by_etb_ao"),
		new \AcademyHQ\API\ValueObjects\Integer("is_approved_by_solas_admin"),
		new \AcademyHQ\API\ValueObjects\Integer("ato_id"),
		new \AcademyHQ\API\ValueObjects\StringVO("order_by_field"),
		new \AcademyHQ\API\ValueObjects\StringVO("order_by_direction")
	);

27> 获取现场访问

	/*@return site_visits std object*/
	$site_visits = $organisation_admin_repository->get_site_visits(
		new \AcademyHQ\API\ValueObjects\Token("your_token"),
		new \AcademyHQ\API\ValueObjects\OrganisationID("your_organisation_id")
	);

28> 获取学徒制清单

	/*@return apprenticeship_checklist std object*/
	$apprenticeship_checklist = $organisation_admin_repository->apprenticeship_checklist(
		new \AcademyHQ\API\ValueObjects\Token("your_token"),
		new \AcademyHQ\API\ValueObjects\ID("your_aprrenticeship_id")
	);

29> 发送电子邮件设置密码

	/*@returns member_details std object*/
	$email = $organisation_admin_repository->send_email_to_set_password(
		new \AcademyHQ\API\ValueObjects\Token("your_token"),
		new \AcademyHQ\API\ValueObjects\Integer("your_member_id")
	);

30> 获取评估者或验证者

	/*@return assessors_or_verifiers std object*/
	$assessors_or_verifiers = $organisation_admin_repository->get_assessor_or_verifier(
		new \AcademyHQ\API\ValueObjects\Token("your_token"),
		new \AcademyHQ\API\ValueObjects\OrganisationID("your_organisation_id")
	);

31> 更新成员

	/*@return member_detaisl std object of updated memeber*/
	$member_detaisl = $organisation_admin_repository->update_member(
		new \AcademyHQ\API\ValueObjects\Token("your_token"),
		new \AcademyHQ\API\ValueObjects\ID("member_id"),
		new \AcademyHQ\API\ValueObjects\Integer("is_mentor"),
		new \AcademyHQ\API\ValueObjects\Integer("is_verifier"),
		new \AcademyHQ\API\ValueObjects\Integer("is_contact_person"),
		new \AcademyHQ\API\ValueObjects\StringVO("mobile_number"),
		new \AcademyHQ\API\ValueObjects\StringVO("country_code")
	);

32> 获取学徒制文件

	/*@return apprenticeship_documents std object of updated memeber*/
	$apprenticeship_documents = $organisation_admin_repository->apprenticeship_documents(
		new \AcademyHQ\API\ValueObjects\Token("your_token"),
		new \AcademyHQ\API\ValueObjects\Integer("apprenticeship_id")
	);

33> 获取学徒文件

	/*@return apprentice_documents std object of updated memeber*/
	$apprentice_documents = $organisation_admin_repository->apprentice_documents(
		new \AcademyHQ\API\ValueObjects\Token("your_token"),
		new \AcademyHQ\API\ValueObjects\Integer("apprentice_id")
	);

34> 获取所有职业、行业、部门和主要活动

	/*@return data std object*/
	$data = $organisation_admin_repository->list_occupations_main_activities_industries_sectors(
		new \AcademyHQ\API\ValueObjects\Token("your_token")
	);

使用学习者存储库

1. 获取所有膜状文档

	/*@return member_documents_details std object */
  	/* member_document_details std object will contain id, created_at, updated_at, is_deleted, is_active, is_expired, expires_at, document_key, document_id, document of member_documents_details*/
  	$member_document_detials = $learner_repository->member_documents(new \AcademyHQ\API\ValueObjects\Token('your token'));

2. 获取成员注册证书

	/*@return member_enrolment_certificate std object */
  	$member_enrolment_certificate = $learner_repository->member_enrolment_certificate(new \AcademyHQ\API\ValueObjects\Token('your token'), new \AcademyHQ\API\ValueObjects\EnrolmentID('your_enrolment_id'));

3. 获取所有证书

	/*@return certificates std object */
  	/* certificate std object will contain id, course, member, certificate, enrolment_succeeded_at, expire_at of certificates*/
  	$certificates = $learner_repository->certificates(new \AcademyHQ\API\ValueObjects\Token('your token'));

4. 编辑个人资料

	/*@return member_id of editied profile*/
	$profile = $learner_repository->profile_update(
		new \AcademyHQ\API\ValueObjects\Token("your_token"),
		new \AcademyHQ\API\ValueObjects\PublicID("your_pub_id"),
		\AcademyHQ\API\ValueObjects\Name::fromNative("first_name", "last_name"),
		new \AcademyHQ\API\ValueObjects\Email("your_email"),
		new \AcademyHQ\API\ValueObjects\PhoneNumber("your_mobile_number"),
		new \AcademyHQ\API\ValueObjects\StringVO("yy-mm-dd"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_gender"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_country"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_state"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_city"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_street"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_postal_code"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_image")
	);

5. 查看个人资料

	/*@return member_profile_details std object */
  	/* member_profile_details std object will contain id, pub_id, first_name, last_name, email, mobile_number, date_of_birth, gender, address of member_profile_details*/
  	$member_profile_details = $learner_repository->get_profile(new \AcademyHQ\API\ValueObjects\Token('your token'));

6. 获取成员文档详情

	/*@return member_documents_details std object */
  	/* member_document_details std object of member_documents_details*/
  	$member_document_detials = $learner_repository->member_document_details(new \AcademyHQ\API\ValueObjects\Token('your token'), new \AcademyHQ\API\ValueObjects\MemberDocuementID('your_member_document_id'));

7. 获取所有文档

	/*@return documents_details std object */
  	/* document_details std object of documents_details*/
  	$document_detials = $learner_repository->documents_list(new \AcademyHQ\API\ValueObjects\Token('your token'));

8. 获取所有必需文档

	/*@return documents_details std object */
  	/* document_details std object of documents_details*/
  	$document_detials = $learner_repository->required_document_list(new \AcademyHQ\API\ValueObjects\Token('your token'));

9. 下载证书

	/*@return certifiacte_url std object */
  	/* document_details std object of documents_details*/
  	$certifiacte_url = $learner_repository->download_certificate(new \AcademyHQ\API\ValueObjects\Token('your token'), new \AcademyHQ\API\ValueObjects\MemberCertificateID('your_member_certificate_id'));

10. 注册启动URL

	/*@return enrolment std object */
  	$enrolment = $learner_repository->enrolment_launch_url(new \AcademyHQ\API\ValueObjects\Token('your token'), new \AcademyHQ\API\ValueObjects\EnrolmentID('your_enrolment_id'));

10. 注册回调

	/*@return enrolment std object */
  	$enrolment = $learner_repository->enrolment_callback(new \AcademyHQ\API\ValueObjects\Token('your token'), new \AcademyHQ\API\ValueObjects\EnrolmentID('your_enrolment_id'));

11. 获取成员

	/*@return member_details std object */
  	$member_details = $learner_repository->get_member(new \AcademyHQ\API\ValueObjects\Token('your token'), new \AcademyHQ\API\ValueObjects\MemberID('your_member_id'));

12. 获取学习者的文档

	/*@return document_details std object */
  	$document_details = $learner_repository->learner_document(
  		new \AcademyHQ\API\ValueObjects\Token('your token'), 
  		new \AcademyHQ\API\ValueObjects\ID('your_member_id'),
  		new \AcademyHQ\API\ValueObjects\StringVO('your_document_name')
  	);

使用 ETBAO 仓库

1. 创建现场访问

	/*@return site_visit std object */
  	$site_visit = $etbao_repository->create_site_visit(
		new \AcademyHQ\API\ValueObjects\Token("your_token"),
		new \AcademyHQ\API\ValueObjects\Integer("your_employer_id"),
		new \AcademyHQ\API\ValueObjects\Integer("your_apprenticeship_id"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_booked_at")
	);

2. 编辑现场访问

	/*@return site_visit of updated site_visit std object */
  	$site_visit = $etbao_repository->edit_site_visit(
		new \AcademyHQ\API\ValueObjects\Token("your_token"),
		new \AcademyHQ\API\ValueObjects\Integer("your_site_visit_id"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_booked_at"),
		new \AcademyHQ\API\ValueObjects\Integer("your_is_visited"),
		new \AcademyHQ\API\ValueObjects\StringVO("your_site_visited_at")
	);

3. 创建学徒清单

	/*@return apprentice_checklist std object */
  	$apprentice_checklist = $etbao_repository->create_apprenticeship_checklist(
		new \AcademyHQ\API\ValueObjects\Token("your_token"),
		new \AcademyHQ\API\ValueObjects\StringVO("json_of_checklist_questions"),
		new \AcademyHQ\API\ValueObjects\Integer("your_apprenticeship_id")
	);

4. 获取学徒清单

	/*@return apprenticeship_checklist std object*/
	$apprenticeship_checklist = $etbao_repository->apprenticeship_checklist(
		new \AcademyHQ\API\ValueObjects\Token("your_token"),
		new \AcademyHQ\API\ValueObjects\ID("your_aprrenticeship_id")
	);

4. 获取我的 ETB

	*@return my_etb std object */
  	$my_etb = $etbao_repository->get_my_etb(new \AcademyHQ\API\ValueObjects\Token('your token'));

5. 获取所有学徒制

	*@return apprenticeships std object */
  	$apprenticeships = $etbao_repository->fetch_all_apprenticeships(
  	new \AcademyHQ\API\ValueObjects\Token('your token'),
  	new \AcademyHQ\API\ValueObjects\Integer("employer_id"),
  	new \AcademyHQ\API\ValueObjects\Integer("has_passed"),
  	new \AcademyHQ\API\ValueObjects\Integer("is_booked"),
  	new \AcademyHQ\API\ValueObjects\StringVO("query"),
  	new \AcademyHQ\API\ValueObjects\Integer("set_per_page"),
  	new \AcademyHQ\API\ValueObjects\Integer("page"),
  	new \AcademyHQ\API\ValueObjects\StringVO("order_by_field"),
  	new \AcademyHQ\API\ValueObjects\StringVO("order_by_direction")
  	);

6. 获取候选人

	/*@returns member_details std object*/
	$member_details = $etbao_repository->get_candidates(
		new \AcademyHQ\API\ValueObjects\Token("your_token"),
		new \AcademyHQ\API\ValueObjects\Integer("employer_id"),
		new \AcademyHQ\API\ValueObjects\Integer("is_declined"),
		new \AcademyHQ\API\ValueObjects\Integer("is_approved_by_etb_ao"),
		new \AcademyHQ\API\ValueObjects\Integer("is_approved_by_solas_admin"),
		new \AcademyHQ\API\ValueObjects\StringVO("order_by_field"),
		new \AcademyHQ\API\ValueObjects\StringVO("order_by_direction")
	);

7. 创建学徒文档

	/*@returns apprenticeship_document std object*/
	$apprenticeship_document = $etbao_repository->create_apprenticeship_document(
		new \AcademyHQ\API\ValueObjects\Token("your_token"),
		new \AcademyHQ\API\ValueObjects\ID("apprenticeship_id"),
		new \AcademyHQ\API\ValueObjects\Integer("is_declined"),
		new \AcademyHQ\API\ValueObjects\Integer("is_approved"),
		new \AcademyHQ\API\ValueObjects\Integer("is_approved_by_solas_admin"),
		new \AcademyHQ\API\ValueObjects\Integer("is_rejected_by_solas_admin"),
		new \AcademyHQ\API\ValueObjects\StringVO("type"),
		new \AcademyHQ\API\ValueObjects\StringVO("document"),
		new \AcademyHQ\API\ValueObjects\StringVO("extension")
	);

8. 创建学徒文档

	/*@returns apprentice_document std object*/
	$apprenticeship_document = $etbao_repository->create_apprentice_document(
		new \AcademyHQ\API\ValueObjects\Token("your_token"),
		new \AcademyHQ\API\ValueObjects\Integer("member_id"),
		new \AcademyHQ\API\ValueObjects\Integer("apprenticeship_id"),
		new \AcademyHQ\API\ValueObjects\Integer("is_declined"),
		new \AcademyHQ\API\ValueObjects\Integer("is_approved_by_etb_ao"),
		new \AcademyHQ\API\ValueObjects\Integer("is_approved_by_solas_admin"),
		new \AcademyHQ\API\ValueObjects\StringVO("type"),
		new \AcademyHQ\API\ValueObjects\StringVO("document"),
		new \AcademyHQ\API\ValueObjects\StringVO("extension")
	);

使用 ETB 管理员仓库

1. 分配 AO 至学徒申请

	/*@return updated apprenticeship_details std object */
  	$apprenticeship = $etbadmin_repository->assign_ao_to_apprenticeship_application(
		new \AcademyHQ\API\ValueObjects\Token("your_token"),
		new \AcademyHQ\API\ValueObjects\ApprenticeshipID("your_apprenticeship_id"),
		new \AcademyHQ\API\ValueObjects\Integer("your_employer_id")
	);

2. 获取我的 ETB 授权官员

	*@return etb_authorizing_officer_details std object */
  	$etb_authorizing_officer_details = $etbadmin_repository->get_etb_admins(new \AcademyHQ\API\ValueObjects\Token('your token'));

3. 获取我的 ETB

	*@return my_etb std object */
  	$my_etb = $etbadmin_repository->get_my_etb(new \AcademyHQ\API\ValueObjects\Token('your token'));

4. 获取所有学徒制

	*@return apprenticeships std object */
  	$apprenticeships = $etbadmin_repository->fetch_all_apprenticeships(
  	new \AcademyHQ\API\ValueObjects\Token('your token'),
  	new \AcademyHQ\API\ValueObjects\Integer("employer_id"),
  	new \AcademyHQ\API\ValueObjects\Integer("is_new_apprenticeships_application"),
  	new \AcademyHQ\API\ValueObjects\Integer("is_site_visit_approved"),
  	new \AcademyHQ\API\ValueObjects\Integer("is_site_visit_rejected"),
  	new \AcademyHQ\API\ValueObjects\Integer("is_site_visit_booked"),
  	new \AcademyHQ\API\ValueObjects\Integer("current_page"),
  	new \AcademyHQ\API\ValueObjects\Integer("set_per_page"),
  	new \AcademyHQ\API\ValueObjects\StringVO("order_by_field"),
  	new \AcademyHQ\API\ValueObjects\StringVO("order_by_direction")
  	);

使用评估者仓库

1>编辑项目证据

	/*@return updated program_evidence std object */
  	$program_evidence = $assessor_repository->edit_program_evidence(
		new \AcademyHQ\API\ValueObjects\Token("your_token"),
		new \AcademyHQ\API\ValueObjects\Integer("your_program_evidence_id"),
		new \AcademyHQ\API\ValueObjects\Integer("is_approved_by_assessor"),
		new \AcademyHQ\API\ValueObjects\Integer("is_rejected_by_assessor")
	);

2>编辑成员项目

	/*@return updated member_program std object */
  	$member_program = $assessor_repository->edit_member_program(
		new \AcademyHQ\API\ValueObjects\Token("your_token"),
		new \AcademyHQ\API\ValueObjects\Integer("your_member_program_id"),
		new \AcademyHQ\API\ValueObjects\Integer("is_completed")
	);

3>获取成员审计

	/*@return member_audit_forms std object */
  	$member_audit_forms = $assessor_repository->member_audits(
		new \AcademyHQ\API\ValueObjects\Token("your_token"),
		new \AcademyHQ\API\ValueObjects\ID("your_member_program_id")
	);

4>获取成员审计表单启动URL

	/*@return launch_url std object */
  	$launch_url = $assessor_repository->member_audit_launch(
		new \AcademyHQ\API\ValueObjects\Token("your_token"),
		new \AcademyHQ\API\ValueObjects\ID("your_member_audit_form_id")
	);

4>获取成员审计表单视图

	/*@return member_audit_from std object */
  	$member_audit_from = $assessor_repository->member_audit_view(
		new \AcademyHQ\API\ValueObjects\Token("your_token"),
		new \AcademyHQ\API\ValueObjects\ID("your_member_audit_form_id")
	);

5>编辑成员审计表单

	/*@return updated member_audit_from std object */
  	$member_audit_from = $assessor_repository->edit_member_audit(
		new \AcademyHQ\API\ValueObjects\Token("your_token"),
		new \AcademyHQ\API\ValueObjects\Integer("your_member_audit_form_id"),
		new \AcademyHQ\API\ValueObjects\Integer("is_assessed"),
		new \AcademyHQ\API\ValueObjects\Integer("is_verified"),
		new \AcademyHQ\API\ValueObjects\Integer("is_approved")
	);

使用GDPR仓库

1>子组织创建继承域

 	/*@returns organisation_details of created sub organisation*/
	$sub_organisation = $GDPR_repository->sub_org_create_inherit_domain(
		new \AcademyHQ\API\ValueObjects\StringVO("Test Organisation")
	);

2>子组织管理员创建

 	/*@returns member_details of created sub organisation admin*/
	$sub_organisation_admin = $GDPR_repository->create_sub_org_admin(
		new \AcademyHQ\API\ValueObjects\OrganisationID('sub_organisation_id'),
		\AcademyHQ\API\ValueObjects\Name::fromNative("First Name", "Last Name"),
		new \AcademyHQ\API\ValueObjects\Email('your_email')
	);

3>创建许可证

 	/*@returns license_details of created license*/
	$license_details = $GDPR_repository->create_license(
		new \AcademyHQ\API\ValueObjects\OrganisationID('sub_organisation_id'),
		new \AcademyHQ\API\ValueObjects\CourseID("course_id"),
		new \AcademyHQ\API\ValueObjects\MemberID('admin_id'),
		new \AcademyHQ\API\ValueObjects\Integer('quantity_of_license'),
		new \AcademyHQ\API\ValueObjects\StringVO('price_of_license'),
		new \AcademyHQ\API\ValueObjects\StringVO('currency'),
		new \AcademyHQ\API\ValueObjects\StringVO('vat_rate'),
		new \AcademyHQ\API\ValueObjects\StringVO('vat_number')
	);

4>创建成员

	/*@return member details of created member*/
	$member_details = $GDPR_repository->create_enrolment(
		new \AcademyHQ\API\ValueObjects\OrganisationID('organisation_id'),
		new \AcademyHQ\API\ValueObjects\Name::fromNative("First Name", "Last Name"), 
		new \AcademyHQ\API\ValueObjects\Email('email')
	);

5>创建注册

	/*@return enrolment details of created enrolment*/
	$enrolment_details = $GDPR_repository->create_enrolment(
		new \AcademyHQ\API\ValueObjects\MemberID('member_id'),
		new \AcademyHQ\API\ValueObjects\CourseID('course_id') 
	);

6>检查许可证

	/*@return true or false accroding to availability of license*/
	$is_available = $GDPR_repository->check_license(
		new \AcademyHQ\API\ValueObjects\LicenseID('license_id') 
	);

7>回滚

	/*@return success message*/
	$rollback_message = $GDPR_repository->rollback(
		new \AcademyHQ\API\ValueObjects\MemberID('member_id'),
		new \AcademyHQ\API\ValueObjects\OrganisationID('organisation_id') 
	);

8>VAT验证

	/*@return true or false according to vat validation*/
	$validation = $GDPR_repository->rollback(
		new \AcademyHQ\API\ValueObjects\StringVO('country_code'),
		new \AcademyHQ\API\ValueObjects\StringVO('vat_number') 
	);

9>使用API创建合作伙伴组织

 	/*@returns organisation_details of created sub organisation*/
	$sub_organisation = $GDPR_repository->create_partner_with_apis(
		new \AcademyHQ\API\ValueObjects\StringVO("Test Organisation")
	);

10>创建新许可证

 	/*@returns license_details of created license*/
	$license_details = $GDPR_repository->create_license_new(
		new \AcademyHQ\API\ValueObjects\OrganisationID('sub_organisation_id'),
		new \AcademyHQ\API\ValueObjects\CourseID("course_id"),
		new \AcademyHQ\API\ValueObjects\MemberID('admin_id'),
		new \AcademyHQ\API\ValueObjects\Integer('quantity_of_license'),
		new \AcademyHQ\API\ValueObjects\StringVO('price_of_license'),
		new \AcademyHQ\API\ValueObjects\StringVO('currency'),
		new \AcademyHQ\API\ValueObjects\StringVO('vat_rate'),
		new \AcademyHQ\API\ValueObjects\StringVO('vat_number')
	);

使用CRMS仓库

1>创建组织(客户端)到Academyhq

	/*@return created client_details std object */
  	$client_details = $crms_repository->create_client(
		new \AcademyHQ\API\ValueObjects\StringVO("Organisation name"),
		new \AcademyHQ\API\ValueObjects\StringVO("domain name")
	);

2>获取所有公开课程

	/*@return all public courses details std object */
  	$course_details = $crms_repository->get_courses(
		new \AcademyHQ\API\ValueObjects\StringVO("search parameter"),
		new \AcademyHQ\API\ValueObjects\Integer("page_number")
	);

3>创建课程

	/*@return created standard course details std object */
  	$client_details = $crms_repository->create_course(
		new \AcademyHQ\API\ValueObjects\StringVO("course name"),
		new \AcademyHQ\API\ValueObjects\StringVO("course description"),
		new \AcademyHQ\API\ValueObjects\StringVO("image_url")
	);

4>查找许可证

	/*@return return license_details std object */
  	$license_details = $crms_repository->find_license(
		new \AcademyHQ\API\ValueObjects\OrganisationID("organisation_id"),
		new \AcademyHQ\API\ValueObjects\CourseID("course_id")
	);

使用课程API仓库

1>获取所有组织许可证

	/*@return all licenses with course details std object */
  	$license_details = $course_api_repository->get_licenses(
		new \AcademyHQ\API\ValueObjects\StringVO("search parameter"),
		new \AcademyHQ\API\ValueObjects\Integer("page_number")
	);

使用成员API仓库

1>获取所有组织许可证

	/*@return all members details std object */
  	$member_details = $course_api_repository->get_members(
		new \AcademyHQ\API\ValueObjects\StringVO("search parameter"),
		new \AcademyHQ\API\ValueObjects\Integer("page_number")
	);