From 082e263bc72e6ecc337d7a9396b984cc03a649b7 Mon Sep 17 00:00:00 2001 From: Richard Steinmetz Date: Thu, 5 Jan 2023 14:21:00 +0100 Subject: [PATCH 1/4] ci(package): update ubuntu and krankerl Updating krankerl is required due to its dependency on openssl. Signed-off-by: Richard Steinmetz --- .github/workflows/package.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/package.yml b/.github/workflows/package.yml index b4c6deee0..b9412e7be 100644 --- a/.github/workflows/package.yml +++ b/.github/workflows/package.yml @@ -4,7 +4,7 @@ on: [push, pull_request] jobs: release-tarball: - runs-on: ubuntu-18.04 + runs-on: ubuntu-latest name: Build release tarball steps: - name: Checkout @@ -22,8 +22,8 @@ jobs: coverage: none - name: Install Krankerl run: | - wget https://github.com/ChristophWurst/krankerl/releases/download/v0.12.3/krankerl_0.12.3_amd64.deb - sudo dpkg -i krankerl_0.12.3_amd64.deb + wget https://github.com/ChristophWurst/krankerl/releases/download/v0.14.0/krankerl_0.14.0_amd64.deb + sudo dpkg -i krankerl_0.14.0_amd64.deb - name: Package app run: krankerl package - uses: actions/upload-artifact@v2 -- GitLab From 74648fb3509c3ab08d3a1c054d1518f1f9e91dac Mon Sep 17 00:00:00 2001 From: Anna Larch Date: Wed, 1 Feb 2023 13:06:52 +0100 Subject: [PATCH 2/4] Run stable3.5 phpunit workflows on NC 22 to 24 only Signed-off-by: Anna Larch --- .github/workflows/php-test.yml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/.github/workflows/php-test.yml b/.github/workflows/php-test.yml index b8d2a9310..7fef20f01 100644 --- a/.github/workflows/php-test.yml +++ b/.github/workflows/php-test.yml @@ -20,12 +20,6 @@ jobs: nextcloud-versions: 'stable24' - php-versions: '8.1' nextcloud-versions: 'stable24' - - php-versions: '7.4' - nextcloud-versions: 'master' - - php-versions: '8.0' - nextcloud-versions: 'master' - - php-versions: '8.1' - nextcloud-versions: 'master' name: php${{ matrix.php-versions }} on ${{ matrix.nextcloud-versions }} unit tests env: CI: true -- GitLab From f32d8b22d069932fe6277d3274b8c9c7c9de5c22 Mon Sep 17 00:00:00 2001 From: Anna Larch Date: Wed, 1 Feb 2023 12:08:27 +0100 Subject: [PATCH 3/4] Refine exception handling for booking controller Signed-off-by: Anna Larch --- lib/Controller/BookingController.php | 18 ++++++++++++++++-- .../unit/Controller/BookingControllerTest.php | 12 +++++++++++- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/lib/Controller/BookingController.php b/lib/Controller/BookingController.php index a8a564c2d..4339c1430 100644 --- a/lib/Controller/BookingController.php +++ b/lib/Controller/BookingController.php @@ -42,6 +42,7 @@ use OCP\AppFramework\Http\TemplateResponse; use OCP\AppFramework\Services\IInitialState; use OCP\AppFramework\Utility\ITimeFactory; use OCP\DB\Exception; +use OCP\IConfig; use OCP\IRequest; use OCP\Mail\IMailer; use Psr\Log\LoggerInterface; @@ -68,6 +69,7 @@ class BookingController extends Controller { /** @var IMailer */ private $mailer; + private IConfig $systemConfig; public function __construct(string $appName, IRequest $request, @@ -77,7 +79,8 @@ class BookingController extends Controller { AppointmentConfigService $appointmentConfigService, URLGenerator $urlGenerator, LoggerInterface $logger, - IMailer $mailer) { + IMailer $mailer, + IConfig $systemConfig) { parent::__construct($appName, $request); $this->bookingService = $bookingService; @@ -87,6 +90,7 @@ class BookingController extends Controller { $this->urlGenerator = $urlGenerator; $this->logger = $logger; $this->mailer = $mailer; + $this->systemConfig = $systemConfig; } /** @@ -191,7 +195,17 @@ class BookingController extends Controller { return JsonResponse::fail(null, Http::STATUS_UNPROCESSABLE_ENTITY); } catch (ServiceException $e) { $this->logger->error($e->getMessage(), ['exception' => $e]); - return JsonResponse::errorFromThrowable($e, $e->getHttpCode() ?? Http::STATUS_INTERNAL_SERVER_ERROR); + + if ($this->systemConfig->getSystemValue('debug', false)) { + return JsonResponse::errorFromThrowable($e, $e->getHttpCode() ?? Http::STATUS_INTERNAL_SERVER_ERROR, + ['debug' => true,] + ); + } + + return JsonResponse::error( + 'Server error', + $e->getHttpCode() ?? Http::STATUS_INTERNAL_SERVER_ERROR + ); } return JsonResponse::success($booking); diff --git a/tests/php/unit/Controller/BookingControllerTest.php b/tests/php/unit/Controller/BookingControllerTest.php index 529cc2f49..5c60cc283 100644 --- a/tests/php/unit/Controller/BookingControllerTest.php +++ b/tests/php/unit/Controller/BookingControllerTest.php @@ -39,6 +39,7 @@ use OCP\AppFramework\Services\IInitialState; use OCP\AppFramework\Utility\ITimeFactory; use OCP\Calendar\ICalendarQuery; use OCP\Contacts\IManager; +use OCP\IConfig; use OCP\IInitialStateService; use OCP\IRequest; use OCP\IUser; @@ -88,6 +89,9 @@ class BookingControllerTest extends TestCase { /** @var IMailer|MockObject */ private $mailer; + /** @var IConfig|MockObject */ + private $systemConfig; + protected function setUp():void { parent::setUp(); @@ -104,6 +108,7 @@ class BookingControllerTest extends TestCase { $this->urlGenerator = $this->createMock(URLGenerator::class); $this->logger = $this->createMock(LoggerInterface::class); $this->mailer = $this->createMock(IMailer::class); + $this->systemConfig = $this->createMock(IConfig::class); $this->controller = new BookingController( $this->appName, $this->request, @@ -113,7 +118,8 @@ class BookingControllerTest extends TestCase { $this->apptService, $this->urlGenerator, $this->logger, - $this->mailer + $this->mailer, + $this->systemConfig, ); } @@ -255,6 +261,10 @@ class BookingControllerTest extends TestCase { ->method('book') ->with($config, 1, 1, 'Europe/Berlin', 'Test', $email, 'Test') ->willThrowException(new ServiceException()); + $this->systemConfig->expects(self::once()) + ->method('getSystemValue') + ->with('debug') + ->willReturn(false); $this->controller->bookSlot(1, 1, 1, 'Test', $email, 'Test', 'Europe/Berlin'); } -- GitLab From 07845accacccab2c3940438e0a94726027e1910a Mon Sep 17 00:00:00 2001 From: Anna Larch Date: Wed, 1 Feb 2023 14:30:16 +0100 Subject: [PATCH 4/4] Release v3.5.5 Signed-off-by: Anna Larch --- CHANGELOG.md | 4 ++++ appinfo/info.xml | 2 +- package-lock.json | 4 ++-- package.json | 2 +- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c83284d1d..b11b2b2c8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,10 @@ # Changelog +## 3.5.5 - 2023-02-01 +### Fixed +- Error handling in booking controller + ## 3.5.4 - 2022-12-22 ### Fixed - Handling of Email VALARMs diff --git a/appinfo/info.xml b/appinfo/info.xml index cae1e779c..7786e01e1 100644 --- a/appinfo/info.xml +++ b/appinfo/info.xml @@ -15,7 +15,7 @@ * ☑️ Tasks! See tasks with a due date directly in the calendar * 🙈 **We’re not reinventing the wheel!** Based on the great [c-dav library](https://github.com/nextcloud/cdav-library), [ical.js](https://github.com/mozilla-comm/ical.js) and [fullcalendar](https://github.com/fullcalendar/fullcalendar) libraries. ]]> - 3.5.4 + 3.5.5 agpl Anna Larch Nextcloud Groupware Team diff --git a/package-lock.json b/package-lock.json index 48205b81d..bed327aa5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "calendar", - "version": "3.5.4", + "version": "3.5.5", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "calendar", - "version": "3.5.4", + "version": "3.5.5", "license": "agpl", "dependencies": { "@fullcalendar/core": "5.11.0", diff --git a/package.json b/package.json index b4067d429..fc97e1175 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "calendar", "description": "A calendar app for Nextcloud. Easily sync events from various devices, share and edit them online.", - "version": "3.5.4", + "version": "3.5.5", "author": "Georg Ehrke ", "contributors": [ "Georg Ehrke ", -- GitLab