Ejemplo n.º 1
0
 /**
  * @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);
     $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 \ProjectSeven\Exceptions\ClientException(\ProjectSeven\Notifications::IncorrectFileExtension);
         }
     } else {
         $sError = 'unknown';
     }
     if (0 < strlen($sError)) {
         $aResponse['Error'] = $sError;
     }
     return $this->DefaultResponse($oAccount, __FUNCTION__, $aResponse);
 }
Ejemplo n.º 2
0
 /**
  * @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);
 }