Browse Source

Fix writing BLOBs to postgres with recent contacts interaction

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
Christoph Wurst 3 years ago
parent
commit
3bc54bfd06

+ 1 - 1
apps/contactsinteraction/lib/Db/RecentContact.php

@@ -66,7 +66,7 @@ class RecentContact extends Entity {
 		$this->addType('uid', 'string');
 		$this->addType('email', 'string');
 		$this->addType('federatedCloudId', 'string');
-		$this->addType('card', 'string');
+		$this->addType('card', 'blob');
 		$this->addType('lastContact', 'int');
 	}
 }

+ 6 - 1
lib/public/AppFramework/Db/Entity.php

@@ -110,7 +110,12 @@ abstract class Entity {
 
 			// if type definition exists, cast to correct type
 			if ($args[0] !== null && array_key_exists($name, $this->_fieldTypes)) {
-				settype($args[0], $this->_fieldTypes[$name]);
+				$type = $this->_fieldTypes[$name];
+				if ($type === 'blob') {
+					// (B)LOB is treated as string when we read from the DB
+					$type = 'string';
+				}
+				settype($args[0], $type);
 			}
 			$this->$name = $args[0];
 		} else {

+ 2 - 0
lib/public/AppFramework/Db/QBMapper.php

@@ -230,6 +230,8 @@ abstract class QBMapper {
 			case 'bool':
 			case 'boolean':
 				return IQueryBuilder::PARAM_BOOL;
+			case 'blob':
+				return IQueryBuilder::PARAM_LOB;
 		}
 
 		return IQueryBuilder::PARAM_STR;