Define contract for creating SOAP clients with WSDLs
FRESH HOT CBS, NOW WITH MORE ENVIRONMENTS!
This PR finishes up the changes needed to support QA and DV environments in the CBS client.
Structural changes
I've organized things in a slightly different way compared to the previous PR. Since there are so many WSDLs, I didn't want to pollute the SoapService
class with a bunch of constants that only apply to individual services. WSDL URLs have been moved into their appropriate SoapXXXService
class. Each service now has constants called CBQA12
and CBDV12
with the appropriate URL for the WSDL*.
For example, the QA Order Header WSDL URL is SoapOrderHeaderService::CBQA12
, and the QA Order Interfacing WSDL URL is SoapOrderInterfacingService::CBQA12
.
*Except for the SoapProductService
class, which defines CBQA12_CREATE
, CBQA12_UPDATE
, etc.
Limitations
This PR still doesn't address External Customer creation (creating a "Family" customer) or 'clean address'. This is simply to keep currently functionality while defining the new API. Because of the API change, this PR also bumps the project version to 6.0.0
.
Original PR
This PR is more of a proposal for a method of allowing the CBS clients to interact with the different CBS environments (QA, DV, PROD, etc.). A sample integration test is provided for the SoapOrderHeaderService
client, which shows the client being created with only a username and password, and then with a username, password, and path to a WSDL.
NOTE: This PR does not change the directory structure of the the project. If we use this method, it would be a good idea to move the WSDLs for each environment into their own folders inside /resources
.
Please review: @ahoffmann @weizhong-wang @lloyd-carter @KJOYNER