diff --git a/composer.json b/composer.json index 4b244de20e4683b0d33598c982a51e72b04fdc03..ed1a723fb0d4080edc74252d6edef8122431759d 100755 --- a/composer.json +++ b/composer.json @@ -14,8 +14,7 @@ "Notification\\" : "src/app/notifications/", "Search\\" : "src/app/search/", "User\\" : "src/app/user/", - "Workflow\\" : "src/app/workflow/", - "Notifications\\" : "src/app/notifications/" + "Workflow\\" : "src/app/workflow/" } }, "require": { diff --git a/lang/en.json b/lang/en.json index ff804e70248807ce8c0cb22ccc8bbdf9f7f95ca1..10e26acfd58ceb80f8edbabecb3f9795f5aac2e9 100755 --- a/lang/en.json +++ b/lang/en.json @@ -525,5 +525,8 @@ "internalUserOtpMsg": "The other signature modes will no longer be available for <b> {{user}} </b> after validation.", "external": "External", "otpSignaturePositionMandatory": "The signature position for external users is mandatory." + "notificationsScheduleItemAdded": "New notification scheduled", + "notificationsScheduleItemUpdated": "Notification schedule updated", + "notificationsScheduleItemDeleted": "Notification schedule item deleted" } -} \ No newline at end of file +} diff --git a/lang/fr.json b/lang/fr.json index 2d17ec685f770b70f475ef663d6165bc2eaa9a04..eacc74144eebc955e91070047a1a9698d776917a 100755 --- a/lang/fr.json +++ b/lang/fr.json @@ -549,6 +549,9 @@ "daily": "Hebdomadaire", "monthly": "Mensuelle", "daysOfWeek": "Jour(s) de la semaine", - "hours": "Heure(s)" + "hours": "Heure(s)", + "notificationsScheduleItemAdded": "Planification de notification ajoutée", + "notificationsScheduleItemUpdated": "Planification de notification modifiée", + "notificationsScheduleItemDeleted": "Planification de notification supprimée" } } diff --git a/rest/index.php b/rest/index.php index d2aee913895a9d866fc6bdbb4f87a8f83bd2392a..95c201ac7d5df07bb9bf58729c2d31b2eaef7b77 100755 --- a/rest/index.php +++ b/rest/index.php @@ -162,10 +162,10 @@ $app->get('/workflowTemplates/{id}', \Workflow\controllers\WorkflowTemplateContr $app->delete('/workflowTemplates/{id}', \Workflow\controllers\WorkflowTemplateController::class . ':delete'); //NotificationsSchedule -$app->post('/schedule', \Notifications\controllers\NotificationsScheduleController::class.':create'); -$app->get('/schedule', \Notifications\controllers\NotificationsScheduleController::class.':get'); -$app->get('/schedule/{id}', \Notifications\controllers\NotificationsScheduleController::class.':getById'); -$app->put('/schedule/{id}', \Notifications\controllers\NotificationsScheduleController::class.':update'); -$app->delete('/schedule/{id}', \Notifications\controllers\NotificationsScheduleController::class.':delete'); +$app->post('/schedule', \Notification\controllers\NotificationsScheduleController::class.':create'); +$app->get('/schedule', \Notification\controllers\NotificationsScheduleController::class.':get'); +$app->get('/schedule/{id}', \Notification\controllers\NotificationsScheduleController::class.':getById'); +$app->put('/schedule/{id}', \Notification\controllers\NotificationsScheduleController::class.':update'); +$app->delete('/schedule/{id}', \Notification\controllers\NotificationsScheduleController::class.':delete'); $app->run(); diff --git a/sql/structure.sql b/sql/structure.sql index 053c54bf8cc1950d5c3270db363a8d869105a155..50fbde8d02c14d564510a4163a94c2815e19b899 100755 --- a/sql/structure.sql +++ b/sql/structure.sql @@ -316,15 +316,15 @@ WITH (OIDS=FALSE); CREATE TABLE notifications_schedule ( id serial NOT NULL, - label character varying(256) NOT NULL, + label character varying(256) NOT NULL, type character varying(256) NOT NULL, months jsonb, days_of_month jsonb, days_of_week jsonb, - start_time time, - end_time time, - frequency int, - frequency_mode character varying(16), + start_time time, + end_time time, + frequency int, + frequency_mode character varying(16), CONSTRAINT notifications_schedule_pkey PRIMARY KEY (id) ) WITH (OIDS=FALSE); diff --git a/src/app/notifications/controllers/NotificationsScheduleController.php b/src/app/notifications/controllers/NotificationsScheduleController.php index a2b887a43ffda46261f09d13277ff6cd31048220..d2291d50d88cc208caa6e36775883c6300401b03 100644 --- a/src/app/notifications/controllers/NotificationsScheduleController.php +++ b/src/app/notifications/controllers/NotificationsScheduleController.php @@ -12,9 +12,9 @@ * @author dev@maarch.org */ -namespace Notifications\controllers; +namespace Notification\controllers; -use Notifications\models\NotificationsScheduleModel; +use Notification\models\NotificationsScheduleModel; use Group\controllers\PrivilegeController; use History\controllers\HistoryController; use Respect\Validation\Validator; @@ -23,37 +23,46 @@ use Slim\Http\Response; class NotificationsScheduleController { - public function create(Request $request, Response $response) + private function validateBody($body) { - if (!PrivilegeController::hasPrivilege(['userId' => $GLOBALS['id'], 'privilege' => 'manage_notifications'])) { - return $response->withStatus(403)->withJson(['errors' => 'Privilege forbidden']); - } - - $body = $request->getParsedBody(); - // label, type, months, daysOfMonth, daysOfWeek, startTime, endTime, frequency, frequencyMode - if (empty($body)) { - return $response->withStatus(400)->withJson(['errors' => 'Body is not set or empty']); + return 'Body is not set or empty'; } elseif (!Validator::stringType()->length(1, 256)->validate($body['label'])) { - return $response->withStatus(400)->withJson(['errors' => 'Body label is too short or too long (must be between 1 and 256 characters)']); + return 'Body label is too short or too long (must be between 1 and 256 characters)'; } elseif (!Validator::stringType()->in(NotificationsScheduleModel::TYPES)->validate($body['type'])) { - return $response->withStatus(400)->withJson(['errors' => 'Body type does not exist']); + return 'Body type does not exist'; } elseif (!Validator::arrayType()->oneOf(Validator::equals(['*']), Validator::each(Validator::intVal()->between(1, 12)))->validate($body['months'])) { - return $response->withStatus(400)->withJson(['errors' => 'Body months must contain numbers from 1-12 or only "*"']); + return 'Body months must contain numbers from 1-12 or only "*"'; } elseif (!Validator::arrayType()->oneOf(Validator::equals(['*']), Validator::each(Validator::intVal()->between(1, 31)))->validate($body['daysOfMonth'])) { - return $response->withStatus(400)->withJson(['errors' => 'Body daysOfMonth must contain numbers from 1-31 or only "*"']); + return 'Body daysOfMonth must contain numbers from 1-31 or only "*"'; } elseif (!Validator::arrayType()->oneOf(Validator::equals(['*']), Validator::each(Validator::intVal()->between(1, 7)))->validate($body['daysOfWeek'])) { - return $response->withStatus(400)->withJson(['errors' => 'Body daysOfWeek must contain numbers from 1-7 or only "*"']); + return 'Body daysOfWeek must contain numbers from 1-7 or only "*"'; } elseif (!(Validator::equals(['*'])->validate($body['months']) xor Validator::equals(['*'])->validate($body['daysOfWeek']))) { - return $response->withStatus(400)->withJson(['errors' => 'One and only one of body months and daysOfWeek must be ["*"]']); + return 'One and only one of body months and daysOfWeek must be ["*"]'; } elseif (!Validator::stringType()->time('H:i')->validate($body['startTime'])) { - return $response->withStatus(400)->withJson(['errors' => 'Body startTime is not a valid time']); + return 'Body startTime is not a valid time'; } elseif (!Validator::stringType()->time('H:i')->greaterThan($body['startTime'])->validate($body['endTime'])) { - return $response->withStatus(400)->withJson(['errors' => 'Body endTime is not a valid time or is <= startTime']); + return 'Body endTime is not a valid time or is before startTime'; } elseif (!Validator::intType()->positive()->validate($body['frequency'])) { - return $response->withStatus(400)->withJson(['errors' => 'Body frequency is not a number or is <= 0']); + return 'Body frequency is not a number or is less than 0'; } elseif (!Validator::stringType()->in(NotificationsScheduleModel::FREQUENCY_MODES)->validate($body['frequencyMode'])) { - return $response->withStatus(400)->withJson(['errors' => 'Body frequencyMode does not exist']); + return 'Body frequencyMode does not exist'; + } + return null; + } + + public function create(Request $request, Response $response) + { + if (!PrivilegeController::hasPrivilege(['userId' => $GLOBALS['id'], 'privilege' => 'manage_notifications'])) { + return $response->withStatus(403)->withJson(['errors' => 'Privilege forbidden']); + } + + $body = $request->getParsedBody(); + // label, type, months, daysOfMonth, daysOfWeek, startTime, endTime, frequency, frequencyMode + + $err = $this->validateBody($body); + if (!empty($err)) { + return $response->withStatus(400)->withJson(['errors' => $err]); } $body['months'] = array_values(array_unique($body['months'])); @@ -64,14 +73,14 @@ class NotificationsScheduleController sort($body['daysOfWeek']); $id = NotificationsScheduleModel::create([ - 'label' => $body['label'], - 'type' => $body['type'], - 'months' => empty($body['months']) ? '[]' : json_encode($body['months']), - 'days_of_month' => empty($body['daysOfMonth']) ? '[]' : json_encode($body['daysOfMonth']), - 'days_of_week' => empty($body['daysOfWeek']) ? '[]' : json_encode($body['daysOfWeek']), - 'start_time' => $body['startTime'], - 'end_time' => $body['endTime'], - 'frequency' => $body['frequency'], + 'label' => $body['label'], + 'type' => $body['type'], + 'months' => empty($body['months']) ? '[]' : json_encode($body['months']), + 'days_of_month' => empty($body['daysOfMonth']) ? '[]' : json_encode($body['daysOfMonth']), + 'days_of_week' => empty($body['daysOfWeek']) ? '[]' : json_encode($body['daysOfWeek']), + 'start_time' => $body['startTime'], + 'end_time' => $body['endTime'], + 'frequency' => $body['frequency'], 'frequency_mode' => $body['frequencyMode'], ]); @@ -80,7 +89,7 @@ class NotificationsScheduleController 'objectType' => 'notifications_schedule', 'objectId' => $id, 'type' => 'CREATION', - 'message' => "{notificationScheduleAdded} : {$body['label']}, type {$body['type']}" + 'message' => "{notificationScheduleItemAdded} : {$body['label']}, type {$body['type']}" ]); return $response->withJson(['id' => $id]); @@ -92,9 +101,25 @@ class NotificationsScheduleController return $response->withStatus(403)->withJson(['errors' => 'Privilege forbidden']); } - $notificationsSchedule = NotificationsScheduleModel::get(); + $rawNotificationsSchedule = NotificationsScheduleModel::get(); + + $notificationsSchedule = []; + foreach ($rawNotificationsSchedule as $key => $value) { + $notificationsSchedule[] = [ + 'id' => $value['id'], + 'label' => $value['label'], + 'type' => $value['type'], + 'months' => json_decode($value['months']), + 'daysOfMonth' => json_decode($value['days_of_month']), + 'daysOfWeek' => json_decode($value['days_of_week']), + 'startTime' => $value['start_time'], + 'endTime' => $value['end_time'], + 'frequency' => $value['frequency'], + 'frequencyMode' => $value['frequency_mode'], + ]; + } - return $response->withJson(['notifications_schedule' => $notificationsSchedule]); + return $response->withJson(['notificationsSchedule' => $notificationsSchedule]); } public function getById(Request $request, Response $response, array $args) @@ -107,46 +132,42 @@ class NotificationsScheduleController return $response->withStatus(400)->withJson(['errors' => 'Route id must be an integer']); } - $notificationsScheduleItem = NotificationsScheduleModel::getById(['id' => $args['id']]); - if (empty($notificationsScheduleItem)) { + $rawNotificationsScheduleItem = NotificationsScheduleModel::getById(['id' => $args['id']]); + if (empty($rawNotificationsScheduleItem)) { return $response->withStatus(400)->withJson(['errors' => 'Notifications schedule item not found']); } + $notificationsScheduleItem = [ + 'id' => $rawNotificationsScheduleItem['id'], + 'label' => $rawNotificationsScheduleItem['label'], + 'type' => $rawNotificationsScheduleItem['type'], + 'months' => json_decode($rawNotificationsScheduleItem['months']), + 'daysOfMonth' => json_decode($rawNotificationsScheduleItem['days_of_month']), + 'daysOfWeek' => json_decode($rawNotificationsScheduleItem['days_of_week']), + 'startTime' => $rawNotificationsScheduleItem['start_time'], + 'endTime' => $rawNotificationsScheduleItem['end_time'], + 'frequency' => $rawNotificationsScheduleItem['frequency'], + 'frequencyMode' => $rawNotificationsScheduleItem['frequency_mode'], + ]; + return $response->withJson(['notificationsScheduleItem' => $notificationsScheduleItem]); } - public function update(Request $request, Response $response, array $aArgs) + public function update(Request $request, Response $response, array $args) { if (!PrivilegeController::hasPrivilege(['userId' => $GLOBALS['id'], 'privilege' => 'manage_notifications'])) { return $response->withStatus(403)->withJson(['errors' => 'Privilege forbidden']); } + if (!Validator::intVal()->notEmpty()->validate($args['id'])) { + return $response->withStatus(400)->withJson(['errors' => 'Route id must be an integer']); + } + $body = $request->getParsedBody(); - if (empty($body)) { - return $response->withStatus(400)->withJson(['errors' => 'Body is not set or empty']); - } elseif (!Validator::intVal()->notEmpty()->validate($aArgs['id'])) { - return $response->withStatus(400)->withJson(['errors' => 'Route id must be an integer']); - } elseif (!Validator::stringType()->length(1, 256)->validate($body['label'])) { - return $response->withStatus(400)->withJson(['errors' => 'Body label is too short or too long (must be between 1 and 256 characters)']); - } elseif (!Validator::stringType()->in(NotificationsScheduleModel::TYPES)->validate($body['type'])) { - return $response->withStatus(400)->withJson(['errors' => 'Body type does not exist']); - } elseif (!Validator::arrayType()->oneOf(Validator::equals(['*']), Validator::each(Validator::intVal()->between(1, 12)))->validate($body['months'])) { - return $response->withStatus(400)->withJson(['errors' => 'Body months must contain numbers from 1-12 or only "*"']); - } elseif (!Validator::arrayType()->oneOf(Validator::equals(['*']), Validator::each(Validator::intVal()->between(1, 31)))->validate($body['daysOfMonth'])) { - return $response->withStatus(400)->withJson(['errors' => 'Body daysOfMonth must contain numbers from 1-31 or only "*"']); - } elseif (!Validator::arrayType()->oneOf(Validator::equals(['*']), Validator::each(Validator::intVal()->between(1, 7)))->validate($body['daysOfWeek'])) { - return $response->withStatus(400)->withJson(['errors' => 'Body daysOfWeek must contain numbers from 1-7 or only "*"']); - } elseif (!(Validator::equals(['*'])->validate($body['months']) xor Validator::equals(['*'])->validate($body['daysOfWeek']))) { - return $response->withStatus(400)->withJson(['errors' => 'One and only one of body months and daysOfWeek must be ["*"]']); - } elseif (!Validator::stringType()->time('H:i')->validate($body['startTime'])) { - return $response->withStatus(400)->withJson(['errors' => 'Body startTime is not a valid time']); - } elseif (!Validator::stringType()->time('H:i')->greaterThan($body['startTime'])->validate($body['endTime'])) { - return $response->withStatus(400)->withJson(['errors' => 'Body endTime is not a valid time or is <= startTime']); - } elseif (!Validator::intType()->positive()->validate($body['frequency'])) { - return $response->withStatus(400)->withJson(['errors' => 'Body frequency is not a number or is <= 0']); - } elseif (!Validator::stringType()->in(NotificationsScheduleModel::FREQUENCY_MODES)->validate($body['frequencyMode'])) { - return $response->withStatus(400)->withJson(['errors' => 'Body frequencyMode does not exist']); + $err = $this->validateBody($body); + if (!empty($err)) { + return $response->withStatus(400)->withJson(['errors' => $err]); } $body['months'] = array_values(array_unique($body['months'])); @@ -156,7 +177,7 @@ class NotificationsScheduleController sort($body['daysOfMonth']); sort($body['daysOfWeek']); - $notificationsScheduleItem = NotificationsScheduleModel::getById(['id' => $aArgs['id']]); + $notificationsScheduleItem = NotificationsScheduleModel::getById(['id' => $args['id']]); if (empty($notificationsScheduleItem)) { return $response->withStatus(400)->withJson(['errors' => 'Notifications schedule item not found']); } @@ -174,13 +195,13 @@ class NotificationsScheduleController 'frequency_mode' => $body['frequencyMode'], ], 'where' => ['id = ?'], - 'data' => [$aArgs['id']] + 'data' => [$args['id']] ]); HistoryController::add([ 'code' => 'OK', 'objectType' => 'notifications_schedule', - 'objectId' => $aArgs['id'], + 'objectId' => $args['id'], 'type' => 'MODIFICATION', 'message' => "{notificationsScheduleItemUpdated} : {$body['label']}, type {$body['type']}" ]); @@ -188,27 +209,27 @@ class NotificationsScheduleController return $response->withStatus(204); } - public function delete(Request $request, Response $response, array $aArgs) + public function delete(Request $request, Response $response, array $args) { if (!PrivilegeController::hasPrivilege(['userId' => $GLOBALS['id'], 'privilege' => 'manage_notifications'])) { return $response->withStatus(403)->withJson(['errors' => 'Privilege forbidden']); } - if (!Validator::intVal()->notEmpty()->validate($aArgs['id'])) { + if (!Validator::intVal()->notEmpty()->validate($args['id'])) { return $response->withStatus(400)->withJson(['errors' => 'Id must be an integer']); } - $notificationsScheduleItem = NotificationsScheduleModel::getById(['id' => $aArgs['id']]); + $notificationsScheduleItem = NotificationsScheduleModel::getById(['id' => $args['id']]); if (empty($notificationsScheduleItem)) { return $response->withStatus(400)->withJson(['errors' => 'Notifications schedule item not found']); } - NotificationsScheduleModel::delete(['where' => ['id = ?'], 'data' => [$aArgs['id']]]); + NotificationsScheduleModel::delete(['where' => ['id = ?'], 'data' => [$args['id']]]); HistoryController::add([ 'code' => 'OK', 'objectType' => 'notifications_schedule', - 'objectId' => $aArgs['id'], + 'objectId' => $args['id'], 'type' => 'SUPPRESSION', 'message' => "{notificationsScheduleItemDeleted} : {$notificationsScheduleItem['label']}, type {$notificationsScheduleItem['type']}" ]); diff --git a/src/app/notifications/models/NotificationsScheduleModel.php b/src/app/notifications/models/NotificationsScheduleModel.php index b8c444aa04d8f9a0def44205a3bc313d8a9000f6..f96423594be3ba7af2b3f2b41f5d2d67ea248a87 100644 --- a/src/app/notifications/models/NotificationsScheduleModel.php +++ b/src/app/notifications/models/NotificationsScheduleModel.php @@ -12,7 +12,7 @@ * @author dev@maarch.org */ -namespace Notifications\models; +namespace Notification\models; use SrcCore\models\DatabaseModel; use SrcCore\models\ValidatorModel; @@ -22,39 +22,33 @@ class NotificationsScheduleModel public const TYPES = ['next_user', 'typist_END', 'typist_INT', 'typist_DEL', 'typist_REF']; public const FREQUENCY_MODES = ['minutes', 'hours']; - public static function get(array $aArgs = []) + public static function get(array $args = []) { - ValidatorModel::arrayType($aArgs, ['select', 'where', 'data', 'orderBy']); - ValidatorModel::intType($aArgs, ['limit']); + ValidatorModel::arrayType($args, ['select', 'where', 'data', 'orderBy']); + ValidatorModel::intType($args, ['limit']); $notificationsSchedule = DatabaseModel::select([ - 'select' => empty($aArgs['select']) ? ['*'] : $aArgs['select'], + 'select' => empty($args['select']) ? ['*'] : $args['select'], 'table' => ['notifications_schedule'], - 'where' => empty($aArgs['where']) ? [] : $aArgs['where'], - 'data' => empty($aArgs['data']) ? [] : $aArgs['data'], - 'orderBy' => empty($aArgs['orderBy']) ? [] : $aArgs['orderBy'], - 'limit' => empty($aArgs['limit']) ? 0 : $aArgs['limit'] + 'where' => empty($args['where']) ? [] : $args['where'], + 'data' => empty($args['data']) ? [] : $args['data'], + 'orderBy' => empty($args['orderBy']) ? [] : $args['orderBy'], + 'limit' => empty($args['limit']) ? 0 : $args['limit'] ]); - foreach ($notificationsSchedule as $key => $notificationsScheduleItem) { - $notificationsSchedule[$key]['months'] = json_decode($notificationsScheduleItem['months']); - $notificationsSchedule[$key]['days_of_month'] = json_decode($notificationsScheduleItem['days_of_month']); - $notificationsSchedule[$key]['days_of_week'] = json_decode($notificationsScheduleItem['days_of_week']); - } - return $notificationsSchedule; } - public static function getById(array $aArgs) + public static function getById(array $args) { - ValidatorModel::notEmpty($aArgs, ['id']); - ValidatorModel::intVal($aArgs, ['id']); - ValidatorModel::arrayType($aArgs, ['select']); + ValidatorModel::notEmpty($args, ['id']); + ValidatorModel::intVal($args, ['id']); + ValidatorModel::arrayType($args, ['select']); $notificationsScheduleItem = NotificationsScheduleModel::get([ - 'select' => empty($aArgs['select']) ? ['*'] : $aArgs['select'], + 'select' => empty($args['select']) ? ['*'] : $args['select'], 'where' => ['id = ?'], - 'data' => [$aArgs['id']] + 'data' => [$args['id']] ]); if (!empty($notificationsScheduleItem)) { @@ -64,26 +58,26 @@ class NotificationsScheduleModel return []; } - public static function create(array $aArgs) + public static function create(array $args) { - ValidatorModel::notEmpty($aArgs, ['label', 'type']); - ValidatorModel::stringType($aArgs, ['label', 'type', 'frequency_mode', 'start_time', 'end_time', 'months', 'days_of_month', 'days_of_week']); - ValidatorModel::intType($aArgs, ['frequency']); + ValidatorModel::notEmpty($args, ['label', 'type']); + ValidatorModel::stringType($args, ['label', 'type', 'frequency_mode', 'start_time', 'end_time', 'months', 'days_of_month', 'days_of_week']); + ValidatorModel::intType($args, ['frequency']); $nextSequenceId = DatabaseModel::getNextSequenceValue(['sequenceId' => 'notifications_schedule_id_seq']); DatabaseModel::insert([ 'table' => 'notifications_schedule', 'columnsValues' => [ - 'id' => $nextSequenceId, - 'label' => $aArgs['label'], - 'type' => $aArgs['type'], - 'months' => $aArgs['months'], - 'days_of_month' => $aArgs['days_of_month'], - 'days_of_week' => $aArgs['days_of_week'], - 'start_time' => $aArgs['start_time'], - 'end_time' => $aArgs['end_time'], - 'frequency' => $aArgs['frequency'], - 'frequency_mode' => $aArgs['frequency_mode'], + 'id' => $nextSequenceId, + 'label' => $args['label'], + 'type' => $args['type'], + 'months' => $args['months'], + 'days_of_month' => $args['days_of_month'], + 'days_of_week' => $args['days_of_week'], + 'start_time' => $args['start_time'], + 'end_time' => $args['end_time'], + 'frequency' => $args['frequency'], + 'frequency_mode' => $args['frequency_mode'], ] ]); diff --git a/vendor/composer/autoload_psr4.php b/vendor/composer/autoload_psr4.php index faeca4aa30ca9e1febc37922d84afa26aae2bb29..a51c3ccd35933bb6ab8db8aa0b5e4d1cdef2b0e2 100644 --- a/vendor/composer/autoload_psr4.php +++ b/vendor/composer/autoload_psr4.php @@ -23,7 +23,6 @@ return array( 'Prophecy\\' => array($vendorDir . '/phpspec/prophecy/src/Prophecy'), 'PhpParser\\' => array($vendorDir . '/nikic/php-parser/lib/PhpParser'), 'PHPMailer\\PHPMailer\\' => array($vendorDir . '/phpmailer/phpmailer/src'), - 'Notifications\\' => array($baseDir . '/src/app/notifications'), 'Notification\\' => array($baseDir . '/src/app/notifications'), 'History\\' => array($baseDir . '/src/app/history'), 'Group\\' => array($baseDir . '/src/app/group'), diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 4fca5d2604fea901d5452b8d0149f98abd477506..0a8f59a7d016c999e989a5a95e0e29b4af1d585a 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -56,7 +56,6 @@ class ComposerStaticInit637514d10f1ed5d4c55a005a428a3656 ), 'N' => array ( - 'Notifications\\' => 14, 'Notification\\' => 13, ), 'H' => @@ -166,10 +165,6 @@ class ComposerStaticInit637514d10f1ed5d4c55a005a428a3656 array ( 0 => __DIR__ . '/..' . '/phpmailer/phpmailer/src', ), - 'Notifications\\' => - array ( - 0 => __DIR__ . '/../..' . '/src/app/notifications', - ), 'Notification\\' => array ( 0 => __DIR__ . '/../..' . '/src/app/notifications',