Index: development/Nodered/Swagger documenten/MulticalcService.json =================================================================== diff -u --- development/Nodered/Swagger documenten/MulticalcService.json (revision 0) +++ development/Nodered/Swagger documenten/MulticalcService.json (revision 90) @@ -0,0 +1,234 @@ +{ + "openapi": "3.0.3", + "info": { + "title": "Multicalc Service", + "version": "1.0.0" + }, + "paths": { + "/v1/product-info": { + "get": { + "summary": "Syncs the order with the ERP", + "description": "Create or update all products in the order, then syncs with the ERP", + "parameters": [ + { + "name": "CID", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Succesful operation", + "content": { + "application/xml": { + "schema": { + "$ref": "#/components/schemas/GetProductInfoResponse" + } + } + } + } + } + } + }, + "/v1/product-price": { + "post": { + "summary": "Creates or updates a product in the ERP", + "description": "Creates or updates the product with the given CID in the ERP", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetProductPriceRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Succesful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetProductPriceResponse" + } + } + } + } + } + } + }, + "/v1/create-product": { + "post": { + "summary": "Creates or updates a product in the ERP", + "description": "Creates or updates the product with the given CID in the ERP", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateProductRequest" + } + } + } + }, + "responses": { + "201": { + "description": "Succesfully created product", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateProductResponse" + } + } + } + }, + "500": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateProductErrorResponse" + } + } + } + } + } + } + } + }, + "components": { + "schemas": { + "GetProductInfoResponse": { + "type": "object", + "properties": { + "Familie": { + "type": "string", + "example": "L" + }, + "Variant": { + "type": "string", + "example": "M_LBX" + }, + "KenmerkNamen": { + "type": "string", + "example": "Variant/Family/BoxSystemColour" + }, + "KenmerkWaarden": { + "type": "string", + "example": "LBX/Lade/OG-M" + }, + "NietMeeleverenNamen": { + "type": "string", + "example": "DND.CoverCapInner/DND.CoverCapOuter" + }, + "NietMeeleverenWaarden": { + "type": "string", + "example": "true/false" + }, + "Rollen": { + "type": "string" + } + } + }, + "GetProductPriceRequest": { + "type": "object", + "properties": { + "kenmerkNamen": { + "type": "string", + "example": "Variant/Family/BoxSystemColour" + }, + "kenmerkWaarden": { + "type": "string", + "example": "LBX/Lade/OG-M" + }, + "afwijkendeKenmerkNamen": { + "type": "string", + "example": "BoxSystemColour" + }, + "afwijkendeKenmerkWaarden": { + "type": "string", + "example": "SW-M" + }, + "klantId": { + "type": "string" + }, + "model": { + "type": "string" + } + } + }, + "GetProductPriceResponse": { + "type": "object", + "properties": { + "isValid": { + "type": "boolean" + }, + "Prijs": { + "type": "string" + } + } + }, + "CreateProductRequest": { + "type": "object", + "properties": { + "kenmerkNamen": { + "type": "string", + "example": "Variant/Family/BoxSystemColour" + }, + "kenmerkWaarden": { + "type": "string", + "example": "LBX/Lade/OG-M" + }, + "afwijkendeKenmerkNamen": { + "type": "string", + "example": "BoxSystemColour" + }, + "afwijkendeKenmerkWaarden": { + "type": "string", + "example": "SW-M" + }, + "nietMeeleveren": { + "type": "string" + }, + "afwijkendeNietMeeleveren": { + "type": "string" + }, + "klantId": { + "type": "string" + }, + "model": { + "type": "string" + } + } + }, + "CreateProductResponse": { + "type": "object", + "properties": { + "isValid": { + "type": "boolean", + "example": true + }, + "CID": { + "type": "string" + } + } + }, + "CreateProductErrorResponse": { + "type": "object", + "properties": { + "isValid": { + "type": "boolean", + "example": false + }, + "errors": { + "type": "object" + } + } + } + } + } +} \ No newline at end of file Index: development/Nodered/Swagger documenten/ConfiguratieRepository.json =================================================================== diff -u --- development/Nodered/Swagger documenten/ConfiguratieRepository.json (revision 0) +++ development/Nodered/Swagger documenten/ConfiguratieRepository.json (revision 90) @@ -0,0 +1,363 @@ +{ + "openapi":"3.0.0", + "info":{ + "title":"ConfiguratieRepository", + "version":"1.0.0" + }, + "servers":[ + { + "url":"http://docker01-acp.vanhoecke.be:1880/VH-ConfiguratieRepository/" + } + ], + "paths":{ + "/vhConfig/{CID}":{ + "get":{ + "tags":[ + "VhConfig" + ], + "summary":"Find VhConfig by CID", + "description":"Returns a single CID", + "parameters":[ + { + "name":"CID", + "in":"path", + "required":true, + "schema":{ + "type":"string", + "format":"uuid" + } + } + ], + "responses":{ + "200":{ + "description":"Sucessful operation", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/VhConfig" + } + } + } + }, + "400":{ + "description":"Bad request" + }, + "404":{ + "description":"Not found" + }, + "500":{ + "description":"Internal server error" + } + } + }, + "patch":{ + "tags":[ + "VhConfig" + ], + "summary":"Update an existing VhConfig", + "description":"Update an existing VhConfig by CID", + "parameters":[ + { + "name":"CID", + "in":"path", + "description":"CID that needs to be updated", + "required":true, + "schema":{ + "type":"string" + } + } + ], + "requestBody":{ + "required":true, + "content":{ + "application/json":{ + "schema":{ + "type":"object", + "properties":{ + "data":{ + "type":"string" + }, + "VhConfig":{ + "$ref":"#/components/schemas/VhConfig" + } + } + } + } + } + }, + "responses":{ + "200":{ + "description":"Successful operation", + "content":{ + "application/json":{ + "schema":{ + "type":"object", + "properties":{ + "VhConfig":{ + "$ref":"#/components/schemas/VhConfig" + } + } + } + } + } + }, + "400":{ + "description":"Bad request" + }, + "500":{ + "description":"Internal server error" + } + } + }, + "delete":{ + "tags":[ + "VhConfig" + ], + "summary":"Deletes a VhConfig", + "description":"Delete a VhConfig by CID", + "parameters":[ + { + "name":"CID", + "in":"path", + "description":"CID that needs to be deleted", + "required":true, + "schema":{ + "type":"string" + } + } + ], + "responses":{ + "204":{ + "description":"Successful operation" + }, + "400":{ + "description":"Bad request" + }, + "404":{ + "description":"Not found" + }, + "500":{ + "description":"Internal server error" + } + } + } + }, + "/vhConfig/findByCID":{ + "get":{ + "tags":[ + "VhConfig" + ], + "summary":"Find VhConfig by CIDs", + "description":"Multiple CIDs can be provided with comma seperated string. Use the following format: cid1,cid2,cid3", + "operationId":"", + "parameters":[ + { + "name":"CID", + "in":"query", + "description":"CID of the VhConfig", + "required":true, + "schema":{ + "enum":[ + "xxxxxxxx-xxxx-xxxx-xxxx-9bcb6cdfed93" + ], + "type":"string" + } + } + ], + "responses":{ + "200":{ + "description":"Sucessful operation", + "content":{ + "application/json":{ + "schema":{ + "type":"object", + "properties":{ + "Documents":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/VhConfig" + } + }, + "_count":{ + "type":"integer" + } + } + } + } + } + }, + "400":{ + "description":"Bad request" + }, + "500":{ + "description":"Internal server error" + } + } + } + }, + "/vhConfig":{ + "post":{ + "tags":[ + "VhConfig" + ], + "summary":"Add a new VhConfig to the database", + "description":"Add a new VhConfig to the database", + "requestBody":{ + "required":true, + "content":{ + "application/json":{ + "schema":{ + "type":"object", + "properties":{ + "data":{ + "type":"string" + }, + "VhConfig":{ + "$ref":"#/components/schemas/VhConfig" + } + } + } + } + } + }, + "responses":{ + "200":{ + "description":"Successful operation", + "content":{ + "application/json":{ + "schema":{ + "type":"object", + "properties":{ + "VhConfig":{ + "$ref":"#/components/schemas/VhConfig" + } + } + } + } + } + }, + "400":{ + "description":"Bad request" + }, + "500":{ + "description":"Internal server error" + } + } + } + }, + "/healthCheck":{ + "get":{ + "tags":[ + "Health" + ], + "summary":"Basic health check", + "responses":{ + "200":{ + "description":"Healthy" + }, + "500":{ + "description":"Unhealthy" + } + } + } + }, + "/integrationCheck":{ + "get":{ + "tags":[ + "Health" + ], + "summary":"Basic integration check", + "responses":{ + "200":{ + "description":"Healthy" + }, + "500":{ + "description":"Unhealthy" + } + } + } + } + }, + "components":{ + "schemas":{ + "VhConfig":{ + "type":"object", + "properties":{ + "isValid":{ + "type":"boolean" + }, + "Model":{ + "type":"string" + }, + "Context":{ + "type":"object", + "additionalProperties":true + }, + "Kenmerken":{ + "type":"object", + "additionalProperties":true + }, + "Lijn":{ + "type":"object", + "properties":{ + "Aantal":{ + "type":"integer" + }, + "Referentie":{ + "type":"string" + } + }, + "required":[ + "Aantal", + "Referentie" + ] + }, + "MaatwerkDetails":{ + "type":"object", + "properties":{ + "Halffabrikaten":{ + "type":"object", + "additionalProperties":true + }, + "Kosten":{ + "type":"object", + "additionalProperties":true + }, + "VerwijderdeHalffabItems":{ + "type":"array", + "items":{ + "type":"string" + } + } + } + }, + "BerekendeKenmerken":{ + "type":"object", + "properties":{ + "AfbeeldingCode":{ + "type":"string" + }, + "ItemId":{ + "type":"string" + }, + "Korttekst":{ + "type":"string" + }, + "Langtekst":{ + "type":"object", + "additionalProperties":true + } + } + }, + "WinkelkarInfo":{ + "type":"object", + "additionalProperties":true + }, + "id":{ + "type":"string" + } + } + } + } + } +} \ No newline at end of file Index: development/Nodered/Swagger documenten/ConfiguratorService.json =================================================================== diff -u --- development/Nodered/Swagger documenten/ConfiguratorService.json (revision 0) +++ development/Nodered/Swagger documenten/ConfiguratorService.json (revision 90) @@ -0,0 +1,636 @@ +{ + "openapi": "3.0.0", + "info": { + "title": "ConfiguratorService", + "version": "1.0.0" + }, + "servers": [ + { + "url": "http://docker01-tst.vanhoecke.be:1881" + } + ], + "paths": { + "/startNewConfiguration": { + "post": { + "tags": [ + "Configuration" + ], + "summary": "Starts a new configuration", + "description": "Starts a new configuration", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "model": { + "type": "string" + }, + "salesContext": { + "$ref": "#/components/schemas/salesContext" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "sessionId": { + "type": "string" + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/startConfigurationFromCharacteristics": { + "post": { + "tags": [ + "Configuration" + ], + "summary": "Starts a new configuration with the given characteristics", + "description": "Starts a new configuration with the given characteristics", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "model": { + "type": "string" + }, + "characteristics": { + "$ref": "#/components/schemas/characteristics" + }, + "salesContext": { + "$ref": "#/components/schemas/salesContext" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "sessionId": { + "type": "string" + }, + "isValid": { + "type": "boolean" + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/startConfigurationFromCID": { + "post": { + "tags": [ + "Configuration" + ], + "summary": "Starts a new configuration from an existing CID", + "description": "Starts a new configuration from an existing CID. All characteristics of the given CID will be applied to the new configuration.", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "CID": { + "type": "string" + }, + "salesContext": { + "$ref": "#/components/schemas/salesContext" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "sessionId": { + "type": "string" + }, + "isValid": { + "type": "boolean" + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/nextConfigurationFromCID": { + "post": { + "tags": [ + "Configuration" + ], + "summary": "Starts the next configuration from the previous CID", + "description": "Starts the next configuration from the previous CID. Only some characteristics of the previous CID will be applied to the new configuration.", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "CID": { + "type": "string" + }, + "salesContext": { + "$ref": "#/components/schemas/salesContext" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "sessionId": { + "type": "string" + }, + "isValid": { + "type": "boolean" + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/startConfigurationFromEconCharacteristics": { + "post": { + "tags": [ + "Configuration" + ], + "summary": "Starts a new configuration from ECON characteristics", + "description": "Starts a new configuration from ECON characteristics", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "model": { + "type": "string" + }, + "characteristics": { + "type": "object" + }, + "salesContext": { + "$ref": "#/components/schemas/salesContext" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "sessionId": { + "type": "string" + }, + "isValid": { + "type": "boolean" + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/finishConfiguration": { + "post": { + "tags": [ + "Configuration" + ], + "summary": "Finishes the configuration", + "description": "Finishes the configuration, validating it and generating a summary.", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "sessionId": { + "type": "string" + }, + "returnObjects": { + "$ref": "#/components/schemas/returnObjects" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "CID": { + "type": "string" + }, + "CPConfig": { + "$ref": "#/components/schemas/CPConfig" + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/finishBulkConfiguration": { + "post": { + "tags": [ + "Configuration" + ], + "summary": "Finishes the configuration", + "description": "Finishes the configuration, validating it and generating a summary.", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "bulkSessionId": { + "type": "string" + }, + "bulkEditCIDs": { + "type": "string" + }, + "salesContext": { + "$ref": "#/components/schemas/salesContext" + }, + "returnObjects": { + "$ref": "#/components/schemas/returnObjects" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Configurations": { + "type": "object" + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/storeDefaultConfiguration": { + "post": { + "tags": [ + "Utility" + ], + "summary": "Stores the current configuration as a default for the customer", + "description": "Stores the current configuration as a default for the customer", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "sessionId": { + "type": "string" + }, + "salesContext": { + "$ref": "#/components/schemas/salesContext" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Successful operation" + }, + "400": { + "description": "Bad request" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/generateFileCode": { + "post": { + "tags": [ + "Utility" + ], + "summary": "Generates a new file code", + "description": "Generates a new file code.", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Model": { + "type": "string" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "DossierCode": { + "type": "string" + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/healthCheck": { + "get": { + "tags": [ + "Health" + ], + "summary": "Basic health check", + "responses": { + "200": { + "description": "Healthy" + }, + "500": { + "description": "Unhealthy" + } + } + } + }, + "/integrationCheck": { + "get": { + "tags": [ + "Health" + ], + "summary": "Integration check", + "responses": { + "200": { + "description": "Healthy" + }, + "500": { + "description": "Unhealthy" + } + } + } + } + }, + "components": { + "schemas": { + "characteristics": { + "type": "object" + }, + "salesContext": { + "type": "object" + }, + "returnObjects": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "ShoppingCartInfo", + "Context", + "Characteristics", + "Line", + "Model", + "CalculatedCharacteristics", + "ConfiguredProductDetails" + ] + }, + "CPConfig": { + "type": "object", + "properties": { + "IsValid": { + "type": "boolean" + }, + "Model": { + "type": "string" + }, + "Context": { + "type": "object", + "additionalProperties": true + }, + "Characteristics": { + "type": "object", + "additionalProperties": true + }, + "Line": { + "type": "object", + "properties": { + "Quantity": { + "type": "integer" + }, + "Reference": { + "type": "string" + } + }, + "required": [ + "Quantity", + "Reference" + ] + }, + "ConfiguredProductDetails": { + "type": "object", + "properties": { + "SemiFinishedProducts": { + "type": "object" + }, + "Costs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Group": { + "type": "string" + }, + "Items": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Name": { + "type": "string" + }, + "Quantity": { + "type": "string" + }, + "ProductId": { + "type": "string" + }, + "DescriptionShort": { + "type": "string" + } + } + } + } + } + } + }, + "RemovedSemiFinishedProducts": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "CalculatedCharacteristics": { + "type": "object", + "properties": { + "ImageCode": { + "type": "string" + }, + "GenericProductId": { + "type": "string" + }, + "DescriptionShort": { + "type": "string" + }, + "DescriptionLong": { + "type": "object" + }, + "InternalWidth": { + "type": "number" + } + } + }, + "ShoppingCartInfo": { + "type": "object", + "additionalProperties": true + } + } + } + } + } +} \ No newline at end of file Index: development/Nodered/Swagger documenten/PartnerIntegratiePlatform.json =================================================================== diff -u --- development/Nodered/Swagger documenten/PartnerIntegratiePlatform.json (revision 0) +++ development/Nodered/Swagger documenten/PartnerIntegratiePlatform.json (revision 90) @@ -0,0 +1,344 @@ +{ + "openapi": "3.0.3", + "info": { + "title": "PartnerIntegratiePlatform", + "version": "1.0.0" + }, + "paths": { + "/cart": { + "post": { + "summary": "Create a shopping cart in the ERP", + "tags": [ + "PIP" + ], + "description": "Create a shopping cart in the ERP", + "requestBody": { + "required": true, + "content": { + "application/xml": { + "schema": { + "$ref": "#/components/schemas/CreateCartRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Cart created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + } + } + }, + "/quotation": { + "post": { + "summary": "Create quotation", + "tags": [ + "PIP" + ], + "description": "Create quotation", + "requestBody": { + "required": true, + "content": { + "application/xml": { + "schema": { + "$ref": "#/components/schemas/CreateCartRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Cart created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateQuotationResponse" + } + } + } + } + } + } + }, + "/healthCheck": { + "get": { + "summary": "Health check", + "tags": [ + "Health checks" + ], + "responses": { + "200": { + "description": "Healthy", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Status": { + "type": "string", + "example": "OK" + } + } + } + } + } + } + } + } + }, + "/integrationCheck": { + "get": { + "summary": "Health check", + "tags": [ + "Health checks" + ], + "responses": { + "200": { + "description": "Healthy", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Status": { + "type": "string", + "example": "OK" + } + } + } + } + } + }, + "500": { + "description": "Not healthy", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "gefaaldeServices": { + "type": "array", + "items": { + "type": "object", + "properties": { + "naam": { + "type": "string" + }, + "statusCode": { + "type": "integer", + "example": 500 + }, + "payload": { + "type": "object" + } + }, + "example": [ + { + "naam": "Check AX", + "statusCode": 500, + "payload": null + }, + { + "naam": "Check ConfiguratorService", + "statusCode": 404, + "payload": null + } + ] + } + } + } + } + } + } + } + } + } + } + }, + "components": { + "schemas": { + "CreateCartRequest": { + "type": "object", + "xml": { + "name": "Order" + }, + "properties": { + "ID": { + "type": "integer", + "example": 12345 + }, + "IssueDate": { + "type": "string" + }, + "BuyerCustomerParty": { + "$ref": "#/components/schemas/BuyerCustomerParty" + }, + "Delivery": { + "type": "object", + "properties": { + "DeliveryAddress": { + "type": "object", + "properties": { + "MarkAttention": { + "type": "string" + } + } + } + } + }, + "OrderLine": { + "type": "array", + "items": { + "type": "object", + "properties": { + "LineItem": { + "type": "object", + "properties": { + "ID": { + "type": "integer", + "example": 1 + }, + "Quantity": { + "type": "integer", + "example": 1 + }, + "Item": { + "type": "object", + "properties": { + "CommodityClassification": { + "type": "object", + "properties": { + "NatureCode": { + "type": "string", + "example": "LBX" + } + } + }, + "AdditionalItemProperty": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + } + } + } + } + } + } + } + } + }, + "example": [ + { + "LineItem": { + "ID": 1, + "Quantity": 1, + "Item": { + "CommodityClassification": { + "NatureCode": "LBX" + }, + "AdditionalItemProperty": [ + { + "Name": "Application", + "Value": "L" + }, + { + "Name": "CabinetWidth", + "Value": "456" + } + ] + } + } + }, + { + "LineItem": { + "ID": 2, + "Quantity": 1, + "Item": { + "CommodityClassification": { + "NatureCode": "LBX" + }, + "AdditionalItemProperty": [ + { + "Name": "Application", + "Value": "L" + }, + { + "Name": "CabinetWidth", + "Value": "678" + } + ] + } + } + } + ] + } + } + }, + "CreateQuotationResponse": { + "type": "object", + "properties": { + "PriceLines": { + "type": "array", + "items": { + "type": "object", + "properties": { + "price": { + "type": "string" + }, + "lineNum": { + "type": "string" + }, + "errorTxt": { + "type": "string" + } + } + }, + "example": [ + { + "price": "44.44", + "lineNum": "1", + "errorTxt": "" + }, + { + "price": "55.55", + "lineNum": "2", + "errorTxt": "" + } + ] + } + } + }, + "BuyerCustomerParty": { + "type": "object", + "properties": { + "Party": { + "type": "object", + "properties": { + "PartyName": { + "type": "object", + "properties": { + "Name": { + "type": "string" + } + } + } + } + } + } + } + } + } +} \ No newline at end of file Index: development/Nodered/Swagger documenten/ERPService.json =================================================================== diff -u --- development/Nodered/Swagger documenten/ERPService.json (revision 0) +++ development/Nodered/Swagger documenten/ERPService.json (revision 90) @@ -0,0 +1,529 @@ +{ + "openapi": "3.0.3", + "info": { + "title": "ERP Service", + "version": "1.0.0" + }, + "paths": { + "/syncOrder": { + "post": { + "summary": "Syncs the order with the ERP", + "description": "Create or update all products in the order, then syncs with the ERP", + "requestBody": { + "required": true, + "content": { + "application/xml": { + "schema": { + "$ref": "#/components/schemas/ADUMsgShoppingCartServiceSyncShoppingCartRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Succesful operation", + "content": { + "application/xml": { + "schema": { + "$ref": "#/components/schemas/ADUMsgShoppingCartServiceSyncShoppingCartResponse" + } + } + } + } + } + } + }, + "/createOrUpdateProduct": { + "post": { + "summary": "Creates or updates a product in the ERP", + "description": "Creates or updates the product with the given CID in the ERP", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateOrUpdateProductRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Succesful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateOrUpdateProductResponseSucces" + } + } + } + }, + "500": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateOrUpdateProductResponseError" + } + } + } + } + } + } + }, + "/getSalesPrice": { + "post": { + "summary": "Get the sales price of a product", + "description": "Get the sales price of a product", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetSalesPriceRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Succesful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetSalesPriceResponse" + } + } + } + } + } + } + }, + "/resolveExternalReferences": { + "post": { + "summary": "Get the itemId from an externalItemId", + "description": "Get the itemId from an externalItemId", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResolveExternalReferencesRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Succesful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResolveExternalReferencesResponse" + } + } + } + } + } + } + }, + "/getCustomerDetails": { + "post": { + "summary": "Get the itemId from an externalItemId", + "description": "Get the itemId from an externalItemId", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetCustomerDetailsRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Succesful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetCustomerDetailsResponse" + } + } + } + } + } + } + }, + "/healthCheck": { + "get": { + "tags": [ + "Health" + ], + "summary": "Basic health check", + "responses": { + "200": { + "description": "Healthy" + }, + "500": { + "description": "Unhealthy" + } + } + } + }, + "/integrationCheck": { + "get": { + "tags": [ + "Health" + ], + "summary": "Integration check", + "responses": { + "200": { + "description": "Healthy" + }, + "500": { + "description": "Unhealthy" + } + } + } + } + }, + "components": { + "schemas": { + "ADUShoppingCartLineInputDC": { + "type": "object", + "properties": { + "ChosenItemId": { + "type": "string" + }, + "EconAttributes": { + "type": "string" + }, + "LineHash": { + "type": "string" + }, + "LineNum": { + "type": "string" + }, + "MessageId": { + "type": "string" + }, + "ProdBody": { + "type": "string" + }, + "Quantity": { + "type": "integer" + }, + "SalesOriginId": { + "type": "string" + }, + "ShoppingCartIdShoppingCartId": { + "type": "integer" + } + } + }, + "ADUMsgShoppingCartServiceSyncShoppingCartRequest": { + "type": "object", + "properties": { + "_shoppingCartInput": { + "type": "object", + "properties": { + "CaseID": { + "type": "string" + }, + "City": { + "type": "string" + }, + "CountryRegionId": { + "type": "string" + }, + "CustAccount": { + "type": "string" + }, + "CustomerReference": { + "type": "string" + }, + "DeliveryName": { + "type": "string" + }, + "Discounts": { + "type": "string" + }, + "DistributorSubsidiary": { + "type": "string" + }, + "DistributorSubsidiaryEmail": { + "type": "string" + }, + "DlvMode": { + "type": "string" + }, + "LineHash": { + "type": "string" + }, + "Lines": { + "type": "object", + "properties": { + "ADUShoppingCartLineInputDC": { + "$ref": "#/components/schemas/ADUShoppingCartLineInputDC" + } + } + }, + "LogisticsLocationId": { + "type": "string" + }, + "MessageId": { + "type": "string" + }, + "OrderComments": { + "type": "string" + }, + "OrderedByEmail": { + "type": "string" + }, + "ParentShoppingCartId": { + "type": "string" + }, + "PurchOrderFormNum": { + "type": "string" + }, + "RecalculatePrice": { + "type": "string" + }, + "SalesConfirmEmail": { + "type": "string" + }, + "SalesOriginId": { + "type": "string" + }, + "ShipCarrierDeliveryContact": { + "type": "string" + }, + "ShoppingCartId": { + "type": "integer" + }, + "ShoppingCartStatus": { + "type": "string" + }, + "Street": { + "type": "string" + }, + "SubtypeId": { + "type": "string" + }, + "TraderCustCode": { + "type": "string" + }, + "TraderCustEmail": { + "type": "string" + }, + "TraderCustId": { + "type": "string" + }, + "TraderCustLanguage": { + "type": "string" + }, + "TraderCustName": { + "type": "string" + }, + "TraderCustUserId": { + "type": "string" + }, + "ZipCode": { + "type": "string" + } + } + } + } + }, + "ADUMsgShoppingCartServiceSyncShoppingCartResponse": { + "type": "object", + "properties": { + "Blocking": { + "type": "string" + }, + "CustomerMessage": { + "type": "string" + }, + "DlvDates": { + "type": "string" + }, + "DlvModeOrder": { + "type": "string" + }, + "Errors": { + "type": "string" + }, + "Lines": { + "type": "object", + "properties": { + "ADUShoppingCartLineInputDC": { + "$ref": "#/components/schemas/ADUShoppingCartLineInputDC" + } + } + }, + "MessageId": { + "type": "string" + }, + "MsgTableId": { + "type": "string" + }, + "MultipleCTPDates": { + "type": "string" + }, + "ShoppingCartId": { + "type": "string" + }, + "SyncStatus": { + "type": "string" + } + } + }, + "CreateOrUpdateProductRequest": { + "type": "object", + "properties": { + "CID": { + "type": "string" + }, + "ConfiguratorFeedback": { + "type": "object", + "properties": { + "VhConfig": { + "type": "object" + }, + "ValidatieResultaat": { + "type": "object" + } + } + }, + "LineHash": { + "type": "string" + }, + "magLoggen": { + "type": "boolean" + } + } + }, + "CreateOrUpdateProductResponseSucces": { + "type": "object", + "properties": { + "ConfigId": { + "type": "string" + }, + "ItemId": { + "type": "string" + }, + "MessageId": { + "type": "string" + }, + "MsgTableId": { + "type": "string" + }, + "ErrorCode": { + "type": "string" + }, + "ErrorBoodschap": { + "type": "string" + } + } + }, + "CreateOrUpdateProductResponseError": { + "type": "object", + "properties": { + "ErrorCode": { + "type": "string" + }, + "ErrorBoodschap": { + "type": "string" + } + } + }, + "GetSalesPriceRequest": { + "type": "object", + "properties": { + "customerId": { + "type": "string" + }, + "cpConfig": { + "type": "string" + }, + "quantity": { + "type": "integer" + } + } + }, + "GetSalesPriceResponse": { + "type": "object", + "properties": { + "salesPrice": { + "type": "string" + } + } + }, + "ResolveExternalReferencesRequest": { + "type": "object", + "properties": { + "externalItemId": { + "type": "string" + } + } + }, + "ResolveExternalReferencesResponse": { + "type": "object", + "properties": { + "itemId": { + "type": "string" + } + } + }, + "GetCustomerDetailsRequest": { + "type": "object", + "properties": { + "customerAccount": { + "type": "string" + } + } + }, + "GetCustomerDetailsResponse": { + "type": "object", + "properties": { + "s:Envelope": { + "type": "object", + "properties": { + "s:Body": { + "type": "array", + "items": { + "type": "object", + "properties": { + "VHCustomerDetailsServiceGetCustomerDetailsResponse": { + "type": "array", + "items": { + "type": "object", + "properties": { + "response": { + "type": "array", + "items": { + "type": "object", + "properties": { + "b:SalesRegion": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } +} \ No newline at end of file