123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- <?php
- namespace App\Http\Controllers;
- use Illuminate\Support\Facades\Route;
- use App\Models\Client;
- use App\Models\Company;
- use App\Models\Pro;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\DB;
- use Illuminate\Support\Facades\File;
- use App\Models\InternalMessage;
- use OpenTok\MediaMode;
- use OpenTok\OpenTok;
- use Ramsey\Collection\CollectionInterface;
- class MessageController extends Controller
- {
- protected $opentok;
- protected $otSession;
- protected $otSessionId;
- protected $otToken;
- public function __construct(Request $request)
- {
- parent::__construct();
- $this->opentok = new OpenTok(config('app.opentokApiKey'),config('app.opentokApiSecret'));
- $this->otSession = $this->opentok->createSession(array('mediaMode' => MediaMode::ROUTED));
- $this->otSessionId = $this->otSession->getSessionId();
- $this->otToken = $this->opentok->generateToken($this->otSessionId);
- view()->share('opentok',$this->opentok);
- view()->share('otSession',$this->otSession);
- view()->share('otSessionId',$this->otSessionId);
- view()->share('otToken',$this->otToken);
- }
- public function messages(Request $request, Client $patient){
- $defaultCompanyUid = $request->get('orgUid');
- if(!$defaultCompanyUid){
- $defaultCompany = $patient->companyClients->first();
- $defaultCompanyUid = $defaultCompany->company->uid;
- $defaultCompanyID = $defaultCompany->company->id;
- }else{
- $defaultCompany = Company::where('uid', $defaultCompanyUid)->first();
- $defaultCompanyID = $defaultCompany->id;
- }
- if(!$defaultCompany) return view('app.patient.messages-no-company', compact('patient'));
-
- $regardingClient = $patient;
- $messages = InternalMessage::where('regarding_company_id', $defaultCompanyID)->where('regarding_client_id', $patient->id)->orderBy('created_at', 'ASC')->paginate(25);
- return view('app.patient.messages', compact('patient', 'regardingClient', 'messages', 'defaultCompany'));
- }
- public function clientMessagesAttachments(Request $request, Client $patient, InternalMessage $message)
- {
- if(!$message) return '';
- $output = [];
- foreach ($message->attachments as $attachment) {
- $output[] = '<a native target="_blank" ' .
- 'href="/api/internalMessageAttachment/download/' . $attachment->uid . '" ' .
- 'class="attachment text-sm my-1">' .
- '<i class="fa fa-paperclip"></i> ' .
- $attachment->systemFile->file_name .
- '</a>';
- }
- return implode("", $output);
- }
- }
|