@@ -6,7 +6,6 @@ |
||
| 6 | 6 | use Psr\Log\LoggerInterface; |
| 7 | 7 | use Psr\Log\NullLogger; |
| 8 | 8 | use Wabel\Zoho\CRM\AbstractZohoDao; |
| 9 | -use Wabel\Zoho\CRM\Request\Response; |
|
| 10 | 9 | use zcrmsdk\crm\crud\ZCRMRecord; |
| 11 | 10 | use zcrmsdk\crm\exception\ZCRMException; |
| 12 | 11 | |
@@ -71,11 +71,11 @@ discard block |
||
| 71 | 71 | { |
| 72 | 72 | $users = $this->zohoUserService->getUsers(); |
| 73 | 73 | $tableName = 'users'; |
| 74 | - $this->logger->info('Fetched ' . count($users) . ' records'); |
|
| 74 | + $this->logger->info('Fetched '.count($users).' records'); |
|
| 75 | 75 | |
| 76 | 76 | $table = $this->connection->getSchemaManager()->createSchema()->getTable($tableName); |
| 77 | 77 | |
| 78 | - $select = $this->connection->prepare('SELECT * FROM ' . $tableName . ' WHERE id = :id'); |
|
| 78 | + $select = $this->connection->prepare('SELECT * FROM '.$tableName.' WHERE id = :id'); |
|
| 79 | 79 | |
| 80 | 80 | $this->connection->beginTransaction(); |
| 81 | 81 | foreach ($users as $user) { |
@@ -112,14 +112,14 @@ discard block |
||
| 112 | 112 | $select->execute(['id' => $user->getId()]); |
| 113 | 113 | $result = $select->fetch(\PDO::FETCH_ASSOC); |
| 114 | 114 | if ($result === false && $data) { |
| 115 | - $this->logger->debug("Inserting record with ID '" . $user->getId() . "'."); |
|
| 115 | + $this->logger->debug("Inserting record with ID '".$user->getId()."'."); |
|
| 116 | 116 | |
| 117 | 117 | $data['id'] = $user->getId(); |
| 118 | 118 | $types['id'] = 'string'; |
| 119 | 119 | |
| 120 | 120 | $this->connection->insert($tableName, $data, $types); |
| 121 | 121 | } elseif ($data) { |
| 122 | - $this->logger->debug("Updating record with ID '" . $user->getId() . "'."); |
|
| 122 | + $this->logger->debug("Updating record with ID '".$user->getId()."'."); |
|
| 123 | 123 | $identifier = ['id' => $user->getId()]; |
| 124 | 124 | $types['id'] = 'string'; |
| 125 | 125 | $this->connection->update($tableName, $data, $identifier, $types); |
@@ -150,15 +150,15 @@ discard block |
||
| 150 | 150 | $tableDetail = $this->connection->getSchemaManager()->listTableDetails($tableName); |
| 151 | 151 | $lastActivityTime = null; |
| 152 | 152 | if ($tableDetail->hasColumn('modifiedTime')) { |
| 153 | - $lastActivityTime = $this->connection->fetchColumn('SELECT MAX(modifiedTime) FROM ' . $tableName); |
|
| 153 | + $lastActivityTime = $this->connection->fetchColumn('SELECT MAX(modifiedTime) FROM '.$tableName); |
|
| 154 | 154 | } |
| 155 | 155 | if (!$lastActivityTime && $tableDetail->hasColumn('createdTime')) { |
| 156 | - $lastActivityTime = $this->connection->fetchColumn('SELECT MAX(createdTime) FROM ' . $tableName); |
|
| 156 | + $lastActivityTime = $this->connection->fetchColumn('SELECT MAX(createdTime) FROM '.$tableName); |
|
| 157 | 157 | } |
| 158 | 158 | |
| 159 | 159 | if ($lastActivityTime !== null) { |
| 160 | 160 | $lastActivityTime = new \DateTime($lastActivityTime, new \DateTimeZone($dao->getZohoClient()->getTimezone())); |
| 161 | - $this->logger->info('Last modified time: ' . $lastActivityTime->format(\DateTime::ATOM)); |
|
| 161 | + $this->logger->info('Last modified time: '.$lastActivityTime->format(\DateTime::ATOM)); |
|
| 162 | 162 | // Let's add one second to the last activity time (otherwise, we are fetching again the last record in DB). |
| 163 | 163 | $lastActivityTime->add(new \DateInterval('PT1S')); |
| 164 | 164 | } |
@@ -171,7 +171,7 @@ discard block |
||
| 171 | 171 | $deletedRecords = []; |
| 172 | 172 | } |
| 173 | 173 | } catch (ZCRMException $exception) { |
| 174 | - $this->logger->error('Error when getting records for module ' . $tableName . ': ' . $exception->getMessage(), [ |
|
| 174 | + $this->logger->error('Error when getting records for module '.$tableName.': '.$exception->getMessage(), [ |
|
| 175 | 175 | 'exception' => $exception |
| 176 | 176 | ]); |
| 177 | 177 | if ($throwErrors) { |
@@ -179,11 +179,11 @@ discard block |
||
| 179 | 179 | } |
| 180 | 180 | return; |
| 181 | 181 | } |
| 182 | - $this->logger->info('Fetched ' . count($records) . ' records'); |
|
| 182 | + $this->logger->info('Fetched '.count($records).' records'); |
|
| 183 | 183 | |
| 184 | 184 | $table = $this->connection->getSchemaManager()->createSchema()->getTable($tableName); |
| 185 | 185 | |
| 186 | - $select = $this->connection->prepare('SELECT * FROM ' . $tableName . ' WHERE id = :id'); |
|
| 186 | + $select = $this->connection->prepare('SELECT * FROM '.$tableName.' WHERE id = :id'); |
|
| 187 | 187 | |
| 188 | 188 | $this->connection->beginTransaction(); |
| 189 | 189 | |
@@ -216,7 +216,7 @@ discard block |
||
| 216 | 216 | $select->execute(['id' => $record->getZohoId()]); |
| 217 | 217 | $result = $select->fetch(\PDO::FETCH_ASSOC); |
| 218 | 218 | if ($result === false) { |
| 219 | - $this->logger->debug("Inserting record with ID '" . $record->getZohoId() . "'."); |
|
| 219 | + $this->logger->debug("Inserting record with ID '".$record->getZohoId()."'."); |
|
| 220 | 220 | |
| 221 | 221 | $data['id'] = $record->getZohoId(); |
| 222 | 222 | $types['id'] = 'string'; |
@@ -227,7 +227,7 @@ discard block |
||
| 227 | 227 | $listener->onInsert($data, $dao); |
| 228 | 228 | } |
| 229 | 229 | } else { |
| 230 | - $this->logger->debug("Updating record with ID '" . $record->getZohoId() . "'."); |
|
| 230 | + $this->logger->debug("Updating record with ID '".$record->getZohoId()."'."); |
|
| 231 | 231 | $identifier = ['id' => $record->getZohoId()]; |
| 232 | 232 | $types['id'] = 'string'; |
| 233 | 233 | |
@@ -240,7 +240,7 @@ discard block |
||
| 240 | 240 | } |
| 241 | 241 | } |
| 242 | 242 | } |
| 243 | - $sqlStatementUid = 'select uid from ' . $this->connection->quoteIdentifier($tableName) . ' where id = :id'; |
|
| 243 | + $sqlStatementUid = 'select uid from '.$this->connection->quoteIdentifier($tableName).' where id = :id'; |
|
| 244 | 244 | foreach ($deletedRecords as $deletedRecord) { |
| 245 | 245 | $uid = $this->connection->fetchColumn($sqlStatementUid, ['id' => $deletedRecord->getEntityId()]); |
| 246 | 246 | $this->connection->delete($tableName, ['id' => $deletedRecord->getEntityId()]); |
@@ -251,7 +251,7 @@ discard block |
||
| 251 | 251 | $this->connection->delete('local_update', ['table_name' => $tableName, 'uid' => $uid]); |
| 252 | 252 | } |
| 253 | 253 | } |
| 254 | - $this->logger->info('Deleted ' . count($deletedRecords) . ' records'); |
|
| 254 | + $this->logger->info('Deleted '.count($deletedRecords).' records'); |
|
| 255 | 255 | |
| 256 | 256 | $this->connection->commit(); |
| 257 | 257 | } |
@@ -110,80 +110,80 @@ discard block |
||
| 110 | 110 | $options = []; |
| 111 | 111 | // Note: full list of types available here: https://www.zoho.com/crm/help/customization/custom-fields.html |
| 112 | 112 | switch ($field->getType()) { |
| 113 | - case 'fileupload': |
|
| 114 | - $type = 'string'; |
|
| 115 | - $length = $field->getMaxlength() && $field->getMaxlength() > 0?$field->getMaxlength() : 255; |
|
| 116 | - break; |
|
| 117 | - case 'lookup': |
|
| 118 | - $type = 'string'; |
|
| 119 | - $length = $field->getMaxlength() && $field->getMaxlength() > 0?$field->getMaxlength() : 100; |
|
| 120 | - $index = true; |
|
| 121 | - break; |
|
| 122 | - case 'userlookup': |
|
| 123 | - case 'ownerlookup': |
|
| 124 | - $type = 'string'; |
|
| 125 | - $index = true; |
|
| 126 | - $length = $field->getMaxlength() && $field->getMaxlength() > 0?$field->getMaxlength() : 25; |
|
| 127 | - break; |
|
| 128 | - case 'formula': |
|
| 129 | - // Note: a Formula can return any type, but we have no way to know which type it returns... |
|
| 130 | - $type = 'string'; |
|
| 131 | - $length = $field->getMaxlength() && $field->getMaxlength() > 0?$field->getMaxlength() : 100; |
|
| 132 | - break; |
|
| 133 | - case 'datetime': |
|
| 134 | - $type = 'datetime'; |
|
| 135 | - break; |
|
| 136 | - case 'date': |
|
| 137 | - $type = 'date'; |
|
| 138 | - break; |
|
| 139 | - case 'boolean': |
|
| 140 | - $type = 'boolean'; |
|
| 141 | - break; |
|
| 142 | - case 'textarea': |
|
| 143 | - $type = 'text'; |
|
| 144 | - break; |
|
| 145 | - case 'bigint': |
|
| 146 | - $type = 'bigint'; |
|
| 147 | - break; |
|
| 148 | - case 'phone': |
|
| 149 | - case 'text': |
|
| 150 | - case 'url': |
|
| 151 | - case 'email': |
|
| 152 | - case 'picklist': |
|
| 153 | - case 'website': |
|
| 154 | - $type = 'string'; |
|
| 155 | - $length = $field->getMaxlength() && $field->getMaxlength() > 0?$field->getMaxlength() : 255; |
|
| 156 | - break; |
|
| 157 | - case 'multiselectlookup': |
|
| 158 | - case 'multiuserlookup': |
|
| 159 | - case 'multiselectpicklist': |
|
| 160 | - $type = 'text'; |
|
| 161 | - break; |
|
| 162 | - case 'percent': |
|
| 163 | - $type = 'integer'; |
|
| 164 | - break; |
|
| 165 | - case 'double': |
|
| 166 | - $type = 'float'; |
|
| 167 | - break; |
|
| 168 | - case 'autonumber': |
|
| 169 | - case 'integer': |
|
| 170 | - $type = 'integer'; |
|
| 171 | - $length = $field->getMaxlength() && $field->getMaxlength() > 0?$field->getMaxlength() : 255; |
|
| 172 | - break; |
|
| 173 | - case 'currency': |
|
| 174 | - case 'decimal': |
|
| 175 | - $type = 'decimal'; |
|
| 176 | - $options['scale'] = 2; |
|
| 177 | - break; |
|
| 178 | - case 'consent_lookup': |
|
| 179 | - case 'profileimage': |
|
| 180 | - case 'ALARM': |
|
| 181 | - case 'RRULE': |
|
| 182 | - case 'event_reminder': |
|
| 183 | - continue 2; |
|
| 113 | + case 'fileupload': |
|
| 114 | + $type = 'string'; |
|
| 115 | + $length = $field->getMaxlength() && $field->getMaxlength() > 0?$field->getMaxlength() : 255; |
|
| 184 | 116 | break; |
| 185 | - default: |
|
| 186 | - throw new \RuntimeException('Unknown type "'.$field->getType().'"'); |
|
| 117 | + case 'lookup': |
|
| 118 | + $type = 'string'; |
|
| 119 | + $length = $field->getMaxlength() && $field->getMaxlength() > 0?$field->getMaxlength() : 100; |
|
| 120 | + $index = true; |
|
| 121 | + break; |
|
| 122 | + case 'userlookup': |
|
| 123 | + case 'ownerlookup': |
|
| 124 | + $type = 'string'; |
|
| 125 | + $index = true; |
|
| 126 | + $length = $field->getMaxlength() && $field->getMaxlength() > 0?$field->getMaxlength() : 25; |
|
| 127 | + break; |
|
| 128 | + case 'formula': |
|
| 129 | + // Note: a Formula can return any type, but we have no way to know which type it returns... |
|
| 130 | + $type = 'string'; |
|
| 131 | + $length = $field->getMaxlength() && $field->getMaxlength() > 0?$field->getMaxlength() : 100; |
|
| 132 | + break; |
|
| 133 | + case 'datetime': |
|
| 134 | + $type = 'datetime'; |
|
| 135 | + break; |
|
| 136 | + case 'date': |
|
| 137 | + $type = 'date'; |
|
| 138 | + break; |
|
| 139 | + case 'boolean': |
|
| 140 | + $type = 'boolean'; |
|
| 141 | + break; |
|
| 142 | + case 'textarea': |
|
| 143 | + $type = 'text'; |
|
| 144 | + break; |
|
| 145 | + case 'bigint': |
|
| 146 | + $type = 'bigint'; |
|
| 147 | + break; |
|
| 148 | + case 'phone': |
|
| 149 | + case 'text': |
|
| 150 | + case 'url': |
|
| 151 | + case 'email': |
|
| 152 | + case 'picklist': |
|
| 153 | + case 'website': |
|
| 154 | + $type = 'string'; |
|
| 155 | + $length = $field->getMaxlength() && $field->getMaxlength() > 0?$field->getMaxlength() : 255; |
|
| 156 | + break; |
|
| 157 | + case 'multiselectlookup': |
|
| 158 | + case 'multiuserlookup': |
|
| 159 | + case 'multiselectpicklist': |
|
| 160 | + $type = 'text'; |
|
| 161 | + break; |
|
| 162 | + case 'percent': |
|
| 163 | + $type = 'integer'; |
|
| 164 | + break; |
|
| 165 | + case 'double': |
|
| 166 | + $type = 'float'; |
|
| 167 | + break; |
|
| 168 | + case 'autonumber': |
|
| 169 | + case 'integer': |
|
| 170 | + $type = 'integer'; |
|
| 171 | + $length = $field->getMaxlength() && $field->getMaxlength() > 0?$field->getMaxlength() : 255; |
|
| 172 | + break; |
|
| 173 | + case 'currency': |
|
| 174 | + case 'decimal': |
|
| 175 | + $type = 'decimal'; |
|
| 176 | + $options['scale'] = 2; |
|
| 177 | + break; |
|
| 178 | + case 'consent_lookup': |
|
| 179 | + case 'profileimage': |
|
| 180 | + case 'ALARM': |
|
| 181 | + case 'RRULE': |
|
| 182 | + case 'event_reminder': |
|
| 183 | + continue 2; |
|
| 184 | + break; |
|
| 185 | + default: |
|
| 186 | + throw new \RuntimeException('Unknown type "'.$field->getType().'"'); |
|
| 187 | 187 | } |
| 188 | 188 | |
| 189 | 189 | if ($length) { |
@@ -228,24 +228,24 @@ discard block |
||
| 228 | 228 | $length = null; |
| 229 | 229 | $index = false; |
| 230 | 230 | switch ($field) { |
| 231 | - case 'zuid': |
|
| 232 | - $type = 'string'; |
|
| 233 | - $length = 100; |
|
| 234 | - $index = true; |
|
| 235 | - break; |
|
| 236 | - case 'name': |
|
| 237 | - case 'email': |
|
| 238 | - $type = 'string'; |
|
| 239 | - $length = 255; |
|
| 240 | - $index = true; |
|
| 241 | - break; |
|
| 242 | - case 'phone': |
|
| 243 | - case 'website': |
|
| 244 | - $type = 'text'; |
|
| 245 | - break; |
|
| 246 | - default: |
|
| 247 | - $type = 'string'; |
|
| 248 | - $length = 100; |
|
| 231 | + case 'zuid': |
|
| 232 | + $type = 'string'; |
|
| 233 | + $length = 100; |
|
| 234 | + $index = true; |
|
| 235 | + break; |
|
| 236 | + case 'name': |
|
| 237 | + case 'email': |
|
| 238 | + $type = 'string'; |
|
| 239 | + $length = 255; |
|
| 240 | + $index = true; |
|
| 241 | + break; |
|
| 242 | + case 'phone': |
|
| 243 | + case 'website': |
|
| 244 | + $type = 'text'; |
|
| 245 | + break; |
|
| 246 | + default: |
|
| 247 | + $type = 'string'; |
|
| 248 | + $length = 100; |
|
| 249 | 249 | } |
| 250 | 250 | |
| 251 | 251 | $options = []; |
@@ -49,7 +49,7 @@ discard block |
||
| 49 | 49 | $localDelete = $schema->createTable('local_delete'); |
| 50 | 50 | $localDelete->addColumn('table_name', 'string', ['length' => 100]); |
| 51 | 51 | $localDelete->addColumn('uid', 'string', ['length' => 36]); |
| 52 | - $localDelete->addColumn('id', 'string', ['length' => 100,'notnull'=>false]); |
|
| 52 | + $localDelete->addColumn('id', 'string', ['length' => 100, 'notnull'=>false]); |
|
| 53 | 53 | $localDelete->setPrimaryKey(array('table_name', 'uid')); |
| 54 | 54 | $localDelete->addUniqueIndex(['id', 'table_name']); |
| 55 | 55 | |
@@ -62,7 +62,7 @@ discard block |
||
| 62 | 62 | public function createUuidInsertTrigger(Table $table) |
| 63 | 63 | { |
| 64 | 64 | $triggerName = sprintf('TRG_%s_SETUUIDBEFOREINSERT', $table->getName()); |
| 65 | - $this->logger->info('Creating ' . $triggerName . ' trigger for table ' . $table->getName() . '...'); |
|
| 65 | + $this->logger->info('Creating '.$triggerName.' trigger for table '.$table->getName().'...'); |
|
| 66 | 66 | |
| 67 | 67 | //Fix - temporary MySQL 5.7 strict mode |
| 68 | 68 | $sql = sprintf( |
@@ -91,7 +91,7 @@ discard block |
||
| 91 | 91 | public function createInsertTrigger(Table $table) |
| 92 | 92 | { |
| 93 | 93 | $triggerName = sprintf('TRG_%s_ONINSERT', $table->getName()); |
| 94 | - $this->logger->info('Creating ' . $triggerName . ' trigger for table ' . $table->getName() . '...'); |
|
| 94 | + $this->logger->info('Creating '.$triggerName.' trigger for table '.$table->getName().'...'); |
|
| 95 | 95 | |
| 96 | 96 | $sql = sprintf( |
| 97 | 97 | ' |
@@ -116,7 +116,7 @@ discard block |
||
| 116 | 116 | public function createDeleteTrigger(Table $table) |
| 117 | 117 | { |
| 118 | 118 | $triggerName = sprintf('TRG_%s_ONDELETE', $table->getName()); |
| 119 | - $this->logger->info('Creating ' . $triggerName . ' trigger for table ' . $table->getName() . '...'); |
|
| 119 | + $this->logger->info('Creating '.$triggerName.' trigger for table '.$table->getName().'...'); |
|
| 120 | 120 | |
| 121 | 121 | $sql = sprintf( |
| 122 | 122 | ' |
@@ -141,7 +141,7 @@ discard block |
||
| 141 | 141 | public function createUpdateTrigger(Table $table) |
| 142 | 142 | { |
| 143 | 143 | $triggerName = sprintf('TRG_%s_ONUPDATE', $table->getName()); |
| 144 | - $this->logger->info('Creating ' . $triggerName . ' trigger for table ' . $table->getName() . '...'); |
|
| 144 | + $this->logger->info('Creating '.$triggerName.' trigger for table '.$table->getName().'...'); |
|
| 145 | 145 | |
| 146 | 146 | $innerCode = ''; |
| 147 | 147 | |
@@ -101,7 +101,7 @@ discard block |
||
| 101 | 101 | $this->zohoDatabaseModelSync = $zohoDatabaseModelSync; |
| 102 | 102 | $this->zohoDatabaseCopier = $zohoDatabaseCopier; |
| 103 | 103 | $this->zohoDatabaseSync = $zohoDatabaseSync; |
| 104 | - $this->zohoEntitiesGenerator = $zohoEntitiesGenerator; |
|
| 104 | + $this->zohoEntitiesGenerator = $zohoEntitiesGenerator; |
|
| 105 | 105 | $this->zohoClient = $zohoClient; |
| 106 | 106 | $this->pathZohoDaos = $pathZohoDaos; |
| 107 | 107 | $this->namespaceZohoDaos = $namespaceZohoDaos; |
@@ -138,7 +138,7 @@ discard block |
||
| 138 | 138 | if ($input->getOption('log-path') && $input->getOption('clear-logs')) { |
| 139 | 139 | $this->logger->notice('Clearing logs...'); |
| 140 | 140 | $path = $input->getOption('log-path'); |
| 141 | - $logFile = $path . '/ZCRMClientLibrary.log'; |
|
| 141 | + $logFile = $path.'/ZCRMClientLibrary.log'; |
|
| 142 | 142 | if (file_exists($logFile)) { |
| 143 | 143 | if (is_writable($logFile)) { |
| 144 | 144 | if (file_put_contents($logFile, '') === false) { |
@@ -152,7 +152,7 @@ discard block |
||
| 152 | 152 | } |
| 153 | 153 | } |
| 154 | 154 | |
| 155 | - if(!$input->getOption('limit')) { |
|
| 155 | + if (!$input->getOption('limit')) { |
|
| 156 | 156 | ini_set('memory_limit', '-1'); |
| 157 | 157 | } |
| 158 | 158 | |
@@ -177,7 +177,7 @@ discard block |
||
| 177 | 177 | if ($input->getOption('log-path') && $input->getOption('dump-logs')) { |
| 178 | 178 | $this->logger->info('Dumping logs...'); |
| 179 | 179 | $path = $input->getOption('log-path'); |
| 180 | - $logFile = $path . '/ZCRMClientLibrary.log'; |
|
| 180 | + $logFile = $path.'/ZCRMClientLibrary.log'; |
|
| 181 | 181 | if (file_exists($logFile)) { |
| 182 | 182 | if (is_readable($logFile)) { |
| 183 | 183 | $this->logger->info(file_get_contents($logFile)); |
@@ -291,7 +291,7 @@ discard block |
||
| 291 | 291 | { |
| 292 | 292 | $this->logger->notice('Starting to push data from local database into Zoho CRM...'); |
| 293 | 293 | foreach ($this->zohoDaos as $zohoDao) { |
| 294 | - if($zohoDao->getFieldFromFieldName('createdTime')) { |
|
| 294 | + if ($zohoDao->getFieldFromFieldName('createdTime')) { |
|
| 295 | 295 | $this->zohoDatabaseSync->pushToZoho($zohoDao); |
| 296 | 296 | } |
| 297 | 297 | } |