|
11 | 11 |
|
12 | 12 | namespace OCA\OcSms\Db; |
13 | 13 |
|
| 14 | +use lib\UUIDGenerator; |
14 | 15 | use \OCP\IDBConnection; |
15 | 16 |
|
16 | 17 | use \OCP\AppFramework\Db\Mapper; |
@@ -311,13 +312,33 @@ public function getNewMessagesCountForAllPhonesNumbers($userId, $lastDate) { |
311 | 312 | } |
312 | 313 |
|
313 | 314 | private function getConversationForUserAndPhone($userId, $phoneNumber) { |
| 315 | + $qb = $this->db->getQueryBuilder(); |
| 316 | + |
314 | 317 | $qb->select('id') |
315 | 318 | ->from('ocsms_conversations') |
316 | 319 | ->where($qb->expr()->andX( |
317 | 320 | $qb->expr()->eq('user_id', $qb->createNamedParameter($userId)), |
318 | 321 | $qb->expr()->in('phone_number', $qb->createNamedParameter($phoneNumber)) |
319 | | - ); |
| 322 | + )); |
320 | 323 | $result = $qb->execute(); |
| 324 | + |
| 325 | + if ($row = $result->fetch()) { |
| 326 | + $conversation = new Conversation($userId, $phoneNumber); |
| 327 | + $conversation->id = $row["id"]; |
| 328 | + return $conversation; |
| 329 | + } |
| 330 | + return null; |
| 331 | + } |
| 332 | + |
| 333 | + private function registerConversation($userId, $phoneNumber) { |
| 334 | + $qb = $this->db->getQueryBuilder(); |
| 335 | + $qb->insert('ocsms_conversations') |
| 336 | + ->values([ |
| 337 | + 'id' => $qb->createNamedParameter(UUIDGenerator::generate()), |
| 338 | + 'user_id' => $qb->createNamedParameter($userId), |
| 339 | + 'phone_number' => $qb->createNamedParameter($phoneNumber), |
| 340 | + ]) |
| 341 | + ->execute(); |
321 | 342 | } |
322 | 343 |
|
323 | 344 | public function writeToDB ($userId, $smsList, $purgeAllSmsBeforeInsert = false) { |
@@ -355,14 +376,19 @@ public function writeToDB ($userId, $smsList, $purgeAllSmsBeforeInsert = false) |
355 | 376 | '(user_id, added, lastmodified, sms_flags, sms_date, sms_id,' . |
356 | 377 | 'sms_address, sms_msg, sms_mailbox, sms_type) VALUES ' . |
357 | 378 | '(?,?,?,?,?,?,?,?,?,?)'); |
358 | | - $result = $query->execute(array( |
| 379 | + $query->execute(array( |
359 | 380 | $userId, $now, $now, $smsFlags, |
360 | 381 | $sms["date"], (int) $sms["_id"], |
361 | 382 | $sms["address"], $sms["body"], (int) $sms["mbox"], |
362 | 383 | (int) $sms["type"] |
363 | 384 | )); |
364 | 385 |
|
365 | | - $this->getConversationForUserAndPhone($userId, $sms["address"]); |
| 386 | + /* |
| 387 | + $conversation = $this->getConversationForUserAndPhone($userId, $sms["address"]); |
| 388 | + if ($conversation === null) { |
| 389 | + $this->registerConversation($userId, $sms["address"]); |
| 390 | + } |
| 391 | + */ |
366 | 392 | } |
367 | 393 |
|
368 | 394 | $this->db->commit(); |
|
0 commit comments