|
|
|
|
@ -64,6 +64,7 @@ use OCA\DAV\Events\CalendarUpdatedEvent; |
|
|
|
|
use OCA\DAV\Events\SubscriptionCreatedEvent; |
|
|
|
|
use OCA\DAV\Events\SubscriptionDeletedEvent; |
|
|
|
|
use OCA\DAV\Events\SubscriptionUpdatedEvent; |
|
|
|
|
use OCP\AppFramework\Db\TTransactional; |
|
|
|
|
use OCP\Calendar\Exceptions\CalendarException; |
|
|
|
|
use OCP\DB\Exception; |
|
|
|
|
use OCP\DB\QueryBuilder\IQueryBuilder; |
|
|
|
|
@ -119,6 +120,9 @@ use function time; |
|
|
|
|
* @package OCA\DAV\CalDAV |
|
|
|
|
*/ |
|
|
|
|
class CalDavBackend extends AbstractBackend implements SyncSupport, SubscriptionSupport, SchedulingSupport { |
|
|
|
|
|
|
|
|
|
use TTransactional; |
|
|
|
|
|
|
|
|
|
public const CALENDAR_TYPE_CALENDAR = 0; |
|
|
|
|
public const CALENDAR_TYPE_SUBSCRIPTION = 1; |
|
|
|
|
|
|
|
|
|
@ -812,15 +816,19 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$query = $this->db->getQueryBuilder(); |
|
|
|
|
$query->insert('calendars'); |
|
|
|
|
foreach ($values as $column => $value) { |
|
|
|
|
$query->setValue($column, $query->createNamedParameter($value)); |
|
|
|
|
} |
|
|
|
|
$query->executeStatement(); |
|
|
|
|
$calendarId = $query->getLastInsertId(); |
|
|
|
|
[$calendarId, $calendarData] = $this->atomic(function() use ($values) { |
|
|
|
|
$query = $this->db->getQueryBuilder(); |
|
|
|
|
$query->insert('calendars'); |
|
|
|
|
foreach ($values as $column => $value) { |
|
|
|
|
$query->setValue($column, $query->createNamedParameter($value)); |
|
|
|
|
} |
|
|
|
|
$query->executeStatement(); |
|
|
|
|
$calendarId = $query->getLastInsertId(); |
|
|
|
|
|
|
|
|
|
$calendarData = $this->getCalendarById($calendarId); |
|
|
|
|
return [$calendarId, $calendarData]; |
|
|
|
|
}, $this->db); |
|
|
|
|
|
|
|
|
|
$calendarData = $this->getCalendarById($calendarId); |
|
|
|
|
$this->dispatcher->dispatchTyped(new CalendarCreatedEvent((int)$calendarId, $calendarData)); |
|
|
|
|
|
|
|
|
|
return $calendarId; |
|
|
|
|
@ -2446,21 +2454,22 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$valuesToInsert = []; |
|
|
|
|
|
|
|
|
|
$query = $this->db->getQueryBuilder(); |
|
|
|
|
|
|
|
|
|
foreach (array_keys($values) as $name) { |
|
|
|
|
$valuesToInsert[$name] = $query->createNamedParameter($values[$name]); |
|
|
|
|
} |
|
|
|
|
[$subscriptionId, $subscriptionRow] = $this->atomic(function() use ($values) { |
|
|
|
|
$valuesToInsert = []; |
|
|
|
|
$query = $this->db->getQueryBuilder(); |
|
|
|
|
foreach (array_keys($values) as $name) { |
|
|
|
|
$valuesToInsert[$name] = $query->createNamedParameter($values[$name]); |
|
|
|
|
} |
|
|
|
|
$query->insert('calendarsubscriptions') |
|
|
|
|
->values($valuesToInsert) |
|
|
|
|
->executeStatement(); |
|
|
|
|
|
|
|
|
|
$query->insert('calendarsubscriptions') |
|
|
|
|
->values($valuesToInsert) |
|
|
|
|
->executeStatement(); |
|
|
|
|
$subscriptionId = $query->getLastInsertId(); |
|
|
|
|
|
|
|
|
|
$subscriptionId = $query->getLastInsertId(); |
|
|
|
|
$subscriptionRow = $this->getSubscriptionById($subscriptionId); |
|
|
|
|
return [$subscriptionId, $subscriptionRow]; |
|
|
|
|
}, $this->db); |
|
|
|
|
|
|
|
|
|
$subscriptionRow = $this->getSubscriptionById($subscriptionId); |
|
|
|
|
$this->dispatcher->dispatchTyped(new SubscriptionCreatedEvent($subscriptionId, $subscriptionRow)); |
|
|
|
|
|
|
|
|
|
return $subscriptionId; |
|
|
|
|
|