/** * @return array */ public function UploadContacts() { $oAccount = $this->getDefaultAccountFromParam(); if (!$this->oApiCapability->isPersonalContactsSupported($oAccount)) { throw new \ProjectCore\Exceptions\ClientException(\ProjectCore\Notifications::ContactsNotAllowed); } $aFileData = $this->getParamValue('FileData', null); $sAdditionalData = $this->getParamValue('AdditionalData', '{}'); $aAdditionalData = @json_decode($sAdditionalData, true); $sError = ''; $aResponse = array('ImportedCount' => 0, 'ParsedCount' => 0); if (is_array($aFileData)) { $sFileType = strtolower(\api_Utils::GetFileExtension($aFileData['name'])); $bIsCsvVcfExtension = $sFileType === 'csv' || $sFileType === 'vcf'; if ($bIsCsvVcfExtension) { $sSavedName = 'import-post-' . md5($aFileData['name'] . $aFileData['tmp_name']); if ($this->ApiFileCache()->moveUploadedFile($oAccount, $sSavedName, $aFileData['tmp_name'])) { $oApiContactsManager = $this->ApiContacts(); if ($oApiContactsManager) { $iParsedCount = 0; $iImportedCount = $oApiContactsManager->import($oAccount->IdUser, $sFileType, $this->ApiFileCache()->generateFullFilePath($oAccount, $sSavedName), $iParsedCount, $iGroupId = $aAdditionalData['GroupId'], $bIsShared = $aAdditionalData['IsShared']); } if (false !== $iImportedCount && -1 !== $iImportedCount) { $aResponse['ImportedCount'] = $iImportedCount; $aResponse['ParsedCount'] = $iParsedCount; } else { $sError = 'unknown'; } $this->ApiFileCache()->clear($oAccount, $sSavedName); } else { $sError = 'unknown'; } } else { throw new \ProjectCore\Exceptions\ClientException(\ProjectCore\Notifications::IncorrectFileExtension); } } else { $sError = 'unknown'; } if (0 < strlen($sError)) { $aResponse['Error'] = $sError; } return $this->DefaultResponse($oAccount, __FUNCTION__, $aResponse); }
/** * @return array */ public function UploadContacts() { $oAccount = $this->getDefaultAccountFromParam(); if (!$this->oApiCapability->IsPersonalContactsSupported($oAccount)) { throw new \ProjectSeven\Exceptions\ClientException(\ProjectSeven\Notifications::ContactsNotAllowed); } $aFileData = $this->getParamValue('FileData', null); $sError = ''; $aResponse = array('ImportedCount' => 0, 'ParsedCount' => 0); if (is_array($aFileData)) { $sSavedName = 'import-post-' . md5($aFileData['name'] . $aFileData['tmp_name']); if ($this->ApiFileCache()->MoveUploadedFile($oAccount, $sSavedName, $aFileData['tmp_name'])) { $oApiContactsManager = $this->ApiContacts(); if ($oApiContactsManager) { $iParsedCount = 0; $sFileType = \api_Utils::GetFileExtension($aFileData['name']); $iImportedCount = $oApiContactsManager->Import($oAccount->IdUser, $sFileType, $this->ApiFileCache()->GenerateFullFilePath($oAccount, $sSavedName), $iParsedCount); } if (false !== $iImportedCount && -1 !== $iImportedCount) { $aResponse['ImportedCount'] = $iImportedCount; $aResponse['ParsedCount'] = $iParsedCount; } else { $sError = 'unknown'; } $this->ApiFileCache()->Clear($oAccount, $sSavedName); } else { $sError = 'unknown'; } } else { $sError = 'unknown'; } if (0 < strlen($sError)) { $aResponse['Error'] = $sError; } return $this->DefaultResponse($oAccount, 'UploadContacts', $aResponse); }