Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(ZMS): show alternative locations for offices #820

Merged

Conversation

ThomasAFink
Copy link
Member

@ThomasAFink ThomasAFink commented Feb 6, 2025

Pull Request Checklist (Feature Branch to next):

  • Ich habe die neuesten Änderungen aus dem next Branch in meinen Feature-Branch gemergt.
  • Das Code-Review wurde abgeschlossen.
  • Fachliche Tests wurden durchgeführt und sind abgeschlossen.

Summary by CodeRabbit

  • New Features

    • Introduced an optional flag to control the display of alternative office locations within office listings and calendars.
  • Tests

    • Updated expected response structures to validate the new flag, ensuring consistency in how office information is presented.
  • Documentation

    • Revised API and schema definitions to incorporate the new flag, providing clear guidance on its usage in office data representations.

Copy link
Contributor

coderabbitai bot commented Feb 6, 2025

Walkthrough

This update introduces a new nullable boolean property, showAlternativeLocations, into the Office data model. The Office class now accepts this property via its constructor and includes it in its serialization method. Additionally, the MapperService and ZmsApiFacadeService methods have been updated to pass this new parameter when instantiating Office objects. Test cases and JSON schemas have also been revised to reflect the new field, ensuring that alternative location display information is consistently handled throughout the application.

Changes

File(s) Change Summary
zmscitizenapi/.../Models/Office.php
zmscitizenapi/.../Services/Core/MapperService.php
zmscitizenapi/.../Services/Core/ZmsApiFacadeService.php
Added the showAlternativeLocations property to the Office model; updated the constructor, toArray method, and service methods to integrate the new parameter.
zmscitizenapi/tests/...
(OfficeListByServiceControllerTest.php, OfficesListControllerTest.php, OfficesServicesRelationsControllerTest.php, ZmsApiFacadeServiceTest.php, GET_SourceGet_dldb.json)
Revised expected response structures in tests by replacing or supplementing displayNameAlternatives with showAlternativeLocations to reflect changes in the Office model.
zmsentities/schema/...
(officeList.json, officeServiceAndRelationList.json, office.json)
Updated JSON schemas to include the showAlternativeLocations property (type: ["boolean", "null"]) and reformatted type declarations for consistency and improved readability.

Sequence Diagram(s)

sequenceDiagram
    participant Facade as ZmsApiFacadeService
    participant Mapper as MapperService
    participant Office as Office Model

    Facade->>Mapper: Request office data (getOffices, getOfficeListByServiceId, etc.)
    Mapper->>Office: Instantiate Office(..., showAlternativeLocations)
    Office-->>Mapper: Return Office instance with showAlternativeLocations set
    Mapper-->>Facade: Return OfficeList with updated property
Loading

Possibly related PRs

Suggested reviewers

  • Fabinatix97

Poem

I hop through lines of code with glee,
Adding new fields as you can see.
showAlternativeLocations now takes the stage,
Guiding data through each service page.
With every hop and every byte,
I celebrate code by day and night!
🐇🌟


🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR. (Beta)
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (1)
zmscitizenapi/tests/Zmscitizenapi/Services/Core/ZmsApiFacadeServiceTest.php (1)

67-68: Consider adding test coverage for true value.

While the current test covers the basic functionality with showAlternativeLocations set to false, consider adding another test case with showAlternativeLocations set to true for comprehensive coverage.

 public function testGetOfficesSuccess(): void
 {
     // ... existing test code ...
 }
+
+public function testGetOfficesWithAlternativeLocationsSuccess(): void
+{
+    $provider = new Provider();
+    $provider->id = 1;
+    $provider->name = 'Test Provider';
+    $provider->source = 'unittest';
+    $provider->data = [
+        'address' => [
+            'street' => 'Test Street',
+            'number' => '123',
+            'city' => 'Test City',
+            'postal_code' => '12345'
+        ],
+        'geo' => ['lat' => 48.137154, 'lon' => 11.576124],
+        'showAlternativeLocations' => true
+    ];
+
+    // ... rest of the test setup ...
+
+    $result = ZmsApiFacadeService::getOffices();
+    $this->assertInstanceOf(OfficeList::class, $result);
+    $this->assertCount(1, $result->offices);
+    
+    $office = $result->offices[0];
+    $this->assertTrue($office->showAlternativeLocations);
+}
📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 7fdf903 and 007a753.

📒 Files selected for processing (11)
  • zmscitizenapi/src/Zmscitizenapi/Models/Office.php (4 hunks)
  • zmscitizenapi/src/Zmscitizenapi/Services/Core/MapperService.php (1 hunks)
  • zmscitizenapi/src/Zmscitizenapi/Services/Core/ZmsApiFacadeService.php (3 hunks)
  • zmscitizenapi/tests/Zmscitizenapi/Controllers/Office/OfficeListByServiceControllerTest.php (3 hunks)
  • zmscitizenapi/tests/Zmscitizenapi/Controllers/Office/OfficesListControllerTest.php (2 hunks)
  • zmscitizenapi/tests/Zmscitizenapi/Controllers/Office/OfficesServicesRelationsControllerTest.php (2 hunks)
  • zmscitizenapi/tests/Zmscitizenapi/Services/Core/ZmsApiFacadeServiceTest.php (1 hunks)
  • zmscitizenapi/tests/Zmscitizenapi/fixtures/GET_SourceGet_dldb.json (2 hunks)
  • zmsentities/schema/citizenapi/collections/officeList.json (3 hunks)
  • zmsentities/schema/citizenapi/collections/officeServiceAndRelationList.json (2 hunks)
  • zmsentities/schema/citizenapi/office.json (3 hunks)
✅ Files skipped from review due to trivial changes (1)
  • zmsentities/schema/citizenapi/office.json
⏰ Context from checks skipped due to timeout of 90000ms (2)
  • GitHub Check: call-unit-tests / zmsdb-test
  • GitHub Check: call-unit-tests / zmsapi-test
🔇 Additional comments (17)
zmscitizenapi/src/Zmscitizenapi/Models/Office.php (3)

27-29: LGTM! Property declaration follows best practices.

The new property is properly typed and documented using PHP 7.4+ property typing.


83-97: LGTM! Serialization includes the new field.

The toArray method properly includes the new field in the serialized output.


45-67: LGTM! Constructor implementation is correct.

The new parameter is logically placed and properly initialized.

Verify that the schema has been updated to include the new field:

✅ Verification successful

🏁 Script executed:

#!/bin/bash
# Description: Check if the schema includes the new showAlternativeLocations field
cat citizenapi/office.json | jq '.properties.showAlternativeLocations'

Length of output: 125


I'm not getting a definitive answer from the initial command because the file citizenapi/office.json wasn't found. To further investigate the update to the schema, let's search for any JSON file in the repository that mentions "showAlternativeLocations". This should help us locate where the schema might be defined.

Please run this script and share the output so we can verify whether the schema update exists in the codebase.


🏁 Script executed:

#!/bin/bash
# Search for any JSON file that contains the "showAlternativeLocations" property.
rg --type json '"showAlternativeLocations"'

Length of output: 560


Schema Update Verification

The schema has been updated to include the new showAlternativeLocations field. The search results show that the property is defined in multiple schema files (e.g., in zmsentities/schema/citizenapi/office.json, officeList.json, and officeServiceAndRelationList.json). This confirms that the necessary schema update has been made.

zmscitizenapi/tests/Zmscitizenapi/Controllers/Office/OfficesListControllerTest.php (1)

44-45: LGTM! Test coverage is comprehensive.

The test data includes both true and false cases for the new showAlternativeLocations field, ensuring proper coverage of the feature.

Also applies to: 85-86

zmscitizenapi/tests/Zmscitizenapi/Controllers/Office/OfficesServicesRelationsControllerTest.php (1)

44-45: LGTM! Test implementation is consistent.

The test data structure and values are consistent with other test files in the suite.

Also applies to: 85-86

zmscitizenapi/tests/Zmscitizenapi/Controllers/Office/OfficeListByServiceControllerTest.php (1)

45-46: LGTM! Test cases properly validate the new property.

The test cases have been updated to include the new showAlternativeLocations property with appropriate values for different scenarios, ensuring proper validation of the feature.

Also applies to: 106-107, 144-145

zmscitizenapi/src/Zmscitizenapi/Services/Core/MapperService.php (1)

66-66: LGTM! Property mapping is implemented correctly.

The showAlternativeLocations property is properly mapped from provider data with appropriate null handling using the null coalescing operator.

zmscitizenapi/src/Zmscitizenapi/Services/Core/ZmsApiFacadeService.php (1)

66-66: LGTM! Consistent implementation across all methods.

The showAlternativeLocations property is consistently added to Office constructor calls across all relevant methods with proper null handling.

Also applies to: 255-256, 382-383

zmsentities/schema/citizenapi/collections/officeList.json (2)

28-34: LGTM! Schema properly defines the new property.

The showAlternativeLocations property is well-defined with:

  • Appropriate type constraints (boolean or null)
  • Clear description of its purpose

2-6: LGTM! Improved schema formatting.

The type declarations have been reformatted to a more readable multi-line style while maintaining the same functionality.

Also applies to: 73-76, 80-83, 87-90, 94-97

zmscitizenapi/tests/Zmscitizenapi/fixtures/GET_SourceGet_dldb.json (2)

27-28: New Boolean Field in Provider Data (id "9999998")
A new property, showAlternativeLocations with a value of false, has been added within the data section for the provider with id "9999998". This addition clarifies that alternative locations should not be shown for this provider. Please ensure that any consumers of this JSON structure are updated to handle the new field.


50-51: Consistent Boolean Assignment for Provider "9999999"
The property showAlternativeLocations is correctly included with a value of true for the provider with id "9999999". This mirrors the intended behavior for providers that should display alternative locations.

zmsentities/schema/citizenapi/collections/officeServiceAndRelationList.json (5)

29-35: New Schema Field: showAlternativeLocations
A new property showAlternativeLocations has been introduced in the Office schema. It is defined to accept a boolean or null value. This change aligns the JSON schema with the updated Office model and ensures that downstream consumers can correctly determine whether alternative office locations should be displayed.


73-77: Schema Formatting Update: displayNameAlternatives
The type declaration for displayNameAlternatives has been reformatted into a multi-line array structure. This update improves readability while preserving the original intended types (array or null).


81-84: Schema Formatting Update: organization
The organization property now uses a multi-line array format for its type definition ("string" or "null"). This change enhances consistency and clarity in the schema without altering its semantics.


88-91: Schema Formatting Update: organizationUnit
Reformatting of the organizationUnit property into a multi-line array improves the overall consistency of the schema. The allowed types remain unchanged ("string" or "null").


95-98: Schema Formatting Update: slotTimeInMinutes
The type declaration for slotTimeInMinutes has been reformatted to a multi-line array structure, which enhances clarity. This change does not affect the underlying type semantics (allowing both "integer" and "null").

@ThomasAFink ThomasAFink merged commit a7b3a64 into next Feb 6, 2025
24 checks passed
Fabinatix97 pushed a commit that referenced this pull request Feb 7, 2025
* add zmsapi methods to base controller

* add helper methods to base controller

* refactored into services and controllers

* remove duplicate function definitions

* move helpers from base controller to new utility helper

* add a method

* Feature mpdzbs 887 zmscitizenapi post reserve appointment and refactor (#574)

* endpoint working

* fix unit tests

* one working test for post-reserve

* some clean up

* feat(ZMS-2517): fix up response for the reserve post request

* feat(ZMS-2517): add more unit tests for validations

* feat(ZMS-2517): add more unit tests for validations

* feat(ZMS-2517): Zmscitizenapi Refactor Part 1 of 3 move controllers back to root

* feat(ZMS-2517): Zmscitizenapi Refactor Part 2 of 3 create ZmsApiFacadeService ZmsApiClientService ValidationService MapperService UtilityHelper and delete fragmented services

* feat(ZMS-2517): Zmscitizenapi Refactor Part 3 of 3 clean up validations and unit tests

---------

Co-authored-by: Thomas Fink <thomasafink@Thomass-MacBook-Air.local>

* feat(MPDZBS-877): Readd zmscitizenapi to github workflow

* feat(MPDZBS-877): Readd files lost in github history

* feat(MPDZBS-877): Readd files lost in github history

* feat(MPDZBS-877): Resolve merge conflict in zmsentities

* feat(MPDZBS-877): Readd zmscitizenapi schemas to zmsentities deleted by github commit history

* (feat MPDZBS-877): update local env cli

* Feature mpdzbs 887 zms 2518 zmscitizenapi post update appointment (#587)

* (feat MPDZBS-877) readd citizenapi to  htaccess

* feat(MPDZBS-877 ZMS-2517): Working Appointment update with too many emails exception

* feat(MPDZBS-877 ZMS-2517): Test rendering working for update appointment test

* feat(MPDZBS-877 ZMS-2517): Add 63 validation unit tests for appointment update

* feat(MPDZBS-877 ZMS-2517): Refactor exception appointmentNotFound

* feat(MPDZBS-877 ZMS-2517): Add two new edge case exception tests

* feat(MPDZBS-877 ZMS-2517): Remove error_logs

---------

Co-authored-by: Thomas Fink <thomasafink@Thomass-MacBook-Air.local>

* feat(MPDZBS-877): update .gitignore

* cleanup(MPDZBS-877): Improve security and cleanup code

* fix(MPDZBS-877): fix bin configure

* fix(MPDZBS-877): fix config.example.php

* cleanup(MPDZBS-877): merge next into feature branch

* docs(MPDZBS-877): update docs for zmscitizenapi

* clean(MPDZBS-877): change friendly captcha default endpoint to eu

* clean(MPDZBS-877): change maintenance and captcha enabled to boolean

* clean(MPDZBS-877): improve internal error handling enable middleware

* feat(MPDZBS-877): return 503 for maintenance

* feat(MPDZBS-877): add generic captcha interface

* clean(MPDZBS-877): improve validation for array ids

* feat(MPDZBS-877): improve zmscitizenapi typing

* clean(MPDZBS-877): typing overhaul using zmsentities

* clean(MPDZBS-877): typing overhaul using zmsentities

* clean(MPDZBS-877): improve telephone validation regex

* clean(MPDZBS-877): improve serviceId validation regex

* clean(MPDZBS-877): fix naming issue

* clean(MPDZBS-877): make hardcoded source name dynamic

* clean(MPDZBS-877): clean up more and change citizenapi to utf8

* clean(MPDZBS-877): improve error messaging codes and expand office api with geocoordinates and address

* clean(MPDZBS-877): cleanup syntax and error handling

* clean(MPDZBS-877): cleanup syntax and error handling

* fix(MPDZBS-877): offices and services mapper

* fix(MPDZBS-877): fix reserve appointment validation

* fix(MPDZBS-877): improve some validation for empty arrays

* feat(MPDZBS-877): Improve ThinnedProcess object and cleanup some stuff with naming (#739)

* feat(MPDZB-877): Work on thinnedprocess typing

* feat(MPDZB): Refactor part 1

* feat(MPDZB): Refactor part 1

* feat(MPDZB-877): revert to processId in parameter

* feat(MPDZBS-877): refactor thinned process to object

* feat(MPDZB-877): refactor thinned process and rename controllers

---------

Co-authored-by: Tom Fink <thomasafink@Toms-MacBook-Air.local>
Co-authored-by: DDEV User <nobody@example.com>
Co-authored-by: Thomas Fink <thomasafink@Thomass-MacBook-Air.local>

* feat(MPDZBS-877): zmscitizenapi cleanup (#740)

* feat(MPDZB-877): Work on thinnedprocess typing

* feat(MPDZB): Refactor part 1

* feat(MPDZB): Refactor part 1

* feat(MPDZB-877): revert to processId in parameter

* feat(MPDZBS-877): refactor thinned process to object

* feat(MPDZB-877): refactor thinned process and rename controllers

* feat(MPDZBs-877): clean up more junk

---------

Co-authored-by: Tom Fink <thomasafink@Toms-MacBook-Air.local>
Co-authored-by: DDEV User <nobody@example.com>
Co-authored-by: Thomas Fink <thomasafink@Thomass-MacBook-Air.local>

* feat(MPDZBs-877): clean up more stuff validation improvement

* Update zmscitizenapi/src/Zmscitizenapi/Captcha.php

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* feat(MPDZBs-877): clean up captcha add more tests

* feat(ZMS-3430): create db indices

* feat(MPDZBS-877): Refactor Controllers and improve move typing building models

* feat(MPDZBS-877): Refactor Utilities and Helpers

* Update zmscitizenapi/src/Zmscitizenapi/Services/MapperService.php

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* feat(MPDZBS-877): Fix bug

* feat(MPDZBS-877): rename scope models in zmscitizenapi

* feat(MPDZBS-877): cleanup service model

* feat(MPDZBS-877): Improve ThinnedProcess and ThinnedScope models

* fix(MPDZBS-877): swagger docs

* fix(MPDZBS-877): swagger docs

* zms-2871-2874-minus-deletion-by-location-delete-and-orthography-mail-and-notification-buttons

* fix(MPDZBS-877): set up models for Office Service and Captcha

* fix(MPDZBS-877): Improve captcha typing

* Update zmscitizenapi/src/Zmscitizenapi/Models/Captcha/AltchaCaptcha.php

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix(MPDZBS-877): Improve captcha typing cleanup

* fix(MPDZBS-877): Improve captcha typing cleanup

* fix(MPDZBS-877): remove status from visual response

* fix(MPDZBS-877): Improve typing for Office Service and ThinnedScope

* fix(MPDZBS-877): Improve typing for Office Service Relations

* fix(MPDZBS-877): Improve typing for ThinnedProvider

* fix(MPDZBS-877): Refactor model lists to collections

* fix(MPDZBS-877): Improve typing for Combinable

* fix(MPDZBS-877): Cleanup AltchaCaptcha class

* fix(MPDZBS-877): Improve parameters for getAvailableAppointments

* fix(MPDZBS-877): Improve typing for AvailableDays and AvailableAppointments

* fix(MPDZBS-877): Cleanup schemas

* fix(MPDZBS-877): Cleanup schema mismatch

* fix(MPDZBS-877): Optimize next loops and schema typing

* fix(MPDZBS-877): Improve schema

* fix(MPDZBS-877): Improve schema

* fix(MPDZBS-877): Improve schema and error catching

* fix(MPDZBS-877): Improve api fetching safety

* fix(MPDZBS-877): Introduce strict typing for files with logic

* fix(deps): update dependency phpoffice/phpspreadsheet to v1.29.6 (#738)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency squizlabs/php_codesniffer to v3.11.2 (#751)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(MPDZBS-877): Introduce schema validation into the models

* fix(MPDZBS-877): Centralize validation, set default language to german, improve exception handling

* fix(MPDZBS-877): authKeyMissMatch error exception

* fix(MPDZBS-877): cleanup some code

* fix(MPDZBS-877): cleanup collection models

* Delete zmscitizenapi/templates/.keep

* Revert "Delete zmscitizenapi/templates/.keep"

This reverts commit 7725d44.

* clean(MPDZBS-877): remove comments

* fix(MPDZBS-877): errorCode fix

* fix(MPDZBS-877): validation input date bug and add unittest plus authKeyMismatch typo and add unittest

* clean(MPDZBS-877): remove unused vars

* feat(MPDZBS-877): Improve zmsapi exception handling

* feat(MPDZBS-877): Improve contact mapping and provider mapping

* Improve exception handling

* feat(MPDZBS-877): Refactor office model

* feat(MPDZBS-877): fix ProcessFreeSlots typing

* clean(MPDZBS-877): refactor and improve contoller legibility

* fix(MPDZBS-877): improve post request validation dont get request body on null fix

* clean(MPDZBS-877): improve OfficesByServiceList controller

* clean(MPDZBS-877): correct not yet implemented controllers

* chore(deps): update dependency sass to v1.83.0 (#750)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency phpoffice/phpspreadsheet to v1.29.7 (#752)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* clean(MPDZBS-877): Add null checks for requests to zmsapi

* chore(deps): update dependency phpspec/prophecy-phpunit to v2.3.0 (#647)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* clean(MPDZBS-877): Improve and centralize regex patterns for ValidationService

* feat(MPDZBS-877 ZMS-2523): Improve controller typing and add caching for fetchSourceData

* fix(MPDZBS-877 ZMS-2523): fix php docker version to 8.0 from 8.0.2

* clean(MPDZBS-877 ZMS-2523): Cleanup Application

* clean(MPDZBS-877 ZMS-2523): Cleanup Application

* clean(MPDZBS-877 ZMS-2523): Improve cache logger and cache permissions

* fix(MPDZBS-877 ZMS-2520): Implement preconfirmed appointment working

* clean(MPDZBS-877 ZMS-2520): remove errorlogs

* feat(MPDZBS-877 ZMS-2519 ZMS-2521): Implement appointment confirm and cancel controllers and improve request method error handling

* feat(MPDZBS-877): remove unused import statements

* clean(MPDZBS-877): fix typing

* clean(MPDZBS-877): remove unused error message

* clean(MPDZBS-877): Refactor folder structure and move logic from controllers to services

* clean(MPDZBS-877): improve input validation

* fix(MPDZBS-877): Time check with timezone

* feat(MPDZBS-877): Implement LoggerService for logging requests and when caching is set

* clean(MPDZBS-877): Remove logger redundancy

* fix(MPDZBS-877): Add logger response max size 1MB

* clean(MPDZBS-877): improve exceptions and handling in logger middleware

* feat(MPDZBS-877): optimize logger service

* feat(MPDZBS-877): optimize logger service

* clean(MPDZBS-877): improve error body logging

* feat(MPDZBS-877): optimize logger service caching

* clean(MPDZBS-877): add unit test and clean up some stuff

* clean(MPDZBS-877): add missing import

* fix(ZMS-3500) Differentiate between editing and booking a new appointment when selecting the date (#757)

* feat(MPDZBS-877 ZMS-1232): Implement security middleware Cors Csrf Security Headers Rate Limits Request Size Limits and Request Sanitation

* feat(MPDZBS-877 ZMS-1232): Refactor contoller tests and fix cors test

* feat(MPDZBS-877 ZMS-1232): improve middleware and fix race conditions in rate limiting

* clean(MPDZBS-877 ZMS-1232): small improvements to middelware and test assertions

* clean(MPDZBS-877 ZMS-1232): reduce excessive logging

* clean(MPDZBS-877 ZMS-1232): fix race Condition LoggerService

* chore(deps): update dependency seld/jsonlint to v1.11.0 (#754)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency sass to v1.83.1 (#760)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* docs(MPDZBS-877): Add README.md

* docs(MPDZBS-877): Add README.md

* docs(MPDZBS-877): Update README.md

* docs(MPDZBS-877): Update README.md

* docs(MPDZBS-877): Update README.md

* fix(MPDZBS-877): unit test

* chore(deps): update dependency core-js to v3.40.0 (#761)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* docs(MPDZBS-877): Update README.md

* docs(MPDZBS-877): Update README.md

* Update README.md

* clean(MPDZBS-877): Centralize environment variables

* fix(MPDZBS-877): CORS unit tests

* clean(MPDZBS-877): centralize zmsapi exception handling and write more tests

* clean(MPDZBS-877): remove error log

* feat(MPDZBS-877): add unit test

* feat(MPDZBS-877): add MapperServiceTest

* feat(MPDZBS-877): add LoggerServiceTest ExceptionServiceTest ValidationServiceTest

* feat(MPDZBS-877): add ZmsApiFacadeServiceTest

* feat(MPDZBS-877): add ZmsApiClientServiceTest

* feat(MPDZBS-877): add AppointmentByIdServiceTest

* feat(MPDZBS-877): add AppointmentByIdServiceTest

* feat(MPDZBS-877): add AppointmentCancelServiceTest

* feat(MPDZBS-877): add AppointmentConfirmServiceTest

* feat(MPDZBS-877): add Appointment tests

* feat(MPDZBS-877): add AppointmentUpdateServiceTest

* feat(MPDZBS-877): add AvailableAppointmentsListServiceTest and AvailableDaysListServiceTest

* feat(MPDZBS-877): add Service tests

* feat(MPDZBS-877): add captcha service and application tests

* feat(MPDZBS-877): remove unneeded test

* feat(MPDZBS-877): Add LanguageMiddleware and i18n support

* feat(MPDZBS-877): Add LanguageMiddlewareTest

* feat(ZMS-3212) Notfall für Tresen deaktiveren

* feat(MPDZBS-877): clean up language error messages

* feat(MPDZBS-877): disable csrf for now

* fix(MPDZBS-877): fix ip client helper

* fix(MPDZBS-877): only log error messages in english

* feat(MPDZBS-877): disable csrf for now

* fix(MPDZBS-877): routing methods post

* fix(MPDZBS-877): routing methods get

* fix(MPDZBS-877): customTextfield save on appointment update

* fix(MPDZBS-877): customTextfield unit test

* feat(ZMS-3449): map more data

* feat(ZMS-3449): fix mapping

* feat(MPDZBS-877): Add showAlternativeLocations to offices endpoints

* Revert "feat(MPDZBS-877): Add showAlternativeLocations to offices endpoints"

This reverts commit 63fe1a0.

* feat(MPDZBS-877 ZMS-1232 ZMS-2509 ZMS-2510 ZMS-2511 ZMS-2512 ZMS-2513 ZMS-2514 ZMS-2515 ZMS-2516 ZMS-2517 ZMS-2518 ZMS-2519 ZMS-2520 ZMS-2521 ZMS-2523 ZMS-2993): Zmscitizenapi into next (#769)

* update readmes

* refactor some functions to base controller class

* add zmsapi methods to base controller

* add helper methods to base controller

* refactored into services and controllers

* remove duplicate function definitions

* move helpers from base controller to new utility helper

* add a method

* Feature mpdzbs 887 zmscitizenapi post reserve appointment and refactor (#574)

* endpoint working

* fix unit tests

* one working test for post-reserve

* some clean up

* feat(ZMS-2517): fix up response for the reserve post request

* feat(ZMS-2517): add more unit tests for validations

* feat(ZMS-2517): add more unit tests for validations

* feat(ZMS-2517): Zmscitizenapi Refactor Part 1 of 3 move controllers back to root

* feat(ZMS-2517): Zmscitizenapi Refactor Part 2 of 3 create ZmsApiFacadeService ZmsApiClientService ValidationService MapperService UtilityHelper and delete fragmented services

* feat(ZMS-2517): Zmscitizenapi Refactor Part 3 of 3 clean up validations and unit tests

---------

Co-authored-by: Thomas Fink <thomasafink@Thomass-MacBook-Air.local>

* feat(MPDZBS-877): Readd zmscitizenapi to github workflow

* feat(MPDZBS-877): Readd files lost in github history

* feat(MPDZBS-877): Readd files lost in github history

* feat(MPDZBS-877): Resolve merge conflict in zmsentities

* feat(MPDZBS-877): Readd zmscitizenapi schemas to zmsentities deleted by github commit history

* (feat MPDZBS-877): update local env cli

* Feature mpdzbs 887 zms 2518 zmscitizenapi post update appointment (#587)

* (feat MPDZBS-877) readd citizenapi to  htaccess

* feat(MPDZBS-877 ZMS-2517): Working Appointment update with too many emails exception

* feat(MPDZBS-877 ZMS-2517): Test rendering working for update appointment test

* feat(MPDZBS-877 ZMS-2517): Add 63 validation unit tests for appointment update

* feat(MPDZBS-877 ZMS-2517): Refactor exception appointmentNotFound

* feat(MPDZBS-877 ZMS-2517): Add two new edge case exception tests

* feat(MPDZBS-877 ZMS-2517): Remove error_logs

---------

Co-authored-by: Thomas Fink <thomasafink@Thomass-MacBook-Air.local>

* feat(MPDZBS-877): update .gitignore

* cleanup(MPDZBS-877): Improve security and cleanup code

* fix(MPDZBS-877): fix bin configure

* fix(MPDZBS-877): fix config.example.php

* cleanup(MPDZBS-877): merge next into feature branch

* docs(MPDZBS-877): update docs for zmscitizenapi

* clean(MPDZBS-877): change friendly captcha default endpoint to eu

* clean(MPDZBS-877): change maintenance and captcha enabled to boolean

* clean(MPDZBS-877): improve internal error handling enable middleware

* feat(MPDZBS-877): return 503 for maintenance

* feat(MPDZBS-877): add generic captcha interface

* clean(MPDZBS-877): improve validation for array ids

* feat(MPDZBS-877): improve zmscitizenapi typing

* clean(MPDZBS-877): typing overhaul using zmsentities

* clean(MPDZBS-877): typing overhaul using zmsentities

* clean(MPDZBS-877): improve telephone validation regex

* clean(MPDZBS-877): improve serviceId validation regex

* clean(MPDZBS-877): fix naming issue

* clean(MPDZBS-877): make hardcoded source name dynamic

* clean(MPDZBS-877): clean up more and change citizenapi to utf8

* clean(MPDZBS-877): improve error messaging codes and expand office api with geocoordinates and address

* clean(MPDZBS-877): cleanup syntax and error handling

* clean(MPDZBS-877): cleanup syntax and error handling

* fix(MPDZBS-877): offices and services mapper

* fix(MPDZBS-877): fix reserve appointment validation

* fix(MPDZBS-877): improve some validation for empty arrays

* feat(MPDZBS-877): Improve ThinnedProcess object and cleanup some stuff with naming (#739)

* feat(MPDZB-877): Work on thinnedprocess typing

* feat(MPDZB): Refactor part 1

* feat(MPDZB): Refactor part 1

* feat(MPDZB-877): revert to processId in parameter

* feat(MPDZBS-877): refactor thinned process to object

* feat(MPDZB-877): refactor thinned process and rename controllers

---------

Co-authored-by: Tom Fink <thomasafink@Toms-MacBook-Air.local>
Co-authored-by: DDEV User <nobody@example.com>
Co-authored-by: Thomas Fink <thomasafink@Thomass-MacBook-Air.local>

* feat(MPDZBS-877): zmscitizenapi cleanup (#740)

* feat(MPDZB-877): Work on thinnedprocess typing

* feat(MPDZB): Refactor part 1

* feat(MPDZB): Refactor part 1

* feat(MPDZB-877): revert to processId in parameter

* feat(MPDZBS-877): refactor thinned process to object

* feat(MPDZB-877): refactor thinned process and rename controllers

* feat(MPDZBs-877): clean up more junk

---------

Co-authored-by: Tom Fink <thomasafink@Toms-MacBook-Air.local>
Co-authored-by: DDEV User <nobody@example.com>
Co-authored-by: Thomas Fink <thomasafink@Thomass-MacBook-Air.local>

* feat(MPDZBs-877): clean up more stuff validation improvement

* Update zmscitizenapi/src/Zmscitizenapi/Captcha.php

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* feat(MPDZBs-877): clean up captcha add more tests

* feat(MPDZBS-877): Refactor Controllers and improve move typing building models

* feat(MPDZBS-877): Refactor Utilities and Helpers

* Update zmscitizenapi/src/Zmscitizenapi/Services/MapperService.php

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* feat(MPDZBS-877): Fix bug

* feat(MPDZBS-877): rename scope models in zmscitizenapi

* feat(MPDZBS-877): cleanup service model

* feat(MPDZBS-877): Improve ThinnedProcess and ThinnedScope models

* fix(MPDZBS-877): swagger docs

* fix(MPDZBS-877): swagger docs

* fix(MPDZBS-877): set up models for Office Service and Captcha

* fix(MPDZBS-877): Improve captcha typing

* Update zmscitizenapi/src/Zmscitizenapi/Models/Captcha/AltchaCaptcha.php

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix(MPDZBS-877): Improve captcha typing cleanup

* fix(MPDZBS-877): Improve captcha typing cleanup

* fix(MPDZBS-877): remove status from visual response

* fix(MPDZBS-877): Improve typing for Office Service and ThinnedScope

* fix(MPDZBS-877): Improve typing for Office Service Relations

* fix(MPDZBS-877): Improve typing for ThinnedProvider

* fix(MPDZBS-877): Refactor model lists to collections

* fix(MPDZBS-877): Improve typing for Combinable

* fix(MPDZBS-877): Cleanup AltchaCaptcha class

* fix(MPDZBS-877): Improve parameters for getAvailableAppointments

* fix(MPDZBS-877): Improve typing for AvailableDays and AvailableAppointments

* fix(MPDZBS-877): Cleanup schemas

* fix(MPDZBS-877): Cleanup schema mismatch

* fix(MPDZBS-877): Optimize next loops and schema typing

* fix(MPDZBS-877): Improve schema

* fix(MPDZBS-877): Improve schema

* fix(MPDZBS-877): Improve schema and error catching

* fix(MPDZBS-877): Improve api fetching safety

* fix(MPDZBS-877): Introduce strict typing for files with logic

* fix(MPDZBS-877): Introduce schema validation into the models

* fix(MPDZBS-877): Centralize validation, set default language to german, improve exception handling

* fix(MPDZBS-877): authKeyMissMatch error exception

* fix(MPDZBS-877): cleanup some code

* fix(MPDZBS-877): cleanup collection models

* Delete zmscitizenapi/templates/.keep

* Revert "Delete zmscitizenapi/templates/.keep"

This reverts commit 7725d44.

* clean(MPDZBS-877): remove comments

* fix(MPDZBS-877): errorCode fix

* fix(MPDZBS-877): validation input date bug and add unittest plus authKeyMismatch typo and add unittest

* clean(MPDZBS-877): remove unused vars

* feat(MPDZBS-877): Improve zmsapi exception handling

* feat(MPDZBS-877): Improve contact mapping and provider mapping

* Improve exception handling

* feat(MPDZBS-877): Refactor office model

* feat(MPDZBS-877): fix ProcessFreeSlots typing

* clean(MPDZBS-877): refactor and improve contoller legibility

* fix(MPDZBS-877): improve post request validation dont get request body on null fix

* clean(MPDZBS-877): improve OfficesByServiceList controller

* clean(MPDZBS-877): correct not yet implemented controllers

* clean(MPDZBS-877): Add null checks for requests to zmsapi

* clean(MPDZBS-877): Improve and centralize regex patterns for ValidationService

* feat(MPDZBS-877 ZMS-2523): Improve controller typing and add caching for fetchSourceData

* fix(MPDZBS-877 ZMS-2523): fix php docker version to 8.0 from 8.0.2

* clean(MPDZBS-877 ZMS-2523): Cleanup Application

* clean(MPDZBS-877 ZMS-2523): Cleanup Application

* clean(MPDZBS-877 ZMS-2523): Improve cache logger and cache permissions

* fix(MPDZBS-877 ZMS-2520): Implement preconfirmed appointment working

* clean(MPDZBS-877 ZMS-2520): remove errorlogs

* feat(MPDZBS-877 ZMS-2519 ZMS-2521): Implement appointment confirm and cancel controllers and improve request method error handling

* feat(MPDZBS-877): remove unused import statements

* clean(MPDZBS-877): fix typing

* clean(MPDZBS-877): remove unused error message

* clean(MPDZBS-877): Refactor folder structure and move logic from controllers to services

* clean(MPDZBS-877): improve input validation

* fix(MPDZBS-877): Time check with timezone

* feat(MPDZBS-877): Implement LoggerService for logging requests and when caching is set

* clean(MPDZBS-877): Remove logger redundancy

* fix(MPDZBS-877): Add logger response max size 1MB

* clean(MPDZBS-877): improve exceptions and handling in logger middleware

* feat(MPDZBS-877): optimize logger service

* feat(MPDZBS-877): optimize logger service

* clean(MPDZBS-877): improve error body logging

* feat(MPDZBS-877): optimize logger service caching

* clean(MPDZBS-877): add unit test and clean up some stuff

* clean(MPDZBS-877): add missing import

* feat(MPDZBS-877 ZMS-1232): Implement security middleware Cors Csrf Security Headers Rate Limits Request Size Limits and Request Sanitation

* feat(MPDZBS-877 ZMS-1232): Refactor contoller tests and fix cors test

* feat(MPDZBS-877 ZMS-1232): improve middleware and fix race conditions in rate limiting

* clean(MPDZBS-877 ZMS-1232): small improvements to middelware and test assertions

* clean(MPDZBS-877 ZMS-1232): reduce excessive logging

* clean(MPDZBS-877 ZMS-1232): fix race Condition LoggerService

* docs(MPDZBS-877): Add README.md

* docs(MPDZBS-877): Add README.md

* docs(MPDZBS-877): Update README.md

* docs(MPDZBS-877): Update README.md

* docs(MPDZBS-877): Update README.md

* fix(MPDZBS-877): unit test

* docs(MPDZBS-877): Update README.md

* docs(MPDZBS-877): Update README.md

* Update README.md

* clean(MPDZBS-877): Centralize environment variables

* fix(MPDZBS-877): CORS unit tests

* clean(MPDZBS-877): centralize zmsapi exception handling and write more tests

* clean(MPDZBS-877): remove error log

* feat(MPDZBS-877): add unit test

* feat(MPDZBS-877): add MapperServiceTest

* feat(MPDZBS-877): add LoggerServiceTest ExceptionServiceTest ValidationServiceTest

* feat(MPDZBS-877): add ZmsApiFacadeServiceTest

* feat(MPDZBS-877): add ZmsApiClientServiceTest

* feat(MPDZBS-877): add AppointmentByIdServiceTest

* feat(MPDZBS-877): add AppointmentByIdServiceTest

* feat(MPDZBS-877): add AppointmentCancelServiceTest

* feat(MPDZBS-877): add AppointmentConfirmServiceTest

* feat(MPDZBS-877): add Appointment tests

* feat(MPDZBS-877): add AppointmentUpdateServiceTest

* feat(MPDZBS-877): add AvailableAppointmentsListServiceTest and AvailableDaysListServiceTest

* feat(MPDZBS-877): add Service tests

* feat(MPDZBS-877): add captcha service and application tests

* feat(MPDZBS-877): remove unneeded test

* feat(MPDZBS-877): Add LanguageMiddleware and i18n support

* feat(MPDZBS-877): Add LanguageMiddlewareTest

* feat(MPDZBS-877): clean up language error messages

* feat(MPDZBS-877): disable csrf for now

* fix(MPDZBS-877): fix ip client helper

* fix(MPDZBS-877): only log error messages in english

* feat(MPDZBS-877): disable csrf for now

* fix(MPDZBS-877): routing methods post

* fix(MPDZBS-877): routing methods get

* fix(MPDZBS-877): customTextfield save on appointment update

* fix(MPDZBS-877): customTextfield unit test

* feat(MPDZBS-877): Add showAlternativeLocations to offices endpoints

* Revert "feat(MPDZBS-877): Add showAlternativeLocations to offices endpoints"

This reverts commit 63fe1a0.

---------

Co-authored-by: Thomas Fink <thomasafink@Thomass-MacBook-Air.local>
Co-authored-by: Tom Fink <thomasafink@Toms-MacBook-Air.local>
Co-authored-by: Thomas Fink <thomasfink@Thomass-MacBook-Air.local>
Co-authored-by: DDEV User <nobody@example.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Thomas Fink <thomasafink@thomass-air.speedport.ip>

* docs(MPDZBS-877): Update README.md

* feat(ZMS-3449): adjust schema

* feat(ZMS-3449): fix object argument

* feat(ZMS-3449): fix typo

* Update .env.template

* feat(ZMS-3449): fix mapping

* feat(ZMS-3449): fix tests

* feat(ZMS-3449): fix tests

* feat(ZMS-3499) refresh queue even when losing focus

* Update .env.template

* feat(ZMS-3459): return slotTimeInMinutes

* feat(ZMS-3430): add indexes

* feat(ZMS-3430): remove indexes

* writeCanceledSlots-time shortened to 5 minutes

* Temporarily disable cors zmscitizenapi (#795)

* disable cors middleware

* Update CorsMiddlewareTest.php

* Update CorsMiddlewareTest.php

* Update bootstrap.php

* Update SecurityHeadersMiddlewareTest.php

* feat(ZMS-3519) sortierung für queueList

* feat(ZMS-3430): fix test

* feat(ZMS-3503): added logic to end emergency with checkbox

* feat(ZMS-3503): removed console.log and unesscessy function

* feat(ZMS-3503): removed console.log and unesscessy function

* feat(ZMS-3503): removed console.log and unnecessary functions

* fix(deps): update dependency phpoffice/phpspreadsheet to v1.29.8 [security] (#794)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency sass to v1.83.4 (#806)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* feat(ZMS-3507): redirect without appointment (#775)

* fix(deps): update dependency phpoffice/phpspreadsheet to v1.29.9 [security] (#814)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* feat(ZMS-3503): added explanation to the function

* feat(ZMS-3499) Tabelle für die Warteschlange wird aktualisiert auch bei Mouse-Hovering

* feat(ZMS-3460): create endpoint for free appointments grouped by office (#797)

* feat(ZMS-3460): create endpoint for free appointments grouped by office

* feat(ZMS-3460): fix test

* feat(ZMS-3460): fix tests

* feat(ZMS-3460): fix tests

* feat(ZMS-3460): fix tests

* feat(ZMS-3460): fix tests

* feat(ZMS-3460): fix tests

* feat(ZMS-3460): fix tests

* feat(ZMS-3460): fix tests

* feat(ZMS-3460): fix tests

* feat(ZMS-3460): fix tests

* feat(ZMS-3460): fix route

* feat(ZMS-3460): refactoring

* feat(ZMS-3460): show provider, not scope id

* feat(ZMS-3460): fix provider id

---------

Co-authored-by: Thomas Fink <tom@Thomass-MacBook-Air.local>

* fix(ZMS): show alternative locations for offices (#820)

Co-authored-by: Thomas Fink <tom@Thomass-MacBook-Air.local>

* fix(zms): Update .env.template local env

---------

Co-authored-by: Thomas Fink <thomasafink@Thomass-MacBook-Air.local>
Co-authored-by: Tom Fink <thomasafink@Toms-MacBook-Air.local>
Co-authored-by: Thomas Fink <thomasfink@Thomass-MacBook-Air.local>
Co-authored-by: DDEV User <nobody@example.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Igor Manjencic <manjak.igor@gmail.com>
Co-authored-by: matthias1996 <matthias.lorenz@muenchen.de>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Thomas Fink <thomasafink@thomass-air.speedport.ip>
Co-authored-by: MoDaae <90261750+MoDaae@users.noreply.github.com>
Co-authored-by: mohamad.daaeboul <mohamad.daaeboul@muenchen.de>
Co-authored-by: Thomas Fink <tom@Thomass-MacBook-Air.local>
Co-authored-by: Fabian Breitling <83815772+msfb3@users.noreply.github.com>
@coderabbitai coderabbitai bot mentioned this pull request Feb 11, 2025
3 tasks
ThomasAFink added a commit that referenced this pull request Feb 11, 2025
* feat(ZMS-3430): create db indices

* feat(ZMS-3499) refresh queue even when losing focus

* feat(ZMS-3430): add indexes

* feat(ZMS-3430): remove indexes

* feat(ZMS-3519) sortierung für queueList

* feat(ZMS-3430): fix test

* feat(ZMS-3503): added logic to end emergency with checkbox

* feat(ZMS-3503): removed console.log and unesscessy function

* feat(ZMS-3503): removed console.log and unesscessy function

* feat(ZMS-3503): removed console.log and unnecessary functions

* fix(deps): update dependency phpoffice/phpspreadsheet to v1.29.8 [security] (#794)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency sass to v1.83.4 (#806)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* feat(ZMS-3507): redirect without appointment (#775)

* fix(deps): update dependency phpoffice/phpspreadsheet to v1.29.9 [security] (#814)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* feat(ZMS-3503): added explanation to the function

* feat(ZMS-3499) Tabelle für die Warteschlange wird aktualisiert auch bei Mouse-Hovering

* feat(ZMS-3460): create endpoint for free appointments grouped by office (#797)

* feat(ZMS-3460): create endpoint for free appointments grouped by office

* feat(ZMS-3460): fix test

* feat(ZMS-3460): fix tests

* feat(ZMS-3460): fix tests

* feat(ZMS-3460): fix tests

* feat(ZMS-3460): fix tests

* feat(ZMS-3460): fix tests

* feat(ZMS-3460): fix tests

* feat(ZMS-3460): fix tests

* feat(ZMS-3460): fix tests

* feat(ZMS-3460): fix tests

* feat(ZMS-3460): fix route

* feat(ZMS-3460): refactoring

* feat(ZMS-3460): show provider, not scope id

* feat(ZMS-3460): fix provider id

---------

Co-authored-by: Thomas Fink <tom@Thomass-MacBook-Air.local>

* fix(ZMS): show alternative locations for offices (#820)

Co-authored-by: Thomas Fink <tom@Thomass-MacBook-Air.local>

* fix(zms): Update .env.template local env

* Next into test (#823)

* add zmsapi methods to base controller

* add helper methods to base controller

* refactored into services and controllers

* remove duplicate function definitions

* move helpers from base controller to new utility helper

* add a method

* Feature mpdzbs 887 zmscitizenapi post reserve appointment and refactor (#574)

* endpoint working

* fix unit tests

* one working test for post-reserve

* some clean up

* feat(ZMS-2517): fix up response for the reserve post request

* feat(ZMS-2517): add more unit tests for validations

* feat(ZMS-2517): add more unit tests for validations

* feat(ZMS-2517): Zmscitizenapi Refactor Part 1 of 3 move controllers back to root

* feat(ZMS-2517): Zmscitizenapi Refactor Part 2 of 3 create ZmsApiFacadeService ZmsApiClientService ValidationService MapperService UtilityHelper and delete fragmented services

* feat(ZMS-2517): Zmscitizenapi Refactor Part 3 of 3 clean up validations and unit tests

---------

Co-authored-by: Thomas Fink <thomasafink@Thomass-MacBook-Air.local>

* feat(MPDZBS-877): Readd zmscitizenapi to github workflow

* feat(MPDZBS-877): Readd files lost in github history

* feat(MPDZBS-877): Readd files lost in github history

* feat(MPDZBS-877): Resolve merge conflict in zmsentities

* feat(MPDZBS-877): Readd zmscitizenapi schemas to zmsentities deleted by github commit history

* (feat MPDZBS-877): update local env cli

* Feature mpdzbs 887 zms 2518 zmscitizenapi post update appointment (#587)

* (feat MPDZBS-877) readd citizenapi to  htaccess

* feat(MPDZBS-877 ZMS-2517): Working Appointment update with too many emails exception

* feat(MPDZBS-877 ZMS-2517): Test rendering working for update appointment test

* feat(MPDZBS-877 ZMS-2517): Add 63 validation unit tests for appointment update

* feat(MPDZBS-877 ZMS-2517): Refactor exception appointmentNotFound

* feat(MPDZBS-877 ZMS-2517): Add two new edge case exception tests

* feat(MPDZBS-877 ZMS-2517): Remove error_logs

---------

Co-authored-by: Thomas Fink <thomasafink@Thomass-MacBook-Air.local>

* feat(MPDZBS-877): update .gitignore

* cleanup(MPDZBS-877): Improve security and cleanup code

* fix(MPDZBS-877): fix bin configure

* fix(MPDZBS-877): fix config.example.php

* cleanup(MPDZBS-877): merge next into feature branch

* docs(MPDZBS-877): update docs for zmscitizenapi

* clean(MPDZBS-877): change friendly captcha default endpoint to eu

* clean(MPDZBS-877): change maintenance and captcha enabled to boolean

* clean(MPDZBS-877): improve internal error handling enable middleware

* feat(MPDZBS-877): return 503 for maintenance

* feat(MPDZBS-877): add generic captcha interface

* clean(MPDZBS-877): improve validation for array ids

* feat(MPDZBS-877): improve zmscitizenapi typing

* clean(MPDZBS-877): typing overhaul using zmsentities

* clean(MPDZBS-877): typing overhaul using zmsentities

* clean(MPDZBS-877): improve telephone validation regex

* clean(MPDZBS-877): improve serviceId validation regex

* clean(MPDZBS-877): fix naming issue

* clean(MPDZBS-877): make hardcoded source name dynamic

* clean(MPDZBS-877): clean up more and change citizenapi to utf8

* clean(MPDZBS-877): improve error messaging codes and expand office api with geocoordinates and address

* clean(MPDZBS-877): cleanup syntax and error handling

* clean(MPDZBS-877): cleanup syntax and error handling

* fix(MPDZBS-877): offices and services mapper

* fix(MPDZBS-877): fix reserve appointment validation

* fix(MPDZBS-877): improve some validation for empty arrays

* feat(MPDZBS-877): Improve ThinnedProcess object and cleanup some stuff with naming (#739)

* feat(MPDZB-877): Work on thinnedprocess typing

* feat(MPDZB): Refactor part 1

* feat(MPDZB): Refactor part 1

* feat(MPDZB-877): revert to processId in parameter

* feat(MPDZBS-877): refactor thinned process to object

* feat(MPDZB-877): refactor thinned process and rename controllers

---------

Co-authored-by: Tom Fink <thomasafink@Toms-MacBook-Air.local>
Co-authored-by: DDEV User <nobody@example.com>
Co-authored-by: Thomas Fink <thomasafink@Thomass-MacBook-Air.local>

* feat(MPDZBS-877): zmscitizenapi cleanup (#740)

* feat(MPDZB-877): Work on thinnedprocess typing

* feat(MPDZB): Refactor part 1

* feat(MPDZB): Refactor part 1

* feat(MPDZB-877): revert to processId in parameter

* feat(MPDZBS-877): refactor thinned process to object

* feat(MPDZB-877): refactor thinned process and rename controllers

* feat(MPDZBs-877): clean up more junk

---------

Co-authored-by: Tom Fink <thomasafink@Toms-MacBook-Air.local>
Co-authored-by: DDEV User <nobody@example.com>
Co-authored-by: Thomas Fink <thomasafink@Thomass-MacBook-Air.local>

* feat(MPDZBs-877): clean up more stuff validation improvement

* Update zmscitizenapi/src/Zmscitizenapi/Captcha.php

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* feat(MPDZBs-877): clean up captcha add more tests

* feat(ZMS-3430): create db indices

* feat(MPDZBS-877): Refactor Controllers and improve move typing building models

* feat(MPDZBS-877): Refactor Utilities and Helpers

* Update zmscitizenapi/src/Zmscitizenapi/Services/MapperService.php

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* feat(MPDZBS-877): Fix bug

* feat(MPDZBS-877): rename scope models in zmscitizenapi

* feat(MPDZBS-877): cleanup service model

* feat(MPDZBS-877): Improve ThinnedProcess and ThinnedScope models

* fix(MPDZBS-877): swagger docs

* fix(MPDZBS-877): swagger docs

* zms-2871-2874-minus-deletion-by-location-delete-and-orthography-mail-and-notification-buttons

* fix(MPDZBS-877): set up models for Office Service and Captcha

* fix(MPDZBS-877): Improve captcha typing

* Update zmscitizenapi/src/Zmscitizenapi/Models/Captcha/AltchaCaptcha.php

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix(MPDZBS-877): Improve captcha typing cleanup

* fix(MPDZBS-877): Improve captcha typing cleanup

* fix(MPDZBS-877): remove status from visual response

* fix(MPDZBS-877): Improve typing for Office Service and ThinnedScope

* fix(MPDZBS-877): Improve typing for Office Service Relations

* fix(MPDZBS-877): Improve typing for ThinnedProvider

* fix(MPDZBS-877): Refactor model lists to collections

* fix(MPDZBS-877): Improve typing for Combinable

* fix(MPDZBS-877): Cleanup AltchaCaptcha class

* fix(MPDZBS-877): Improve parameters for getAvailableAppointments

* fix(MPDZBS-877): Improve typing for AvailableDays and AvailableAppointments

* fix(MPDZBS-877): Cleanup schemas

* fix(MPDZBS-877): Cleanup schema mismatch

* fix(MPDZBS-877): Optimize next loops and schema typing

* fix(MPDZBS-877): Improve schema

* fix(MPDZBS-877): Improve schema

* fix(MPDZBS-877): Improve schema and error catching

* fix(MPDZBS-877): Improve api fetching safety

* fix(MPDZBS-877): Introduce strict typing for files with logic

* fix(deps): update dependency phpoffice/phpspreadsheet to v1.29.6 (#738)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency squizlabs/php_codesniffer to v3.11.2 (#751)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(MPDZBS-877): Introduce schema validation into the models

* fix(MPDZBS-877): Centralize validation, set default language to german, improve exception handling

* fix(MPDZBS-877): authKeyMissMatch error exception

* fix(MPDZBS-877): cleanup some code

* fix(MPDZBS-877): cleanup collection models

* Delete zmscitizenapi/templates/.keep

* Revert "Delete zmscitizenapi/templates/.keep"

This reverts commit 7725d44.

* clean(MPDZBS-877): remove comments

* fix(MPDZBS-877): errorCode fix

* fix(MPDZBS-877): validation input date bug and add unittest plus authKeyMismatch typo and add unittest

* clean(MPDZBS-877): remove unused vars

* feat(MPDZBS-877): Improve zmsapi exception handling

* feat(MPDZBS-877): Improve contact mapping and provider mapping

* Improve exception handling

* feat(MPDZBS-877): Refactor office model

* feat(MPDZBS-877): fix ProcessFreeSlots typing

* clean(MPDZBS-877): refactor and improve contoller legibility

* fix(MPDZBS-877): improve post request validation dont get request body on null fix

* clean(MPDZBS-877): improve OfficesByServiceList controller

* clean(MPDZBS-877): correct not yet implemented controllers

* chore(deps): update dependency sass to v1.83.0 (#750)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency phpoffice/phpspreadsheet to v1.29.7 (#752)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* clean(MPDZBS-877): Add null checks for requests to zmsapi

* chore(deps): update dependency phpspec/prophecy-phpunit to v2.3.0 (#647)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* clean(MPDZBS-877): Improve and centralize regex patterns for ValidationService

* feat(MPDZBS-877 ZMS-2523): Improve controller typing and add caching for fetchSourceData

* fix(MPDZBS-877 ZMS-2523): fix php docker version to 8.0 from 8.0.2

* clean(MPDZBS-877 ZMS-2523): Cleanup Application

* clean(MPDZBS-877 ZMS-2523): Cleanup Application

* clean(MPDZBS-877 ZMS-2523): Improve cache logger and cache permissions

* fix(MPDZBS-877 ZMS-2520): Implement preconfirmed appointment working

* clean(MPDZBS-877 ZMS-2520): remove errorlogs

* feat(MPDZBS-877 ZMS-2519 ZMS-2521): Implement appointment confirm and cancel controllers and improve request method error handling

* feat(MPDZBS-877): remove unused import statements

* clean(MPDZBS-877): fix typing

* clean(MPDZBS-877): remove unused error message

* clean(MPDZBS-877): Refactor folder structure and move logic from controllers to services

* clean(MPDZBS-877): improve input validation

* fix(MPDZBS-877): Time check with timezone

* feat(MPDZBS-877): Implement LoggerService for logging requests and when caching is set

* clean(MPDZBS-877): Remove logger redundancy

* fix(MPDZBS-877): Add logger response max size 1MB

* clean(MPDZBS-877): improve exceptions and handling in logger middleware

* feat(MPDZBS-877): optimize logger service

* feat(MPDZBS-877): optimize logger service

* clean(MPDZBS-877): improve error body logging

* feat(MPDZBS-877): optimize logger service caching

* clean(MPDZBS-877): add unit test and clean up some stuff

* clean(MPDZBS-877): add missing import

* fix(ZMS-3500) Differentiate between editing and booking a new appointment when selecting the date (#757)

* feat(MPDZBS-877 ZMS-1232): Implement security middleware Cors Csrf Security Headers Rate Limits Request Size Limits and Request Sanitation

* feat(MPDZBS-877 ZMS-1232): Refactor contoller tests and fix cors test

* feat(MPDZBS-877 ZMS-1232): improve middleware and fix race conditions in rate limiting

* clean(MPDZBS-877 ZMS-1232): small improvements to middelware and test assertions

* clean(MPDZBS-877 ZMS-1232): reduce excessive logging

* clean(MPDZBS-877 ZMS-1232): fix race Condition LoggerService

* chore(deps): update dependency seld/jsonlint to v1.11.0 (#754)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency sass to v1.83.1 (#760)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* docs(MPDZBS-877): Add README.md

* docs(MPDZBS-877): Add README.md

* docs(MPDZBS-877): Update README.md

* docs(MPDZBS-877): Update README.md

* docs(MPDZBS-877): Update README.md

* fix(MPDZBS-877): unit test

* chore(deps): update dependency core-js to v3.40.0 (#761)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* docs(MPDZBS-877): Update README.md

* docs(MPDZBS-877): Update README.md

* Update README.md

* clean(MPDZBS-877): Centralize environment variables

* fix(MPDZBS-877): CORS unit tests

* clean(MPDZBS-877): centralize zmsapi exception handling and write more tests

* clean(MPDZBS-877): remove error log

* feat(MPDZBS-877): add unit test

* feat(MPDZBS-877): add MapperServiceTest

* feat(MPDZBS-877): add LoggerServiceTest ExceptionServiceTest ValidationServiceTest

* feat(MPDZBS-877): add ZmsApiFacadeServiceTest

* feat(MPDZBS-877): add ZmsApiClientServiceTest

* feat(MPDZBS-877): add AppointmentByIdServiceTest

* feat(MPDZBS-877): add AppointmentByIdServiceTest

* feat(MPDZBS-877): add AppointmentCancelServiceTest

* feat(MPDZBS-877): add AppointmentConfirmServiceTest

* feat(MPDZBS-877): add Appointment tests

* feat(MPDZBS-877): add AppointmentUpdateServiceTest

* feat(MPDZBS-877): add AvailableAppointmentsListServiceTest and AvailableDaysListServiceTest

* feat(MPDZBS-877): add Service tests

* feat(MPDZBS-877): add captcha service and application tests

* feat(MPDZBS-877): remove unneeded test

* feat(MPDZBS-877): Add LanguageMiddleware and i18n support

* feat(MPDZBS-877): Add LanguageMiddlewareTest

* feat(ZMS-3212) Notfall für Tresen deaktiveren

* feat(MPDZBS-877): clean up language error messages

* feat(MPDZBS-877): disable csrf for now

* fix(MPDZBS-877): fix ip client helper

* fix(MPDZBS-877): only log error messages in english

* feat(MPDZBS-877): disable csrf for now

* fix(MPDZBS-877): routing methods post

* fix(MPDZBS-877): routing methods get

* fix(MPDZBS-877): customTextfield save on appointment update

* fix(MPDZBS-877): customTextfield unit test

* feat(ZMS-3449): map more data

* feat(ZMS-3449): fix mapping

* feat(MPDZBS-877): Add showAlternativeLocations to offices endpoints

* Revert "feat(MPDZBS-877): Add showAlternativeLocations to offices endpoints"

This reverts commit 63fe1a0.

* feat(MPDZBS-877 ZMS-1232 ZMS-2509 ZMS-2510 ZMS-2511 ZMS-2512 ZMS-2513 ZMS-2514 ZMS-2515 ZMS-2516 ZMS-2517 ZMS-2518 ZMS-2519 ZMS-2520 ZMS-2521 ZMS-2523 ZMS-2993): Zmscitizenapi into next (#769)

* update readmes

* refactor some functions to base controller class

* add zmsapi methods to base controller

* add helper methods to base controller

* refactored into services and controllers

* remove duplicate function definitions

* move helpers from base controller to new utility helper

* add a method

* Feature mpdzbs 887 zmscitizenapi post reserve appointment and refactor (#574)

* endpoint working

* fix unit tests

* one working test for post-reserve

* some clean up

* feat(ZMS-2517): fix up response for the reserve post request

* feat(ZMS-2517): add more unit tests for validations

* feat(ZMS-2517): add more unit tests for validations

* feat(ZMS-2517): Zmscitizenapi Refactor Part 1 of 3 move controllers back to root

* feat(ZMS-2517): Zmscitizenapi Refactor Part 2 of 3 create ZmsApiFacadeService ZmsApiClientService ValidationService MapperService UtilityHelper and delete fragmented services

* feat(ZMS-2517): Zmscitizenapi Refactor Part 3 of 3 clean up validations and unit tests

---------

Co-authored-by: Thomas Fink <thomasafink@Thomass-MacBook-Air.local>

* feat(MPDZBS-877): Readd zmscitizenapi to github workflow

* feat(MPDZBS-877): Readd files lost in github history

* feat(MPDZBS-877): Readd files lost in github history

* feat(MPDZBS-877): Resolve merge conflict in zmsentities

* feat(MPDZBS-877): Readd zmscitizenapi schemas to zmsentities deleted by github commit history

* (feat MPDZBS-877): update local env cli

* Feature mpdzbs 887 zms 2518 zmscitizenapi post update appointment (#587)

* (feat MPDZBS-877) readd citizenapi to  htaccess

* feat(MPDZBS-877 ZMS-2517): Working Appointment update with too many emails exception

* feat(MPDZBS-877 ZMS-2517): Test rendering working for update appointment test

* feat(MPDZBS-877 ZMS-2517): Add 63 validation unit tests for appointment update

* feat(MPDZBS-877 ZMS-2517): Refactor exception appointmentNotFound

* feat(MPDZBS-877 ZMS-2517): Add two new edge case exception tests

* feat(MPDZBS-877 ZMS-2517): Remove error_logs

---------

Co-authored-by: Thomas Fink <thomasafink@Thomass-MacBook-Air.local>

* feat(MPDZBS-877): update .gitignore

* cleanup(MPDZBS-877): Improve security and cleanup code

* fix(MPDZBS-877): fix bin configure

* fix(MPDZBS-877): fix config.example.php

* cleanup(MPDZBS-877): merge next into feature branch

* docs(MPDZBS-877): update docs for zmscitizenapi

* clean(MPDZBS-877): change friendly captcha default endpoint to eu

* clean(MPDZBS-877): change maintenance and captcha enabled to boolean

* clean(MPDZBS-877): improve internal error handling enable middleware

* feat(MPDZBS-877): return 503 for maintenance

* feat(MPDZBS-877): add generic captcha interface

* clean(MPDZBS-877): improve validation for array ids

* feat(MPDZBS-877): improve zmscitizenapi typing

* clean(MPDZBS-877): typing overhaul using zmsentities

* clean(MPDZBS-877): typing overhaul using zmsentities

* clean(MPDZBS-877): improve telephone validation regex

* clean(MPDZBS-877): improve serviceId validation regex

* clean(MPDZBS-877): fix naming issue

* clean(MPDZBS-877): make hardcoded source name dynamic

* clean(MPDZBS-877): clean up more and change citizenapi to utf8

* clean(MPDZBS-877): improve error messaging codes and expand office api with geocoordinates and address

* clean(MPDZBS-877): cleanup syntax and error handling

* clean(MPDZBS-877): cleanup syntax and error handling

* fix(MPDZBS-877): offices and services mapper

* fix(MPDZBS-877): fix reserve appointment validation

* fix(MPDZBS-877): improve some validation for empty arrays

* feat(MPDZBS-877): Improve ThinnedProcess object and cleanup some stuff with naming (#739)

* feat(MPDZB-877): Work on thinnedprocess typing

* feat(MPDZB): Refactor part 1

* feat(MPDZB): Refactor part 1

* feat(MPDZB-877): revert to processId in parameter

* feat(MPDZBS-877): refactor thinned process to object

* feat(MPDZB-877): refactor thinned process and rename controllers

---------

Co-authored-by: Tom Fink <thomasafink@Toms-MacBook-Air.local>
Co-authored-by: DDEV User <nobody@example.com>
Co-authored-by: Thomas Fink <thomasafink@Thomass-MacBook-Air.local>

* feat(MPDZBS-877): zmscitizenapi cleanup (#740)

* feat(MPDZB-877): Work on thinnedprocess typing

* feat(MPDZB): Refactor part 1

* feat(MPDZB): Refactor part 1

* feat(MPDZB-877): revert to processId in parameter

* feat(MPDZBS-877): refactor thinned process to object

* feat(MPDZB-877): refactor thinned process and rename controllers

* feat(MPDZBs-877): clean up more junk

---------

Co-authored-by: Tom Fink <thomasafink@Toms-MacBook-Air.local>
Co-authored-by: DDEV User <nobody@example.com>
Co-authored-by: Thomas Fink <thomasafink@Thomass-MacBook-Air.local>

* feat(MPDZBs-877): clean up more stuff validation improvement

* Update zmscitizenapi/src/Zmscitizenapi/Captcha.php

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* feat(MPDZBs-877): clean up captcha add more tests

* feat(MPDZBS-877): Refactor Controllers and improve move typing building models

* feat(MPDZBS-877): Refactor Utilities and Helpers

* Update zmscitizenapi/src/Zmscitizenapi/Services/MapperService.php

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* feat(MPDZBS-877): Fix bug

* feat(MPDZBS-877): rename scope models in zmscitizenapi

* feat(MPDZBS-877): cleanup service model

* feat(MPDZBS-877): Improve ThinnedProcess and ThinnedScope models

* fix(MPDZBS-877): swagger docs

* fix(MPDZBS-877): swagger docs

* fix(MPDZBS-877): set up models for Office Service and Captcha

* fix(MPDZBS-877): Improve captcha typing

* Update zmscitizenapi/src/Zmscitizenapi/Models/Captcha/AltchaCaptcha.php

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix(MPDZBS-877): Improve captcha typing cleanup

* fix(MPDZBS-877): Improve captcha typing cleanup

* fix(MPDZBS-877): remove status from visual response

* fix(MPDZBS-877): Improve typing for Office Service and ThinnedScope

* fix(MPDZBS-877): Improve typing for Office Service Relations

* fix(MPDZBS-877): Improve typing for ThinnedProvider

* fix(MPDZBS-877): Refactor model lists to collections

* fix(MPDZBS-877): Improve typing for Combinable

* fix(MPDZBS-877): Cleanup AltchaCaptcha class

* fix(MPDZBS-877): Improve parameters for getAvailableAppointments

* fix(MPDZBS-877): Improve typing for AvailableDays and AvailableAppointments

* fix(MPDZBS-877): Cleanup schemas

* fix(MPDZBS-877): Cleanup schema mismatch

* fix(MPDZBS-877): Optimize next loops and schema typing

* fix(MPDZBS-877): Improve schema

* fix(MPDZBS-877): Improve schema

* fix(MPDZBS-877): Improve schema and error catching

* fix(MPDZBS-877): Improve api fetching safety

* fix(MPDZBS-877): Introduce strict typing for files with logic

* fix(MPDZBS-877): Introduce schema validation into the models

* fix(MPDZBS-877): Centralize validation, set default language to german, improve exception handling

* fix(MPDZBS-877): authKeyMissMatch error exception

* fix(MPDZBS-877): cleanup some code

* fix(MPDZBS-877): cleanup collection models

* Delete zmscitizenapi/templates/.keep

* Revert "Delete zmscitizenapi/templates/.keep"

This reverts commit 7725d44.

* clean(MPDZBS-877): remove comments

* fix(MPDZBS-877): errorCode fix

* fix(MPDZBS-877): validation input date bug and add unittest plus authKeyMismatch typo and add unittest

* clean(MPDZBS-877): remove unused vars

* feat(MPDZBS-877): Improve zmsapi exception handling

* feat(MPDZBS-877): Improve contact mapping and provider mapping

* Improve exception handling

* feat(MPDZBS-877): Refactor office model

* feat(MPDZBS-877): fix ProcessFreeSlots typing

* clean(MPDZBS-877): refactor and improve contoller legibility

* fix(MPDZBS-877): improve post request validation dont get request body on null fix

* clean(MPDZBS-877): improve OfficesByServiceList controller

* clean(MPDZBS-877): correct not yet implemented controllers

* clean(MPDZBS-877): Add null checks for requests to zmsapi

* clean(MPDZBS-877): Improve and centralize regex patterns for ValidationService

* feat(MPDZBS-877 ZMS-2523): Improve controller typing and add caching for fetchSourceData

* fix(MPDZBS-877 ZMS-2523): fix php docker version to 8.0 from 8.0.2

* clean(MPDZBS-877 ZMS-2523): Cleanup Application

* clean(MPDZBS-877 ZMS-2523): Cleanup Application

* clean(MPDZBS-877 ZMS-2523): Improve cache logger and cache permissions

* fix(MPDZBS-877 ZMS-2520): Implement preconfirmed appointment working

* clean(MPDZBS-877 ZMS-2520): remove errorlogs

* feat(MPDZBS-877 ZMS-2519 ZMS-2521): Implement appointment confirm and cancel controllers and improve request method error handling

* feat(MPDZBS-877): remove unused import statements

* clean(MPDZBS-877): fix typing

* clean(MPDZBS-877): remove unused error message

* clean(MPDZBS-877): Refactor folder structure and move logic from controllers to services

* clean(MPDZBS-877): improve input validation

* fix(MPDZBS-877): Time check with timezone

* feat(MPDZBS-877): Implement LoggerService for logging requests and when caching is set

* clean(MPDZBS-877): Remove logger redundancy

* fix(MPDZBS-877): Add logger response max size 1MB

* clean(MPDZBS-877): improve exceptions and handling in logger middleware

* feat(MPDZBS-877): optimize logger service

* feat(MPDZBS-877): optimize logger service

* clean(MPDZBS-877): improve error body logging

* feat(MPDZBS-877): optimize logger service caching

* clean(MPDZBS-877): add unit test and clean up some stuff

* clean(MPDZBS-877): add missing import

* feat(MPDZBS-877 ZMS-1232): Implement security middleware Cors Csrf Security Headers Rate Limits Request Size Limits and Request Sanitation

* feat(MPDZBS-877 ZMS-1232): Refactor contoller tests and fix cors test

* feat(MPDZBS-877 ZMS-1232): improve middleware and fix race conditions in rate limiting

* clean(MPDZBS-877 ZMS-1232): small improvements to middelware and test assertions

* clean(MPDZBS-877 ZMS-1232): reduce excessive logging

* clean(MPDZBS-877 ZMS-1232): fix race Condition LoggerService

* docs(MPDZBS-877): Add README.md

* docs(MPDZBS-877): Add README.md

* docs(MPDZBS-877): Update README.md

* docs(MPDZBS-877): Update README.md

* docs(MPDZBS-877): Update README.md

* fix(MPDZBS-877): unit test

* docs(MPDZBS-877): Update README.md

* docs(MPDZBS-877): Update README.md

* Update README.md

* clean(MPDZBS-877): Centralize environment variables

* fix(MPDZBS-877): CORS unit tests

* clean(MPDZBS-877): centralize zmsapi exception handling and write more tests

* clean(MPDZBS-877): remove error log

* feat(MPDZBS-877): add unit test

* feat(MPDZBS-877): add MapperServiceTest

* feat(MPDZBS-877): add LoggerServiceTest ExceptionServiceTest ValidationServiceTest

* feat(MPDZBS-877): add ZmsApiFacadeServiceTest

* feat(MPDZBS-877): add ZmsApiClientServiceTest

* feat(MPDZBS-877): add AppointmentByIdServiceTest

* feat(MPDZBS-877): add AppointmentByIdServiceTest

* feat(MPDZBS-877): add AppointmentCancelServiceTest

* feat(MPDZBS-877): add AppointmentConfirmServiceTest

* feat(MPDZBS-877): add Appointment tests

* feat(MPDZBS-877): add AppointmentUpdateServiceTest

* feat(MPDZBS-877): add AvailableAppointmentsListServiceTest and AvailableDaysListServiceTest

* feat(MPDZBS-877): add Service tests

* feat(MPDZBS-877): add captcha service and application tests

* feat(MPDZBS-877): remove unneeded test

* feat(MPDZBS-877): Add LanguageMiddleware and i18n support

* feat(MPDZBS-877): Add LanguageMiddlewareTest

* feat(MPDZBS-877): clean up language error messages

* feat(MPDZBS-877): disable csrf for now

* fix(MPDZBS-877): fix ip client helper

* fix(MPDZBS-877): only log error messages in english

* feat(MPDZBS-877): disable csrf for now

* fix(MPDZBS-877): routing methods post

* fix(MPDZBS-877): routing methods get

* fix(MPDZBS-877): customTextfield save on appointment update

* fix(MPDZBS-877): customTextfield unit test

* feat(MPDZBS-877): Add showAlternativeLocations to offices endpoints

* Revert "feat(MPDZBS-877): Add showAlternativeLocations to offices endpoints"

This reverts commit 63fe1a0.

---------

Co-authored-by: Thomas Fink <thomasafink@Thomass-MacBook-Air.local>
Co-authored-by: Tom Fink <thomasafink@Toms-MacBook-Air.local>
Co-authored-by: Thomas Fink <thomasfink@Thomass-MacBook-Air.local>
Co-authored-by: DDEV User <nobody@example.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Thomas Fink <thomasafink@thomass-air.speedport.ip>

* docs(MPDZBS-877): Update README.md

* feat(ZMS-3449): adjust schema

* feat(ZMS-3449): fix object argument

* feat(ZMS-3449): fix typo

* Update .env.template

* feat(ZMS-3449): fix mapping

* feat(ZMS-3449): fix tests

* feat(ZMS-3449): fix tests

* feat(ZMS-3499) refresh queue even when losing focus

* Update .env.template

* feat(ZMS-3459): return slotTimeInMinutes

* feat(ZMS-3430): add indexes

* feat(ZMS-3430): remove indexes

* writeCanceledSlots-time shortened to 5 minutes

* Temporarily disable cors zmscitizenapi (#795)

* disable cors middleware

* Update CorsMiddlewareTest.php

* Update CorsMiddlewareTest.php

* Update bootstrap.php

* Update SecurityHeadersMiddlewareTest.php

* feat(ZMS-3519) sortierung für queueList

* feat(ZMS-3430): fix test

* feat(ZMS-3503): added logic to end emergency with checkbox

* feat(ZMS-3503): removed console.log and unesscessy function

* feat(ZMS-3503): removed console.log and unesscessy function

* feat(ZMS-3503): removed console.log and unnecessary functions

* fix(deps): update dependency phpoffice/phpspreadsheet to v1.29.8 [security] (#794)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency sass to v1.83.4 (#806)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* feat(ZMS-3507): redirect without appointment (#775)

* fix(deps): update dependency phpoffice/phpspreadsheet to v1.29.9 [security] (#814)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* feat(ZMS-3503): added explanation to the function

* feat(ZMS-3499) Tabelle für die Warteschlange wird aktualisiert auch bei Mouse-Hovering

* feat(ZMS-3460): create endpoint for free appointments grouped by office (#797)

* feat(ZMS-3460): create endpoint for free appointments grouped by office

* feat(ZMS-3460): fix test

* feat(ZMS-3460): fix tests

* feat(ZMS-3460): fix tests

* feat(ZMS-3460): fix tests

* feat(ZMS-3460): fix tests

* feat(ZMS-3460): fix tests

* feat(ZMS-3460): fix tests

* feat(ZMS-3460): fix tests

* feat(ZMS-3460): fix tests

* feat(ZMS-3460): fix tests

* feat(ZMS-3460): fix route

* feat(ZMS-3460): refactoring

* feat(ZMS-3460): show provider, not scope id

* feat(ZMS-3460): fix provider id

---------

Co-authored-by: Thomas Fink <tom@Thomass-MacBook-Air.local>

* fix(ZMS): show alternative locations for offices (#820)

Co-authored-by: Thomas Fink <tom@Thomass-MacBook-Air.local>

* fix(zms): Update .env.template local env

---------

Co-authored-by: Thomas Fink <thomasafink@Thomass-MacBook-Air.local>
Co-authored-by: Tom Fink <thomasafink@Toms-MacBook-Air.local>
Co-authored-by: Thomas Fink <thomasfink@Thomass-MacBook-Air.local>
Co-authored-by: DDEV User <nobody@example.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Igor Manjencic <manjak.igor@gmail.com>
Co-authored-by: matthias1996 <matthias.lorenz@muenchen.de>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Thomas Fink <thomasafink@thomass-air.speedport.ip>
Co-authored-by: MoDaae <90261750+MoDaae@users.noreply.github.com>
Co-authored-by: mohamad.daaeboul <mohamad.daaeboul@muenchen.de>
Co-authored-by: Thomas Fink <tom@Thomass-MacBook-Air.local>
Co-authored-by: Fabian Breitling <83815772+msfb3@users.noreply.github.com>

* docs(ZMS): Update README.md add buergeransicht screenshot

* docs(ZMS): Update README.md add logos

* chore(ZMS-3414): reenable php code quality checks github actions (#765)

* feat(ZMS-3414) unit-tests.yaml: phpcs und phpmd werden vor den Unit-Tests ausgeführt für alle Module

phpmd.rules.xml: regeln für phpmd definieren

composer.json: phpmd und phpcs Abhängigkeiten angepasst

* feat(ZMS-3414) README/Dokumentation anpassen

* feat(ZMS-3414) zmsadmin: phpcs-Fehler beheben

* feat(ZMS-3414) phpmd.rules.xml anpassen

* feat(ZMS-3414) zmsapi: phpcs-Fehler beheben

* feat(ZMS-3414) zmscalldisplay: phpcs-Fehler beheben

* feat(ZMS-3414) zmsclient: phpcs-Fehler beheben

* feat(ZMS-3414) zmsdb: passende phpcs version

* feat(ZMS-3414) zmsdb: passende phpcs version

* feat(ZMS-3414) zmsdb: phpcs-Fehler beheben

* feat(ZMS-3414) zmsdldb: phpcs-Fehler beheben

* feat(ZMS-3414) zmsentities: phpcs-Fehler beheben

* feat(ZMS-3414) zmsmessaging: phpcs-Fehler beheben

* feat(ZMS-3414) zmsslim: phpcs-Fehler beheben

* feat(ZMS-3414) zmsstatistic: phpcs-Fehler beheben

* feat(ZMS-3414) zmsticketprinter: phpcs-Fehler beheben

* feat(ZMS-3414) unit-tests.yaml: ignore warnings

* feat(ZMS-3414) unit-tests.yaml: path zum phpmd.rules.xml angepasst

* feat(ZMS-3414) unit-tests.yaml: path zum phpmd.rules.xml angepasst

* feat(ZMS-3414) unit-tests.yaml: path zum phpmd.rules.xml angepasst

* feat(ZMS-3414) phpmd.rules.xml rules anpassungen

* feat(ZMS-3414) code-quality.yaml: seperate Datei für die quality cheks
phpmd.rules.xml: rules hinzugefügt
README.md: anpassung

* feat(ZMS-3414) ignore phpcs warnings

* feat(ZMS-3414) ignore PHPCS and PHPMD errors

* feat(ZMS-3414) PHPMD Fehler als Warnung interpretieren

* feat(ZMS-3414) run unit-tests and build-images even if call-code-quality fails

* feat(ZMS-3414) run build-images Only run if unit tests pass

* feat(ZMS-3414) run build-images Only run if unit tests pass

* feat(ZMS-3414) run build-images Only run if unit tests pass

* feat(ZMS-3414) run build-images Only run if unit tests pass

* feat(ZMS-3414) run build-images Only run if unit tests pass

* feat(ZMS-3414) run build-images Only run if unit tests pass

* feat(ZMS-3414) unit test fehlschlagen lassen

* feat(ZMS-3414) unit test grün laufen lassen

* feat(ZMS-3414) fix /src/Zmsadmin/ScopeAvailabilityDay.php:73    UnusedLocalVariable   Avoid unused local variables such as '$value'.

* feat(ZMS-3414) fix zmsdb/src/Zmsdb/Helper/AnonymizeStatisticDataByCron.php:22  UnusedLocalVariable    Avoid unused local variables such as '$envValue'.

* feat(ZMS-3414) fix /Zmsdb/Mail.php:34                   UnusedFormalParameter  Avoid unused parameters such as '$order'.

* feat(ZMS-3414) fix /Zmsdb/Useraccount.php:292 UnusedLocalVariable Avoid unused local variables such as '$collection'.

* feat(ZMS-3414) fix Zmsdb/Query/Process.php:10       ExcessiveClassLength   The class Process has 1004 lines of code. Current threshold is 1000. Avoid really long classes.

* feat(ZMS-3414) fix /Zmsentities/Collection/Base.php:233            UnusedLocalVariable       Avoid unused local variables such as '$key'

* feat(ZMS-3414) phpmd.rules.xml rules erweitert

* feat(ZMS-3414) remove unused private field

* feat(ZMS-3414) Index.php:26  ExcessiveMethodLength  The method readResponse()

* feat(ZMS-3414) UnusedFormalParameter '$process' cleaning code

* feat(ZMS-3414) adding code checks for citizenapi

* feat(ZMS-3414) adding zmscitizenapi to the workflow

* feat(ZMS-3414) fix PHPCS errors

* feat(ZMS-3414) phpmd Regeln anpassen

* feat(ZMS-3414) phpmd Regeln anpassen

* clean(ZMS-3414): zmsdb formtatting

* clean(ZMS-3414): zmsentities formtatting

* clean(ZMS-3414): zmsmessaging formtatting

* clean(ZMS-3414): zmsmessaging zmsentities formtatting

* clean(ZMS-3414): zmsmessaging zmsentities formtatting

* clean(ZMS-3414): zmsticketprinter readResponse function complexity

* clean(ZMS-3414): zmsticketprinter formatting

* clean(ZMS-3414): run formatting and tests in parallel

* clean(ZMS-3414): add todos for zmscitizenapis and require code formatting complexity passing

* clean(ZMS-3414): zmscitizenapi formatting

* clean(ZMS-3414): add todos for zmscitizenapi and ddev command for running code formatting for all moduls at once to readme

* clean(ZMS-3414): re-add build images

* clean(ZMS-3414): re-add build images

---------

Co-authored-by: Thomas Fink <tom@Thomass-MacBook-Air.local>

* chore(ZMS): Cleanup github workflow and deploy test coverage to github pages (#840)

* chore(ZMS): add code coverage report job

* chore(ZMS): code coverage report job to one file

* chore(ZMS): code coverage report job to one file

* chore(ZMS): code coverage report job to one file

* chore(ZMS): code coverage report job to one file

* chore(ZMS): code coverage report job to one file

* chore(ZMS): code coverage report job to one file

* chore(ZMS): fix running on php 8.0

* chore(ZMS): fix zmsapi zmsdb and zmsclient

* chore(ZMS): fix zmsclient

* chore(ZMS): move the coverage to the regular unit test workflow

* chore(ZMS): fix zmsslim coverage

* chore(ZMS): fix zmsslim coverage

* chore(ZMS): change workflow logic

* chore(ZMS): fix zmsslim coverage

* chore(ZMS): change workflow logic

* chore(ZMS): change workflow logic and fix zmsdb

* chore(ZMS): change workflow logic and fix zmsdb

* chore(ZMS): change workflow logic and fix zmsdb

* chore(ZMS): change workflow logic and fix zmsdb

* clean(ZMS): rename workflow files

* clean(ZMS): fix zmsdb

* clean(ZMS): upload coverage files

* clean(ZMS): fix syntax error

* clean(ZMS): fix setup

* clean(ZMS): fix zmsmessaging

* clean(ZMS): fix zmsmessaging

* clean(ZMS): change workflow

* clean(ZMS): fix combine coverage

* clean(ZMS): fix pending jobs

* clean(ZMS): fix combine coverage

* clean(ZMS): fix pending jobs

* clean(ZMS): fix combine coverage

* clean(ZMS): fix combine coverage

* clean(ZMS): fix combine coverage

* clean(ZMS): deploy combine coverage to pages

* clean(ZMS): depreciated workflow

* clean(ZMS): improve Github pages

* clean(ZMS): improve Github pages seperate it

* clean(ZMS): improve Github pages seperate it

* clean(ZMS): improve Github pages seperate it

* clean(ZMS): improve Github pages seperate it

* clean(ZMS): improve Github pages seperate it

* clean(ZMS): improve github pages index page

* clean(ZMS): improve github pages index page

* clean(ZMS): fix image build

* clean(ZMS): only deploy to github pages on next branch

* clean(ZMS): refactor and split up

* clean(ZMS): only deploy to github pages on next branch

* docs(ZMS): update readme docs

---------

Co-authored-by: Thomas Fink <tom@Thomass-MacBook-Air.local>

* fix(ZMS): add missing test coverage (#841)

* chore(ZMS): add code coverage report job

* chore(ZMS): code coverage report job to one file

* chore(ZMS): code coverage report job to one file

* chore(ZMS): code coverage report job to one file

* chore(ZMS): code coverage report job to one file

* chore(ZMS): code coverage report job to one file

* chore(ZMS): code coverage report job to one file

* chore(ZMS): fix running on php 8.0

* chore(ZMS): fix zmsapi zmsdb and zmsclient

* chore(ZMS): fix zmsclient

* chore(ZMS): move the coverage to the regular unit test workflow

* chore(ZMS): fix zmsslim coverage

* chore(ZMS): fix zmsslim coverage

* chore(ZMS): change workflow logic

* chore(ZMS): fix zmsslim coverage

* chore(ZMS): change workflow logic

* chore(ZMS): change workflow logic and fix zmsdb

* chore(ZMS): change workflow logic and fix zmsdb

* chore(ZMS): change workflow logic and fix zmsdb

* chore(ZMS): change workflow logic and fix zmsdb

* clean(ZMS): rename workflow files

* clean(ZMS): fix zmsdb

* clean(ZMS): upload coverage files

* clean(ZMS): fix syntax error

* clean(ZMS): fix setup

* clean(ZMS): fix zmsmessaging

* clean(ZMS): fix zmsmessaging

* clean(ZMS): change workflow

* clean(ZMS): fix combine coverage

* clean(ZMS): fix pending jobs

* clean(ZMS): fix combine coverage

* clean(ZMS): fix pending jobs

* clean(ZMS): fix combine coverage

* clean(ZMS): fix combine coverage

* clean(ZMS): fix combine coverage

* clean(ZMS): deploy combine coverage to pages

* clean(ZMS): depreciated workflow

* clean(ZMS): improve Github pages

* clean(ZMS): improve Github pages seperate it

* clean(ZMS): improve Github pages seperate it

* clean(ZMS): improve Github pages seperate it

* clean(ZMS): improve Github pages seperate it

* clean(ZMS): improve Github pages seperate it

* clean(ZMS): improve github pages index page

* clean(ZMS): improve github pages index page

* clean(ZMS): fix image build

* clean(ZMS): only deploy to github pages on next branch

* clean(ZMS): refactor and split up

* clean(ZMS): only deploy to github pages on next branch

* docs(ZMS): update readme docs

* fix(ZMS): add missing test coverage

* fix(ZMS): fix zmsdb and zmsclient

* fix(ZMS): fix zmsdb

---------

Co-authored-by: Thomas Fink <tom@Thomass-MacBook-Air.local>

* fix(deps): update dependency giggsey/libphonenumber-for-php to v8.13.54 (#838)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency helmich/phpunit-psr7-assert to v4.4.1 (#621)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(ZMS): fix zmsdldb coverage report

* fix(ZMS): fix zmsdldb coverage report

* fix(ZMS): fix zmsdldb coverage report

* chore(deps): update dependency phpspec/prophecy-phpunit to v2.3.0 (#843)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency postcss to v8.5.2 (#844)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency sass to v1.84.0 (#845)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency firebase/php-jwt to v6.11.0 (#846)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update mariadb docker tag to v10.11 (#847)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update parcel monorepo to v2.13.3 (#848)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* clean(ZMS-3429): merge next into feature branch, fix unit test and format code

* clean(ZMS-3429): add todo for complexity

* clean(ZMS-3429): add todo for complexity

---------

Co-authored-by: Igor Manjencic <manjak.igor@gmail.com>
Co-authored-by: mohamad.daaeboul <mohamad.daaeboul@muenchen.de>
Co-authored-by: Fabian Breitling <83815772+msfb3@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: MoDaae <90261750+MoDaae@users.noreply.github.com>
Co-authored-by: Thomas Fink <tom@Thomass-MacBook-Air.local>
Co-authored-by: Thomas Fink <thomasafink@Thomass-MacBook-Air.local>
Co-authored-by: Tom Fink <thomasafink@Toms-MacBook-Air.local>
Co-authored-by: Thomas Fink <thomasfink@Thomass-MacBook-Air.local>
Co-authored-by: DDEV User <nobody@example.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: matthias1996 <matthias.lorenz@muenchen.de>
Co-authored-by: Thomas Fink <thomasafink@thomass-air.speedport.ip>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants