public function getSurveyPdfCodesFromSignedUrl(ClientSurvey $id, Request $request, ClientSurveyApplicantCodesPdfMaker $pdfMaker): Response 	{ 		$codes = $id->getCodesForPdfGeneration();  		if (empty($codes)) { 			abort(403, (string) __('exceptions.no-codes-to-generate')); 		}  		$url = $id->domain->getQuestionnaireStartUrl(); 		$locale = $id->client->default_language;  		$id->update([ 			'has_downloaded_codes' => true, 		]);  		$userActivityService = new UserActivityService($request, $id->client->authParent); 		$userActivityService->createCustomEntry($id, UserActivityType::Read);  		return $pdfMaker->generatePdf($codes, $id->client->authParent?->name, $url, $locale, $id->survey_type); 	}