Skip to content

Package: consultations

Generated from api/packages/consultations

Source: api/packages/consultations · imported version 0.3.11. The sections after the README are extracted from the code on every docs build.

One to one conversation package

This package is used for creating Consultation for Ulams.

  • composer require ulams/consultations
  • php artisan migrate
  • php artisan db:seed --class="Ulams\Consultations\Database\Seeders\ConsultationsPermissionSeeder"
  • In App\Console\Kernel to method schedule add
    • $schedule->job(new ReminderAboutConsultationJob(ConsultationTermReminderStatusEnum::REMINDED_HOUR_BEFORE))->everyFiveMinutes() - reminder about to consultation before one hour, executed every 5 minutes
    • $schedule->job(new ReminderAboutWebinarJob(ConsultationTermReminderStatusEnum::REMINDED_DAY_BEFORE))->everySixHours(); - reminder about to consultation before one day, executed every 6 hours

All the endpoints are defined in swagger

Run ./vendor/bin/phpunit --filter=Consultation to run tests. See tests folder as it’s quite good staring point as documentation appendix.

Test details codecov phpunit

  • Ulams\Consultations\Events\ApprovedTerm => Event is dispatched when trainer approved term reported with buyer. Event refers to users, who have permissions students
  • Ulams\Consultations\Events\ApprovedTermWithTrainer => Event is dispatched when trainer approved term reported with buyer. Event refers to users, who have permissions tutor
  • Ulams\Consultations\Events\ChangeTerm => Event is dispatched when trainer changes term in buyed consultations. Event refers to users, who have permissions students
  • Ulams\Consultations\Events\RejectTerm => Event is dispatched when trainer rejects term reported with buyer. Event refers to users, who have permissions students
  • Ulams\Consultations\Events\RejectTermWithTrainer => Event is dispatched when trainer rejects term reported with buyer. Event refers to users, who have permissions tutor
  • Ulams\Consultations\Events\ReminderAboutTerm => Event is dispatched after execute cron job Ulams\Consultations\Jobs\ReminderAboutConsultationJob, Event is dispatched when deadline for purchased consultation before 1 hours and 1 day. Event refers to users, who have permissions students
  • Ulams\Consultations\Events\ReminderTrainerAboutTerm => Event is dispatched some time before start consultation. Event refers to users, who have permissions tutor
  • Ulams\Consultations\Events\ReportTerm => Event is dispatched after reported term with buyer consultation
  • Ulams\Webinar\Listeners\ReminderAboutTermListener => Listener execute a method that singed the status in the webinar reminder

Left menu

Menu

List of consultations

List of consultations

Creating/editing consultation

Creating/editing consultation

See implementation in the demo.

Permissions are defined in seeder

  1. Author Consultation is related belong to with User
  2. ProposedTerms Consultation model has many to models ConsultationProposedTerm
  3. Categories Consultation belongs to many with models Categories
  4. Users Consultation is related belongs to many with User which bought consultation
  5. Terms Consultation model has many to models ConsultationUserPivot. It is reported terms
Consultation 1 -> 1 Author
Consultation 1 -> n ProposedTerms
Consultation 1 -> n Categories
Consultation 1 -> n Users
Consultation 1 -> n Terms
Method Path Auth Action
POST /api/admin/consultations/{id} yes ConsultationController@update
GET /api/admin/consultations yes ConsultationController@index
GET /api/admin/consultations/create yes ConsultationController@create
POST /api/admin/consultations yes ConsultationController@store
GET /api/admin/consultations/{id} yes ConsultationController@show
GET /api/admin/consultations/{id}/edit yes ConsultationController@edit
PUT|PATCH /api/admin/consultations/{id} yes ConsultationController@update
DELETE /api/admin/consultations/{id} yes ConsultationController@destroy
GET /api/admin/consultations/{id}/schedule yes ConsultationController@schedule
POST /api/admin/consultations/change-term/{consultationTermId} yes ConsultationController@changeTerm
GET /api/admin/consultations/users/assignable yes ConsultationController@assignableUsers
GET /api/consultations/me yes ConsultationAPIController@forCurrentUser
GET /api/consultations/my-schedule yes ConsultationAPIController@schedule
POST /api/consultations/report-term/{consultationTermId} yes ConsultationAPIController@reportTerm
GET /api/consultations/proposed-terms/{consultationTermId} yes ConsultationAPIController@proposedTerms
GET /api/consultations/approve-term/{consultationTermId} yes ConsultationAPIController@approveTerm
GET /api/consultations/reject-term/{consultationTermId} yes ConsultationAPIController@rejectTerm
GET /api/consultations/generate-jitsi/{consultationTermId} yes ConsultationAPIController@generateJitsi
POST /api/consultations/change-term/{consultationTermId} yes ConsultationController@changeTerm
POST /api/consultations/finish-term/{consultationTermId} yes ConsultationAPIController@finishTerm
GET /api/consultations ConsultationAPIController@index
GET /api/consultations/{id} ConsultationAPIController@show
Permission Seeded for roles Constant
consultation_list admin ConsultationsPermissionsEnum::CONSULTATION_LIST
consultation_list-own tutor ConsultationsPermissionsEnum::CONSULTATION_LIST_OWN
consultation_create admin, tutor ConsultationsPermissionsEnum::CONSULTATION_CREATE
consultation_update admin ConsultationsPermissionsEnum::CONSULTATION_UPDATE
consultation_update-own tutor ConsultationsPermissionsEnum::CONSULTATION_UPDATE_OWN
consultation_delete admin ConsultationsPermissionsEnum::CONSULTATION_DELETE
consultation_delete-own tutor ConsultationsPermissionsEnum::CONSULTATION_DELETE_OWN
consultation_read admin ConsultationsPermissionsEnum::CONSULTATION_READ
consultation_read-own tutor ConsultationsPermissionsEnum::CONSULTATION_READ_OWN
consultation_change_term admin, tutor ConsultationsPermissionsEnum::CONSULTATION_CHANGE_TERM

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

None.

Event Description Notification templates
ApprovedTerm Email, Sms
ApprovedTermWithTrainer Email, Sms
ChangeTerm Email
RejectTerm Email, Sms
RejectTermWithTrainer Email, Sms
ReminderAboutTerm Email, Email, Sms
ReminderTrainerAboutTerm Email, Sms
ReportTerm Email, Sms

None.

Command Description Signature
meetings:purge-frames Delete stored consultation and webinar webcam frames (never the images folders) meetings:purge-frames {--dry-run : Only list what would be deleted}

None.

AWS_URL