|
|
|
|
@ -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;
|
|
|
|
|
|