GX-Bug #70250
Von Wilken Haase vor fast 2 Jahren aktualisiert
Leere URL in Paketdienst führt zu Fehlern im Service Wenn unter Shop Einstellungen -> Paketdienste ein Paketdienst ohne URL angelegt wird, führt dies zu Fehlern. Die Reader-/Repository-/Whatever-Klasse darf nicht versuchen das in einen NonEmptyStringType zu stopfen. Fehlern, Beispiel: Uncaught InvalidArgumentException: NonEmptyStringType: Invalid argument value given (expected non-empty string got string): in src/GXEngine/Shared/Types/NonEmptyStringType.inc.php:38 Stack trace: #0 src/GXMainComponents/Services/Core/ParcelService/Entities/ParcelServiceDescription.inc.php(63): NonEmptyStringType->__construct() #1 src/GXMainComponents/Services/Core/ParcelService/Repositories/ParcelServiceMapper.inc.php(184): ParcelServiceDescription::create() #2 src/GXMainComponents/Services/Core/ParcelService/Repositories/ParcelServiceMapper.inc.php(160): ParcelServiceMapper->createParcelService() #3 src/GXMainComponents/Services/Core/ParcelService/Repositories/ParcelServiceMapper.inc.php(51): ParcelServiceMapper->createParcelServiceCollection() Testen: - Shop Einstellungen -> Paketdienste aufrufen - Leeren URL bei einem Paketdienst eintragen - Hermes HSI unter Module -> Modul-Center installieren - HSI-Konfiguration aufrufen - erwartetes Verhalten: hier sollte nun die Modul-Konfiguration (siehe Screenshot) angezeigt werden - tatsächliches Verhalten: Ausgabe der oben genannten Fehlermeldung Der Punkt Shop Einstellungen -> Paketdienste erlaubt das Anlegen von Paketdiensten ohne Angabe einer URL und das ist auch korrekt so, da es hierfür Anwendungsfälle in der Praxis gibt. Der in der Fehlermeldung genannte Service verlangt hier aber eine Eingabe und reagiert mit einer Fehlermeldung, wenn das Feld leer ist. Der Service muss hier daher auch leere Angaben akzeptieren. =================================================================================================== If a parcel service without a URL is created under Shop Settings -> Parcel Services, this leads to error messages in the underlying service. The Reader-/Repository-/Whatever-class may not try to use a NonEmptyStringType here. Example: Uncaught InvalidArgumentException: NonEmptyStringType: Invalid argument value given (expected non-empty string got string): in src/GXEngine/Shared/Types/NonEmptyStringType.inc.php:38 Stack trace: #0 src/GXMainComponents/Services/Core/ParcelService/Entities/ParcelServiceDescription.inc.php(63): NonEmptyStringType->__construct() #1 src/GXMainComponents/Services/Core/ParcelService/Repositories/ParcelServiceMapper.inc.php(184): ParcelServiceDescription::create() #2 src/GXMainComponents/Services/Core/ParcelService/Repositories/ParcelServiceMapper.inc.php(160): ParcelServiceMapper->createParcelService() #3 src/GXMainComponents/Services/Core/ParcelService/Repositories/ParcelServiceMapper.inc.php(51): ParcelServiceMapper->createParcelServiceCollection() Testing: - Go to shop settings -> parcel services - Enter an empty URL for a parcel service - Install Hermes HSI under Modules -> Module Center - Call up HSI configuration - Expected behavior: the module configuration (see screenshot) should now be displayed here - Actual behavior: Output of the above error message The point Shop Settings -> Parcel Services allows the creation of parcel services without specifying a URL and that is correct, as there are use cases for this in practice. The service named in the error message requires an entry here and reacts with an error message if the field is empty. The service must therefore also accept missing information here.