public function insertImage($user, $imageIdentifier, Image $image)
{
$now = time();
if ($added = $image->getAddedDate()) {
$added = $added->getTimestamp();
}
if ($updated = $image->getUpdatedDate()) {
$updated = $updated->getTimestamp();
}
if ($this->imageExists($user, $imageIdentifier)) {
try {
$this->getImageCollection()->update(['user' => $user, 'imageIdentifier' => $imageIdentifier], ['$set' => ['updated' => $now]], ['multiple' => false]);
return true;
} catch (MongoException $e) {
throw new DatabaseException('Unable to save image data', 500, $e);
}
}
$data = ['size' => $image->getFilesize(), 'user' => $user, 'imageIdentifier' => $imageIdentifier, 'extension' => $image->getExtension(), 'mime' => $image->getMimeType(), 'metadata' => [], 'added' => $added ?: $now, 'updated' => $updated ?: $now, 'width' => $image->getWidth(), 'height' => $image->getHeight(), 'checksum' => $image->getChecksum(), 'originalChecksum' => $image->getOriginalChecksum()];
try {
$this->getImageCollection()->insert($data);
} catch (MongoException $e) {
throw new DatabaseException('Unable to save image data', 500, $e);
}
return true;
}