Skip to content

Package: consultation-access

Generated from api/packages/consultation-access

Source: api/packages/consultation-access · imported version 0.1.3. The sections after the README are extracted from the code on every docs build.

This package is used to create enquiries for free consultation access.
Users with appropriate permissions can accept the enquiry and send a meeting link or reject the enquiry by sending a response message.

Consultation management is in our other package which is here.

  • composer require ulams/consultation-access
  • php artisan migrate
  • php artisan db:seed --class="Ulams\ConsultationAccess\Database\Seeders\ConsultationAccessPermissionSeeder"

The endpoints are defined in swagger

Run ./vendor/bin/phpunit to run tests. Test details codecov

  • ConsultationAccessEnquiryAdminCreatedEvent - This event is dispatched when a user submits an enquiry for consultation. It includes the enquiry itself and the user who has authorization to approve it.
  • ConsultationAccessEnquiryAdminUpdatedEvent - This event is dispatched when an enquiry is updated. It includes the author of the enquiry and the enquiry itself. Includes reason for refusal
  • ConsultationAccessEnquiryApprovedEvent - This event is dispatched when an enquiry is approved.
  • ConsultationAccessEnquiryDisapprovedEvent - This event is dispatched when an enquiry is disapproved (includes reason for refusal).

See the diagram below

sequenceDiagram
    participant Student
    participant LMS
    participant Admin

    Student->>LMS: Request consultation access
    LMS->>Admin: Notify
    Admin->>Admin: Review enquiry
    alt Enquiry approved
        Admin->>LMS: Approve request
        LMS -->> Student: Send notification of approval
    else Enquiry rejected
        Admin->>LMS: Reject enquiry
        LMS -->> Student: Send rejection notification
    end
    

If you don’t send the meeting_url during the approval, an automatic space will be created in Pencil Spaces, and that link will be saved. You can find more information here.

This package does not listen for any events.

Permissions are defined in seeder.

Method Path Auth Action
GET /api/admin/consultation-access-enquiries yes ConsultationAccessEnquiryAdminApiController@index
POST /api/admin/consultation-access-enquiries/approve/{proposedTermId} yes ConsultationAccessEnquiryAdminApiController@approve
POST /api/admin/consultation-access-enquiries/disapprove/{id} yes ConsultationAccessEnquiryAdminApiController@disapprove
GET /api/consultation-access-enquiries yes ConsultationAccessEnquiryApiController@index
POST /api/consultation-access-enquiries yes ConsultationAccessEnquiryApiController@create
GET /api/consultation-access-enquiries/{id} yes ConsultationAccessEnquiryApiController@read
GET /api/consultation-access-enquiries/{id}/join yes ConsultationAccessEnquiryApiController@join
PATCH /api/consultation-access-enquiries/{id} yes ConsultationAccessEnquiryApiController@update
DELETE /api/consultation-access-enquiries/{id} yes ConsultationAccessEnquiryApiController@delete
Permission Seeded for roles Constant
consultation-access_create-own admin, student ConsultationAccessPermissionEnum::CREATE_OWN_CONSULTATION_ACCESS_ENQUIRY
consultation-access_list-own admin, student ConsultationAccessPermissionEnum::LIST_OWN_CONSULTATION_ACCESS_ENQUIRY
consultation-access_read-own admin, student ConsultationAccessPermissionEnum::READ_OWN_CONSULTATION_ACCESS_ENQUIRY
consultation-access_delete-own admin, student ConsultationAccessPermissionEnum::DELETE_OWN_CONSULTATION_ACCESS_ENQUIRY
consultation-access_update-own admin, student ConsultationAccessPermissionEnum::UPDATE_OWN_CONSULTATION_ACCESS_ENQUIRY
consultation-access_list admin ConsultationAccessPermissionEnum::LIST_CONSULTATION_ACCESS_ENQUIRY
consultation-access_approve admin ConsultationAccessPermissionEnum::APPROVE_CONSULTATION_ACCESS_ENQUIRY
consultation-access_disapprove admin ConsultationAccessPermissionEnum::DISAPPROVE_CONSULTATION_ACCESS_ENQUIRY

Registered with AdministrableConfig::registerConfig (editable in the admin panel under Configuration → Settings).

None.

Event Description Notification templates
ConsultationAccessEnquiryAdminCreatedEvent Email
ConsultationAccessEnquiryAdminUpdatedEvent
ConsultationAccessEnquiryApprovedEvent Email
ConsultationAccessEnquiryDisapprovedEvent Email
ConsultationAccessEnquiryEvent

None.

None.

None.

None.