diff --git a/app/Http/Controllers/Api/V1/LtiTool/LtiToolSettingsController.php b/app/Http/Controllers/Api/V1/LtiTool/LtiToolSettingsController.php index 7b0c78d44..8ec9520bc 100644 --- a/app/Http/Controllers/Api/V1/LtiTool/LtiToolSettingsController.php +++ b/app/Http/Controllers/Api/V1/LtiTool/LtiToolSettingsController.php @@ -219,7 +219,7 @@ public function clone(Request $request, Organization $suborganization, LtiToolSe 'user_id' => 'required|exists:users,id', 'organization_id' => 'required|exists:organizations,id' ]); - CloneLtiToolSetting::dispatch($ltiToolSetting, $suborganization, $request->bearerToken())->delay(now()->addSecond()); + CloneLtiToolSetting::dispatch($ltiToolSetting, $suborganization, $requestData['user_id'], $request->bearerToken())->delay(now()->addSecond()); return response([ "message" => "Your request to clone Lti Tool Setting [$ltiToolSetting->tool_name] has been received and is being processed.
You will be alerted in the notification section in the title bar when complete.", diff --git a/app/Jobs/CloneLtiToolSetting.php b/app/Jobs/CloneLtiToolSetting.php index 6c8627e93..807414ade 100644 --- a/app/Jobs/CloneLtiToolSetting.php +++ b/app/Jobs/CloneLtiToolSetting.php @@ -13,6 +13,7 @@ use Illuminate\Foundation\Bus\Dispatchable; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Queue\SerializesModels; +use Illuminate\Support\Facades\Log; class CloneLtiToolSetting implements ShouldQueue { @@ -33,18 +34,25 @@ class CloneLtiToolSetting implements ShouldQueue */ protected $token; + /** + * @var userId + */ + protected $userId; + /** * Create a new job instance. * @param LtiToolSetting $ltiToolSetting * @param Organization $suborganization + * @param $userId * @param $token * @return void */ - public function __construct(LtiToolSetting $ltiToolSetting, Organization $suborganization, $token) + public function __construct(LtiToolSetting $ltiToolSetting, Organization $suborganization, $userId, $token) { // $this->ltiToolSetting = $ltiToolSetting; $this->subOrganization = $suborganization; + $this->userId = $userId; $this->token = $token; } @@ -57,12 +65,12 @@ public function __construct(LtiToolSetting $ltiToolSetting, Organization $suborg public function handle(LtiToolSettingInterface $ltiToolSettingRepository, UserRepositoryInterface $userRepository) { try { - $ltiToolSettingRepository->clone($this->ltiToolSetting, $this->subOrganization, $this->token); + $ltiToolSettingRepository->clone($this->ltiToolSetting, $this->subOrganization, $this->userId); $message = "Your request to clone Lti Tool Setting [" . $this->ltiToolSetting->tool_name . "] has been completed and available"; - $user_id = $userRepository->parseToken($this->token); - $user = User::find($user_id); - $userName = rtrim($user->first_name . ' ' . $user->last_name, ' '); - $user->notify(new CloneNotification($message, 'Clone', $userName)); + $loggedUserId = $userRepository->parseToken($this->token); + $loggedUser = User::find($loggedUserId); + $loggedUserName = rtrim($loggedUser->first_name . ' ' . $loggedUser->last_name, ' '); + $loggedUser->notify(new CloneNotification($message, 'Clone', $loggedUserName)); } catch (\Exception $e) { Log::error($e->getMessage()); } diff --git a/app/Repositories/LtiTool/LtiToolSettingInterface.php b/app/Repositories/LtiTool/LtiToolSettingInterface.php index afb9317c5..130eb3204 100644 --- a/app/Repositories/LtiTool/LtiToolSettingInterface.php +++ b/app/Repositories/LtiTool/LtiToolSettingInterface.php @@ -12,9 +12,9 @@ interface LtiToolSettingInterface extends EloquentRepositoryInterface * To clone Lti Tool Setting * @param LtiToolSetting $ltiToolSetting * @param Organization $subOrganization - * @param $token + * @param $userId */ - public function clone(LtiToolSetting $ltiToolSetting, Organization $subOrganization, $token); + public function clone(LtiToolSetting $ltiToolSetting, Organization $subOrganization, $userId); /** * @param $userId integer, $orgId integer $mediaSourceId int * @return mixed diff --git a/app/Repositories/LtiTool/LtiToolSettingRepository.php b/app/Repositories/LtiTool/LtiToolSettingRepository.php index 26c1171d2..a6dd65273 100644 --- a/app/Repositories/LtiTool/LtiToolSettingRepository.php +++ b/app/Repositories/LtiTool/LtiToolSettingRepository.php @@ -123,13 +123,13 @@ public function destroy($id) * To clone Lti Tool Setting * @param LtiToolSetting $ltiToolSetting * @param Organization $subOrganization - * @param string $token + * @param int $userId * @return int id */ - public function clone(LtiToolSetting $ltiToolSetting, Organization $subOrganization, $token) + public function clone(LtiToolSetting $ltiToolSetting, Organization $subOrganization, $userId) { $ltiToolSettingData = [ - "user_id" => request('user_id'), + "user_id" => $userId, "organization_id" => $subOrganization->id, "tool_name" => $ltiToolSetting->tool_name, "tool_url" => $ltiToolSetting->tool_url, @@ -142,8 +142,8 @@ public function clone(LtiToolSetting $ltiToolSetting, Organization $subOrganizat "tool_custom_parameter" => $ltiToolSetting->tool_custom_parameter, "tool_content_selection_url" => $ltiToolSetting->tool_content_selection_url ]; - $cloned_setting = $this->create($ltiToolSettingData); - return $cloned_setting['id']; + $clonedSetting = $this->create($ltiToolSettingData); + return $clonedSetting['id']; } /**