/** * {@inheritdoc} */ protected function initialise() { $this->addClient('agent', function (array $parameters) { return \Barbondev\IRISSDK\Agent\Agent\AgentClient::factory($parameters); })->addClient('branch', function (array $parameters) { return \Barbondev\IRISSDK\Agent\Branch\BranchClient::factory($parameters); })->addClient('brand', function (array $parameters) { return \Barbondev\IRISSDK\Agent\Brand\BrandClient::factory($parameters); })->addClient('user', function (array $parameters) { return \Barbondev\IRISSDK\Agent\User\UserClient::factory($parameters); })->addClient('lookup', function (array $parameters) { return \Barbondev\IRISSDK\IndividualApplication\Lookup\LookupClient::factory($parameters); })->addClient('note', function (array $parameters) { return \Barbondev\IRISSDK\IndividualApplication\Note\NoteClient::factory($parameters); })->addClient('activity', function (array $parameters) { return \Barbondev\IRISSDK\IndividualApplication\Activity\ActivityClient::factory($parameters); })->addClient('product', function (array $parameters) { return \Barbondev\IRISSDK\IndividualApplication\Product\ProductClient::factory($parameters); })->addClient('referencingApplication', function (array $parameters) { return \Barbondev\IRISSDK\IndividualApplication\ReferencingApplication\ReferencingApplicationClient::factory($parameters); })->addClient('referencingCase', function (array $parameters) { return \Barbondev\IRISSDK\IndividualApplication\ReferencingCase\ReferencingCaseClient::factory($parameters); })->addClient('addressFinder', function (array $parameters) { return \Barbondev\IRISSDK\Utility\AddressFinder\AddressFinderClient::factory($parameters); })->addClient('document', function (array $parameters) { return \Barbondev\IRISSDK\Utility\Document\DocumentClient::factory($parameters); })->addClient('rentAffordability', function (array $parameters) { return \Barbondev\IRISSDK\Utility\RentAffordability\RentAffordabilityClient::factory($parameters); }); }
/** * Upload missing files to upstream service * * @param $clientDocuments * @param callable $fileDetailCallback * @throws DocumentUploader\Exception\InvalidDetailType */ private function addMissing($clientDocuments, Closure $fileDetailCallback) { // $upstreamDocuments = $this->clientContext->getDocuments(array( // 'referencingApplicationUuId' => $this->application->getReferencingApplicationUuId(), // )); // Look for documents in the upload that aren't in IRIS // These should be added to IRIS. /** @var FormInterface $clientDocument */ foreach ($clientDocuments as $clientDocument) { // Get the uploaded file /** @var UploadedFile $uploadedFile */ $uploadedFileData = $clientDocument->getData(); $uploadedFile = $uploadedFileData['fileItem']; if ($uploadedFile) { // if (!$this->matchUpstreamDocument($uploadedFile->getClientOriginalName(), $upstreamDocuments)) { // File not found in IRIS, add the file $fileDetail = array(); if (null !== $fileDetailCallback) { $fileDetailResponse = $fileDetailCallback(array('uploadedFile' => $uploadedFile, 'application' => $this->application)); if (null !== $fileDetailResponse && !is_array($fileDetailResponse)) { // Invalid response throw new InvalidDetailType(sprintf('Response of type %s is invalid. Expected null or array.', get_class($fileDetailResponse))); } $fileDetail = $fileDetailResponse; } $fileName = !empty($fileDetail['uploadedFile']) && is_string($fileDetail['uploadedFile']) ? $fileDetail['uploadedFile'] : $uploadedFile->getClientOriginalName(); $fileName = rtrim($fileName, $uploadedFile->getClientOriginalExtension()); $fileName = $this->getSlugifier()->slugify($fileName, '_') . '.' . strtolower($uploadedFile->getClientOriginalExtension()); $description = !empty($fileDetail['description']) && is_string($fileDetail['description']) ? $fileDetail['description'] : ''; $this->clientContext->uploadDocument(array('referencingApplicationUuId' => $this->application->getReferencingApplicationUuId(), 'fileName' => $fileName, 'description' => $description, 'file' => $uploadedFile->getPathname(), 'categoryId' => DocumentCategoryOptions::MISCELLANEOUS)); // } } } }
/** * Search in IRIS. * * @param int $currentAgentSchemeNumber Redundant, included only for signature compatibility with * $this->searchInHrt() * @param SearchIndividualApplicationsCriteria $criteria * @param int $offset * @param int $limit * @return array Simple array of 'records' containing an array of ReferencingApplicationFindResult and * 'totalRecords' containing an integer of all possible records findable with the current criteria */ private function searchInIris($currentAgentSchemeNumber, SearchIndividualApplicationsCriteria $criteria, $offset, $limit) { if ($this->debugMode) { error_log('--- Search in IRIS method invoked ---'); } $applicationStatusIdList = self::getApplicationStatusIdsFromString($criteria->getApplicationStatus()); $irisResults = $this->referencingApplicationClient->findReferencingApplications(array('referenceNumber' => $criteria->getReferenceNumber(), 'applicantFirstName' => $criteria->getApplicantFirstName(), 'applicantLastName' => $criteria->getApplicantLastName(), 'propertyAddress' => $criteria->getPropertyAddress(), 'propertyTown' => $criteria->getPropertyTown(), 'propertyPostcode' => $criteria->getPropertyPostcode(), 'applicationStatus' => $applicationStatusIdList, 'productType' => $criteria->getProductType(), 'offset' => $offset, 'numberOfRecords' => $limit)); $irisRecords = $irisResults->getRecords()->toArray(); // Tag data source as IRIS $records = array(); foreach ($irisRecords as $key => $record) { $record->setDataSource(self::DATA_SOURCE_IRIS); $records[$key] = $record; } $totalRecords = $irisResults->getTotalRecords(); return array('records' => $records, 'totalRecords' => $totalRecords); }