|
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; |
@@ -309,13 +310,33 @@ public function getNewMessagesCountForAllPhonesNumbers($userId, $lastDate) { |
309 | 310 | } |
310 | 311 |
|
311 | 312 | private function getConversationForUserAndPhone($userId, $phoneNumber) { |
| 313 | + $qb = $this->db->getQueryBuilder(); |
| 314 | + |
312 | 315 | $qb->select('id') |
313 | 316 | ->from('ocsms_conversations') |
314 | 317 | ->where($qb->expr()->andX( |
315 | 318 | $qb->expr()->eq('user_id', $qb->createNamedParameter($userId)), |
316 | 319 | $qb->expr()->in('phone_number', $qb->createNamedParameter($phoneNumber)) |
317 | | - ); |
| 320 | + )); |
318 | 321 | $result = $qb->execute(); |
| 322 | + |
| 323 | + if ($row = $result->fetch()) { |
| 324 | + $conversation = new Conversation($userId, $phoneNumber); |
| 325 | + $conversation->id = $row["id"]; |
| 326 | + return $conversation; |
| 327 | + } |
| 328 | + return null; |
| 329 | + } |
| 330 | + |
| 331 | + private function registerConversation($userId, $phoneNumber) { |
| 332 | + $qb = $this->db->getQueryBuilder(); |
| 333 | + $qb->insert('ocsms_conversations') |
| 334 | + ->values([ |
| 335 | + 'id' => $qb->createNamedParameter(UUIDGenerator::generate()), |
| 336 | + 'user_id' => $qb->createNamedParameter($userId), |
| 337 | + 'phone_number' => $qb->createNamedParameter($phoneNumber), |
| 338 | + ]) |
| 339 | + ->execute(); |
319 | 340 | } |
320 | 341 |
|
321 | 342 | public function writeToDB ($userId, $smsList, $purgeAllSmsBeforeInsert = false) { |
@@ -351,14 +372,19 @@ public function writeToDB ($userId, $smsList, $purgeAllSmsBeforeInsert = false) |
351 | 372 | '(user_id, added, lastmodified, sms_flags, sms_date, sms_id,' . |
352 | 373 | 'sms_address, sms_msg, sms_mailbox, sms_type) VALUES ' . |
353 | 374 | '(?,?,?,?,?,?,?,?,?,?)'); |
354 | | - $result = $query->execute(array( |
| 375 | + $query->execute(array( |
355 | 376 | $userId, $now, $now, $smsFlags, |
356 | 377 | $sms["date"], (int) $sms["_id"], |
357 | 378 | $sms["address"], $sms["body"], (int) $sms["mbox"], |
358 | 379 | (int) $sms["type"] |
359 | 380 | )); |
360 | 381 |
|
361 | | - $this->getConversationForUserAndPhone($userId, $sms["address"]); |
| 382 | + /* |
| 383 | + $conversation = $this->getConversationForUserAndPhone($userId, $sms["address"]); |
| 384 | + if ($conversation === null) { |
| 385 | + $this->registerConversation($userId, $sms["address"]); |
| 386 | + } |
| 387 | + */ |
362 | 388 | } |
363 | 389 |
|
364 | 390 | $this->db->commit(); |
|
0 commit comments