MessageController.php 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. namespace App\Http\Controllers;
  3. use Illuminate\Support\Facades\Route;
  4. use App\Models\Client;
  5. use App\Models\Company;
  6. use App\Models\CompanyClient;
  7. use App\Models\Pro;
  8. use Illuminate\Http\Request;
  9. use Illuminate\Support\Facades\DB;
  10. use Illuminate\Support\Facades\File;
  11. use App\Models\InternalMessage;
  12. use OpenTok\MediaMode;
  13. use OpenTok\OpenTok;
  14. use Ramsey\Collection\CollectionInterface;
  15. class MessageController extends Controller
  16. {
  17. protected $opentok;
  18. protected $otSession;
  19. protected $otSessionId;
  20. protected $otToken;
  21. public function __construct(Request $request)
  22. {
  23. parent::__construct();
  24. $this->opentok = new OpenTok(config('app.opentokApiKey'),config('app.opentokApiSecret'));
  25. $this->otSession = $this->opentok->createSession(array('mediaMode' => MediaMode::ROUTED));
  26. $this->otSessionId = $this->otSession->getSessionId();
  27. $this->otToken = $this->opentok->generateToken($this->otSessionId);
  28. view()->share('opentok',$this->opentok);
  29. view()->share('otSession',$this->otSession);
  30. view()->share('otSessionId',$this->otSessionId);
  31. view()->share('otToken',$this->otToken);
  32. }
  33. public function messages(Request $request, Client $patient){
  34. $defaultCompanyClient = $this->getDefaultCompanyClientFromSession($patient);
  35. $defaultCompany = $defaultCompanyClient->company;
  36. $regardingClient = $patient;
  37. $messages = InternalMessage::where('regarding_company_id', $defaultCompany->id)->where('regarding_client_id', $patient->id)->orderBy('created_at', 'ASC')->paginate(100);
  38. return view('app.patient.company-client.messages', compact('patient', 'regardingClient', 'messages', 'defaultCompanyClient', 'defaultCompany'));
  39. }
  40. public function clientMessagesAttachments(Request $request, Client $patient, InternalMessage $message)
  41. {
  42. if(!$message) return '';
  43. $output = [];
  44. foreach ($message->attachments as $attachment) {
  45. $output[] = '<a native target="_blank" ' .
  46. 'href="/api/internalMessageAttachment/download/' . $attachment->uid . '" ' .
  47. 'class="attachment text-sm my-1">' .
  48. '<i class="fa fa-paperclip"></i>&nbsp;' .
  49. $attachment->systemFile->file_name .
  50. '</a>';
  51. }
  52. return implode("", $output);
  53. }
  54. }