use controller to create subfolder, send notifications

This commit is contained in:
Uwe Steinmann 2022-11-06 17:02:38 +01:00
parent 257c23aead
commit 0e1b00d0b5

View File

@ -480,6 +480,8 @@ class RestapiController { /* {{{ */
$userobj = $this->container->userobj;
$settings = $this->container->config;
$logger = $this->container->logger;
$fulltextservice = $this->container->fulltextservice;
$notifier = $this->container->notifier;
if(!$userobj) {
return $response->withJson(array('success'=>false, 'message'=>'Not logged in', 'data'=>''), 403);
@ -524,10 +526,24 @@ class RestapiController { /* {{{ */
return $response->withJson(array('success'=>false, 'message'=>getMLText("subfolder_duplicate_name"), 'data'=>''), 409);
}
}
if($folder = $parent->addSubFolder($params['name'], $comment, $userobj, $sequence, $newattrs)) {
$rec = $this->__getFolderData($folder);
$logger->log("Creating folder '".$folder->getName()."' (".$folder->getId().") successful", PEAR_LOG_INFO);
$controller = Controller::factory('AddSubFolder');
$controller->setParam('dms', $dms);
$controller->setParam('user', $userobj);
$controller->setParam('fulltextservice', $fulltextservice);
$controller->setParam('folder', $parent);
$controller->setParam('name', $params['name']);
$controller->setParam('comment', $comment);
$controller->setParam('sequence', $sequence);
$controller->setParam('attributes', $newattrs);
$controller->setParam('notificationgroups', []);
$controller->setParam('notificationusers', []);
if($folder = $controller()) {
$rec = $this->__getFolderData($folder);
$logger->log("Creating folder '".$folder->getName()."' (".$folder->getId().") successful", PEAR_LOG_INFO);
if($notifier) {
$notifier->sendNewFolderMail($folder, $userobj);
}
return $response->withJson(array('success'=>true, 'message'=>'', 'data'=>$rec), 201);
} else {
return $response->withJson(array('success'=>false, 'message'=>'Could not create folder', 'data'=>''), 500);
@ -2506,6 +2522,7 @@ $container['config'] = $settings;
$container['conversionmgr'] = $conversionmgr;
$container['logger'] = $logger;
$container['fulltextservice'] = $fulltextservice;
$container['notifier'] = $notifier;
$app->add(new Auth($container));
// Make CORS preflighted request possible