Service - Payment Method Generic: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
| (24 intermediate revisions by 3 users not shown) | |||
| Line 1: | Line 1: | ||
= Overview = | = Overview = | ||
Handler service for | Handler service for generic payment methods that give text instruction to buyer at completion of sale. userPaymentMethod is also handled by each Payment Method Handler because there will be unique settings depending on the Payment Method. | ||
= Repository = | = Repository = | ||
https://bitbucket.org/izara-market-products/izara-market-products-payment-method-generic/src/master/ | https://bitbucket.org/izara-market-products/izara-market-products-payment-method-generic/src/master/ | ||
= Schemas = | |||
==ObjectSchemas== | |||
===paymentMethodGeneric=== | |||
*ExtendObjType:paymentMethod | |||
<syntaxhighlight lang="JavaScript"> | |||
{ | |||
"objectType": "paymentMethodGeneric", | |||
"extendObjType": { | |||
"serviceTag": "PaymentMethodManager", | |||
"objectType": "paymentMethod" | |||
}, | |||
"addOnDataStructure": [ | |||
{ | |||
"type": "propertyValue" | |||
} | |||
], | |||
"storageResources": { | |||
"graph": { | |||
"storageType": "graph", | |||
"graphServerTag": "GraphHandler" | |||
}, | |||
"dynamoDB": { | |||
"storageType": "dynamoDB", | |||
"tableName": "PaymentMethodRecords", | |||
"serviceTag": "PaymentMethodManager" | |||
} | |||
}, | |||
"fieldNames": {}, | |||
"generatedBy": "userGenerated" | |||
} | |||
</syntaxhighlight> | |||
= | === userPaymentMethodGeneric === | ||
*ExtendObjType:userPaymentMethod | |||
== [[ | <syntaxhighlight lang="JavaScript"> | ||
{ | |||
=== | "objectType": "userPaymentMethodGeneric", | ||
"extendObjType": { | |||
"serviceTag": "PaymentMethodManager", | |||
"objectType": "userPaymentMethod" | |||
}, | |||
"addOnDataStructure": [ | |||
{ | |||
"type": "propertyValue" | |||
} | |||
], | |||
"storageResources": { | |||
"graph": { | |||
"storageType": "graph", | |||
"graphServerTag": "GraphHandler" | |||
}, | |||
"dynamoDB": { | |||
"storageType": "dynamoDB", | |||
"tableName": "UserPaymentMethodsRecords", | |||
"serviceTag": "PaymentMethodManager" | |||
} | |||
}, | |||
"fieldNames": {}, | |||
"generatedBy": "userGenerated" | |||
} | |||
</syntaxhighlight> | |||
=== userPaymentMethodGenericSalePropertyValue === | |||
<syntaxhighlight lang="JavaScript"> | |||
{ | |||
"objectType": "userPaymentMethodGenericSalePropertyValue", | |||
"addOnDataStructure": [ | |||
{ | |||
"type": "translation" | |||
} | |||
], | |||
"canDelete": true, | |||
"storageResources": { | |||
"graph": { | |||
"storageType": "graph", | |||
"graphServerTag": "GraphHandler" | |||
} | |||
}, | |||
"fieldNames": { | |||
"userPaymentMethodGenericSalePropertyValueId": { | |||
"type": "string", | |||
"requiredOnCreate": false, | |||
"optionalOnCreate": false, | |||
"canUpdate": false, | |||
"randomOnCreate": true, | |||
"validation": { | |||
"pattern": "^[a-zA-Z0-9-_]+$" | |||
}, | |||
"storageResourceTags": [ | |||
"graph" | |||
] | |||
} | |||
}, | |||
"identifiers": [ | |||
{ | |||
"type": "identifier", | |||
"fieldName": "userPaymentMethodGenericSalePropertyValueId" | |||
} | |||
], | |||
"generatedBy": "userGenerated" | |||
} | |||
</syntaxhighlight> | |||
=== userPaymentMethodGenericSalePropertyLabel === | |||
<syntaxhighlight lang="JavaScript"> | |||
{ | |||
"objectType": "userPaymentMethodGenericSalePropertyLabel", | |||
"addOnDataStructure": [ | |||
{ | |||
"type": "translation" | |||
} | |||
], | |||
"canDelete": true, | |||
"storageResources": { | |||
"graph": { | |||
"storageType": "graph", | |||
"graphServerTag": "GraphHandler" | |||
} | |||
}, | |||
"fieldNames": { | |||
"userPaymentMethodGenericSalePropertyLabelId": { | |||
"type": "string", | |||
"requiredOnCreate": false, | |||
"optionalOnCreate": false, | |||
"canUpdate": false, | |||
"randomOnCreate": true, | |||
"validation": { | |||
"pattern": "^[a-zA-Z0-9-_]+$" | |||
}, | |||
"storageResourceTags": [ | |||
"graph" | |||
] | |||
} | |||
}, | |||
"identifiers": [ | |||
{ | |||
"type": "identifier", | |||
"fieldName": "userPaymentMethodGenericSalePropertyLabelId" | |||
} | |||
], | |||
"generatedBy": "userGenerated" | |||
} | |||
</syntaxhighlight> | |||
'''property''' | |||
=== paymentMethodGenericPropertyLabel === | |||
<syntaxhighlight lang="JavaScript"> | |||
{ | |||
"objectType": "paymentMethodGenericPropertyLabel", | |||
"addOnDataStructure": [ | |||
{ | |||
"type": "translation" | |||
} | |||
], | |||
"canDelete": true, | |||
"storageResources": { | |||
"graph": { | |||
"storageType": "graph", | |||
"graphServerTag": "GraphHandler" | |||
} | |||
}, | |||
"fieldNames": { | |||
"paymentMethodGenericPropertyLabelId": { | |||
"type": "string", | |||
"requiredOnCreate": false, | |||
"optionalOnCreate": false, | |||
"canUpdate": false, | |||
"randomOnCreate": true, | |||
"validation": { | |||
"pattern": "^[a-zA-Z0-9-_]+$" | |||
}, | |||
"storageResourceTags": [ | |||
"graph" | |||
] | |||
} | |||
}, | |||
"identifiers": [ | |||
{ | |||
"type": "identifier", | |||
"fieldName": "paymentMethodGenericPropertyLabelId" | |||
} | |||
], | |||
"generatedBy": "userGenerated" | |||
} | |||
</syntaxhighlight> | |||
=== paymentMethodGenericPropertyValue === | |||
<syntaxhighlight lang="JavaScript"> | |||
{ | |||
"objectType": "paymentMethodGenericPropertyValue", | |||
"addOnDataStructure": [ | |||
{ | |||
"type": "translation" | |||
} | |||
], | |||
"canDelete": true, | |||
"storageResources": { | |||
"graph": { | |||
"storageType": "graph", | |||
"graphServerTag": "GraphHandler" | |||
} | |||
}, | |||
"fieldNames": { | |||
"paymentMethodGenericPropertyValueId": { | |||
"type": "string", | |||
"requiredOnCreate": false, | |||
"optionalOnCreate": false, | |||
"canUpdate": false, | |||
"randomOnCreate": true, | |||
"validation": { | |||
"pattern": "^[a-zA-Z0-9-_]+$" | |||
}, | |||
"storageResourceTags": [ | |||
"graph" | |||
] | |||
} | |||
}, | |||
"identifiers": [ | |||
{ | |||
"type": "identifier", | |||
"fieldName": "paymentMethodGenericPropertyValueId" | |||
} | |||
], | |||
"generatedBy": "userGenerated" | |||
} | |||
</syntaxhighlight> | |||
=== userPaymentMethodGenericPropertyLabel === | |||
<syntaxhighlight lang="JavaScript"> | |||
{ | |||
"objectType": "userPaymentMethodGenericPropertyLabel", | |||
"addOnDataStructure": [ | |||
{ | |||
"type": "translation" | |||
} | |||
], | |||
"canDelete": true, | |||
"storageResources": { | |||
"graph": { | |||
"storageType": "graph", | |||
"graphServerTag": "GraphHandler" | |||
} | |||
}, | |||
"fieldNames": { | |||
"userPaymentMethodGenericPropertyLabelId": { | |||
"type": "string", | |||
"requiredOnCreate": false, | |||
"optionalOnCreate": false, | |||
"canUpdate": false, | |||
"randomOnCreate": true, | |||
"validation": { | |||
"pattern": "^[a-zA-Z0-9-_]+$" | |||
}, | |||
"storageResourceTags": [ | |||
"graph" | |||
] | |||
} | |||
}, | |||
"identifiers": [ | |||
{ | |||
"type": "identifier", | |||
"fieldName": "userPaymentMethodGenericPropertyLabelId" | |||
} | |||
], | |||
"generatedBy": "userGenerated" | |||
} | |||
</syntaxhighlight> | |||
=== userPaymentMethodGenericPropertyValue === | |||
<syntaxhighlight lang="JavaScript"> | <syntaxhighlight lang="JavaScript"> | ||
{ | { | ||
"objectType": "userPaymentMethodGenericPropertyValue", | |||
"addOnDataStructure": [ | |||
{ | |||
"type": "translation" | |||
} | |||
], | |||
"canDelete": true, | |||
"storageResources": { | |||
"graph": { | |||
"storageType": "graph", | |||
"graphServerTag": "GraphHandler" | |||
} | |||
}, | |||
"fieldNames": { | |||
"userPaymentMethodGenericPropertyValueId": { | |||
"type": "string", | |||
"requiredOnCreate": false, | |||
"optionalOnCreate": false, | |||
"canUpdate": false, | |||
"randomOnCreate": true, | |||
"validation": { | |||
"pattern": "^[a-zA-Z0-9-_]+$" | |||
}, | |||
"storageResourceTags": [ | |||
"graph" | |||
] | |||
} | |||
}, | |||
"identifiers": [ | |||
{ | |||
"type": "identifier", | |||
"fieldName": "userPaymentMethodGenericPropertyValueId" | |||
} | |||
], | |||
"generatedBy": "userGenerated" | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==RelationshipSchemas== | |||
=== disabledPaymentMethodGenericPropertyValue === | |||
<syntaxhighlight lang="JavaScript"> | <syntaxhighlight lang="JavaScript"> | ||
{ | { | ||
"relationshipServiceTag": "PaymentMethodGeneric", | |||
"fieldNames": {}, | |||
"storageResources": { | |||
"graph": { | |||
"storageType": "graph", | |||
"graphServerTag": "GraphHandler" | |||
} | |||
}, | |||
"links": [ | |||
{ | |||
"storageResourceTags": [ | |||
"graph" | |||
], | |||
"from": { | |||
"objType": { | |||
"objectType": "paymentMethodGeneric", | |||
"serviceTag": "PaymentMethodGeneric" | |||
}, | |||
"linkType": "one", | |||
"direction": "from", | |||
"requiredOnCreate": false, | |||
"handler": false | |||
}, | |||
"to": { | |||
"objType": { | |||
"objectType": "paymentMethodGenericPropertyValue", | |||
"serviceTag": "PaymentMethodGeneric" | |||
}, | |||
"linkType": "many", | |||
"direction": "to", | |||
"requiredOnCreate": false, | |||
"handler": false | |||
}, | |||
"canDelete": false | |||
} | |||
], | |||
"canMove": true | |||
"canChangeToRelTypes": [ | |||
{ | |||
serviceTag:"PaymentMethodGeneric", | |||
relationshipTag: "hasPaymentMethodGenericPropertyValue" | |||
}, | |||
] | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== disabledUserPaymentMethodGenericPropertyValue === | |||
<syntaxhighlight lang="JavaScript"> | <syntaxhighlight lang="JavaScript"> | ||
{ | { | ||
"relationshipServiceTag": "PaymentMethodGeneric", | |||
"fieldNames": {}, | |||
"storageResources": { | |||
"graph": { | |||
"storageType": "graph", | |||
"graphServerTag": "GraphHandler" | |||
} | |||
}, | |||
"links": [ | |||
{ | |||
"storageResourceTags": [ | |||
"graph" | |||
], | |||
"from": { | |||
"objType": { | |||
"objectType": "userPaymentMethodGeneric", | |||
"serviceTag": "PaymentMethodGeneric" | |||
}, | |||
"linkType": "one", | |||
"direction": "from", | |||
"requiredOnCreate": false, | |||
"handler": false | |||
}, | |||
"to": { | |||
"objType": { | |||
"objectType": "userPaymentMethodGenericPropertyValue", | |||
"serviceTag": "PaymentMethodGeneric" | |||
}, | |||
"linkType": "many", | |||
"direction": "to", | |||
"requiredOnCreate": false, | |||
"handler": false | |||
}, | |||
"canDelete": false | |||
} | |||
], | |||
"canMove": true | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== disabledUserPaymentMethodGenericSalePropertyValue === | |||
<syntaxhighlight lang="JavaScript"> | |||
{ | |||
"relationshipServiceTag": "PaymentMethodGeneric", | |||
"fieldNames": {}, | |||
"storageResources": { | |||
"graph": { | |||
"storageType": "graph", | |||
"graphServerTag": "GraphHandler" | |||
} | |||
}, | |||
"links": [ | |||
{ | |||
"storageResourceTags": [ | |||
"graph" | |||
], | |||
"from": { | |||
"objType": { | |||
"objectType": "userPaymentMethodGeneric", | |||
"serviceTag": "PaymentMethodGeneric" | |||
}, | |||
"linkType": "one", | |||
"direction": "from", | |||
"requiredOnCreate": false, | |||
"handler": false | |||
}, | |||
"to": { | |||
"objType": { | |||
"objectType": "userPaymentMethodGenericSalePropertyValue", | |||
"serviceTag": "PaymentMethodGeneric" | |||
}, | |||
"linkType": "many", | |||
"direction": "to", | |||
"requiredOnCreate": false, | |||
"handler": false | |||
}, | |||
"canDelete": false | |||
} | |||
], | |||
"canChangeToRelTypes": [ | |||
{ | |||
"serviceTag": "PaymentMethodGeneric", | |||
"relationshipTag": "hasUserPaymentMethodGenericSalePropertyValue" | |||
} | |||
], | |||
"canMove": false | |||
} | |||
</syntaxhighlight> | |||
=== hasPaymentMethodGenericPropertyValue === | |||
<syntaxhighlight lang="JavaScript"> | |||
{ | |||
"relationshipServiceTag": "PaymentMethodGeneric", | |||
"fieldNames": {}, | |||
"storageResources": { | |||
"graph": { | |||
"storageType": "graph", | |||
"graphServerTag": "GraphHandler" | |||
} | |||
}, | |||
"links": [ | |||
{ | |||
"storageResourceTags": [ | |||
"graph" | |||
], | |||
"from": { | |||
"objType": { | |||
"objectType": "paymentMethodGeneric", | |||
"serviceTag": "PaymentMethodGeneric" | |||
}, | |||
"linkType": "one", | |||
"direction": "from", | |||
"requiredOnCreate": false, | |||
"handler": false | |||
}, | |||
"to": { | |||
"objType": { | |||
"objectType": "paymentMethodGenericPropertyValue", | |||
"serviceTag": "PaymentMethodGeneric" | |||
}, | |||
"linkType": "many", | |||
"direction": "to", | |||
"requiredOnCreate": true, | |||
"handler": false | |||
}, | |||
"canDelete": false | |||
} | |||
], | |||
"canChangeToRelTypes": [ | |||
{ | |||
"serviceTag": "PaymentMethodGeneric", | |||
"relationshipTag": "disabledPaymentMethodGenericPropertyValue" | |||
} | |||
], | |||
"canMove": false | |||
} | |||
</syntaxhighlight> | |||
=== hasUserPaymentMethodGenericPropertyValue === | |||
<syntaxhighlight lang="JavaScript"> | |||
{ | |||
"relationshipServiceTag": "PaymentMethodGeneric", | |||
"fieldNames": {}, | |||
"storageResources": { | |||
"graph": { | |||
"storageType": "graph", | |||
"graphServerTag": "GraphHandler" | |||
} | |||
}, | |||
"links": [ | |||
{ | |||
"storageResourceTags": [ | |||
"graph" | |||
], | |||
"from": { | |||
"objType": { | |||
"objectType": "userPaymentMethodGeneric", | |||
"serviceTag": "PaymentMethodGeneric" | |||
}, | |||
"linkType": "one", | |||
"direction": "from", | |||
"requiredOnCreate": false, | |||
"handler": false | |||
}, | |||
"to": { | |||
"objType": { | |||
"objectType": "userPaymentMethodGenericPropertyValue", | |||
"serviceTag": "PaymentMethodGeneric" | |||
}, | |||
"linkType": "many", | |||
"direction": "to", | |||
"requiredOnCreate": true, | |||
"handler": false | |||
}, | |||
"canDelete": false | |||
} | |||
], | |||
"canChangeToRelTypes": [ | |||
{ | |||
"serviceTag": "PaymentMethodGeneric", | |||
"relationshipTag": "disabledUserPaymentMethodGenericPropertyValue" | |||
} | |||
], | |||
"canMove": false | |||
} | |||
</syntaxhighlight> | |||
=== hasUserPaymentMethodGenericSalePropertyValue === | |||
<syntaxhighlight lang="JavaScript"> | |||
{ | |||
"relationshipServiceTag": "PaymentMethodGeneric", | |||
"fieldNames": {}, | |||
"storageResources": { | |||
"graph": { | |||
"storageType": "graph", | |||
"graphServerTag": "GraphHandler" | |||
} | |||
}, | |||
"links": [ | |||
{ | |||
"storageResourceTags": [ | |||
"graph" | |||
], | |||
"from": { | |||
"objType": { | |||
"objectType": "userPaymentMethodGeneric", | |||
"serviceTag": "PaymentMethodGeneric" | |||
}, | |||
"linkType": "one", | |||
"direction": "from", | |||
"requiredOnCreate": false, | |||
"handler": false | |||
}, | |||
"to": { | |||
"objType": { | |||
"objectType": "userPaymentMethodGenericSalePropertyValue", | |||
"serviceTag": "PaymentMethodGeneric" | |||
}, | |||
"linkType": "many", | |||
"direction": "to", | |||
"requiredOnCreate": true, | |||
"handler": false | |||
}, | |||
"canDelete": false | |||
} | |||
], | |||
"canChangeToRelTypes": [ | |||
{ | |||
"serviceTag": "PaymentMethodGeneric", | |||
"relationshipTag": "disabledUserPaymentMethodGenericSalePropertyValue" | |||
} | |||
], | |||
"canMove": false | |||
} | |||
</syntaxhighlight> | |||
=== isPaymentMethodGenericPropertyLabel === | |||
<syntaxhighlight lang="JavaScript"> | |||
{ | |||
"relationshipServiceTag": "PaymentMethodGeneric", | |||
"fieldNames": {}, | |||
"storageResources": { | |||
"graph": { | |||
"storageType": "graph", | |||
"graphServerTag": "GraphHandler" | |||
} | |||
}, | |||
"links": [ | |||
{ | |||
"storageResourceTags": [ | |||
"graph" | |||
], | |||
"from": { | |||
"objType": { | |||
"objectType": "paymentMethodGenericPropertyValue", | |||
"serviceTag": "PaymentMethodGeneric" | |||
}, | |||
"linkType": "many", | |||
"direction": "from", | |||
"requiredOnCreate": true, | |||
"handler": false | |||
}, | |||
"to": { | |||
"objType": { | |||
"objectType": "paymentMethodGenericPropertyLabel", | |||
"serviceTag": "PaymentMethodGeneric" | |||
}, | |||
"linkType": "one", | |||
"direction": "to", | |||
"requiredOnCreate": false, | |||
"handler": false | |||
}, | |||
"canDelete": false | |||
} | |||
], | |||
"canMove": false | |||
} | |||
</syntaxhighlight> | |||
=== isUserPaymentMethodGenericPropertyLabel === | |||
<syntaxhighlight lang="JavaScript"> | |||
{ | |||
"relationshipServiceTag": "PaymentMethodGeneric", | |||
"fieldNames": {}, | |||
"storageResources": { | |||
"graph": { | |||
"storageType": "graph", | |||
"graphServerTag": "GraphHandler" | |||
} | |||
}, | |||
"links": [ | |||
{ | |||
"storageResourceTags": [ | |||
"graph" | |||
], | |||
"from": { | |||
"objType": { | |||
"objectType": "userPaymentMethodGenericPropertyValue", | |||
"serviceTag": "PaymentMethodGeneric" | |||
}, | |||
"linkType": "many", | |||
"direction": "from", | |||
"requiredOnCreate": true, | |||
"handler": false | |||
}, | |||
"to": { | |||
"objType": { | |||
"objectType": "userPaymentMethodGenericPropertyLabel", | |||
"serviceTag": "PaymentMethodGeneric" | |||
}, | |||
"linkType": "one", | |||
"direction": "to", | |||
"requiredOnCreate": false, | |||
"handler": false | |||
}, | |||
"canDelete": false | |||
} | |||
], | |||
"canMove": false | |||
} | |||
</syntaxhighlight> | |||
=== isUserPaymentMethodGenericSalePropertyLabel === | |||
<syntaxhighlight lang="JavaScript"> | <syntaxhighlight lang="JavaScript"> | ||
{ | { | ||
"relationshipServiceTag": "PaymentMethodGeneric", | |||
"fieldNames": {}, | |||
"storageResources": { | |||
"graph": { | |||
"storageType": "graph", | |||
"graphServerTag": "GraphHandler" | |||
} | |||
}, | |||
"links": [ | |||
{ | |||
"storageResourceTags": [ | |||
"graph" | |||
], | |||
"from": { | |||
"objType": { | |||
"objectType": "userPaymentMethodGenericSalePropertyValue", | |||
"serviceTag": "PaymentMethodGeneric" | |||
}, | |||
"linkType": "many", | |||
"direction": "from", | |||
"requiredOnCreate": true, | |||
"handler": false | |||
}, | |||
"to": { | |||
"objType": { | |||
"objectType": "userPaymentMethodGenericSalePropertyLabel", | |||
"serviceTag": "PaymentMethodGeneric" | |||
}, | |||
"linkType": "one", | |||
"direction": "to", | |||
"requiredOnCreate": false, | |||
"handler": false | |||
}, | |||
"canDelete": false | |||
} | |||
], | |||
"canMove": false | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Basic node schemas == | |||
<syntaxhighlight lang="JavaScript"> | <syntaxhighlight lang="JavaScript"> | ||
{ | { | ||
nodeLabel: "{PaymentMethodGenericLib. | nodeLabel: "{PaymentMethodGenericLib.PAYMENTMETHOD_GRAPH_NODE_LABEL}", // "paymentMethod" | ||
schema: { | schema: { | ||
identifier: true, | identifier: true, | ||
| Line 70: | Line 738: | ||
restrictRelationships: true, | restrictRelationships: true, | ||
properties: { | properties: { | ||
paymentMethodId: { | |||
identifier: true, | identifier: true, | ||
}, | }, | ||
paymentMethodHandlerServiceNameTag: { | paymentMethodHandlerServiceNameTag: { | ||
immutable: true, | immutable: true, | ||
}, | }, | ||
| Line 83: | Line 748: | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
* | * [[Service - Translations Graph]] | ||
* | * [[Service - Orders Graph]] | ||
=== Schema comes from [[NPM module - Izara Core - Property Node|BasicNodeSchemaLib]] === | |||
# paymentMethodPropertyLabel | |||
#* [[Service - Translations Graph]] | |||
# paymentMethodProperty | |||
#* [[Service - Translations Graph]] | |||
# paymentMethodSalePropertyLabel | |||
#* [[Service - Translations Graph]] | |||
# paymentMethodSaleProperty | |||
#* [[Service - Translations Graph]] | |||
* | |||
= | = Complex Filter requests = | ||
<syntaxhighlight lang="JavaScript"> | <syntaxhighlight lang="JavaScript"> | ||
{ | { | ||
filterType: "handlerPaymentMethod" //unique id is paymentMethodId | |||
type: "group", | |||
elements: | |||
[ | |||
{ | |||
type: "logical", | |||
logicalTag: "currencyId", | |||
comparison: "equals", | |||
value: "xx" | |||
}, | |||
{ | |||
type: "complexFilter", | |||
complexFilter: { | |||
filterType: "paymentMethodProperty", | |||
// see [[NPM module - Izara Core - Property Node|Complex Filter requests]] | |||
} | |||
}, | }, | ||
{ | |||
type: "complexFilter", | |||
complexFilter: { | |||
filterType: "paymentMethodNameTranslation" //unique id is paymentMethodId | |||
type: "group", | |||
elements: | |||
[ | |||
{ | |||
// see [[Service - Translations|Complex Filter requests]] | |||
type: "logical", | |||
logicalTag: "textTag_languageId_text", | |||
resultType: "paymentMethod", | |||
textTag: "paymentMethodName", | |||
languageId: "en", | |||
text: "Is a great term", | |||
subjectIdentifierPropertyName: "paymentMethodId", | |||
caseSensitive: true | |||
}, | |||
] | |||
} | |||
}, | |||
... | |||
] | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| Line 114: | Line 811: | ||
<syntaxhighlight lang="JavaScript"> | <syntaxhighlight lang="JavaScript"> | ||
{ | { | ||
filterType: "handlerUserPaymentMethod" //unique id is userPaymentMethodId | |||
} | type: "group", | ||
{ | elements: | ||
[ | |||
} | { | ||
{ | type: "logical", | ||
logicalTag: "paymentMethodId", | |||
comparison: "equals", | |||
value: "xx" | |||
}, | |||
{ | |||
type: "complexFilter", | |||
complexFilter: { | |||
filterType: "paymentMethod", | |||
// see above | |||
} | |||
}, | |||
{ | |||
type: "complexFilter", | |||
complexFilter: { | |||
filterType: "userPaymentMethodProperty", | |||
// see [[NPM module - Izara Core - Property Node|Complex Filter requests]] | |||
} | |||
}, | |||
{ | |||
type: "complexFilter", | |||
complexFilter: { | |||
filterType: "userPaymentMethodSaleProperty", | |||
// see [[NPM module - Izara Core - Property Node|Complex Filter requests]] | |||
} | |||
}, | |||
... | |||
] | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
= | = Data structure notes = | ||
* Users can create new paymentMethods which are uniquely identified by their translation | |||
* Users can create userPaymentMethod nodes for their account which connect to paymentMethods, one user can have multiple userPaymentMethod links to the same paymentMethod, eg different Bank Transfer nodes for different bank accounts, which can be applied to sell offers in any combination | |||
= Working documents = | = Working documents = | ||
Latest revision as of 08:54, 13 January 2026
Overview
Handler service for generic payment methods that give text instruction to buyer at completion of sale. userPaymentMethod is also handled by each Payment Method Handler because there will be unique settings depending on the Payment Method.
Repository
https://bitbucket.org/izara-market-products/izara-market-products-payment-method-generic/src/master/
Schemas
ObjectSchemas
paymentMethodGeneric
- ExtendObjType:paymentMethod
{
"objectType": "paymentMethodGeneric",
"extendObjType": {
"serviceTag": "PaymentMethodManager",
"objectType": "paymentMethod"
},
"addOnDataStructure": [
{
"type": "propertyValue"
}
],
"storageResources": {
"graph": {
"storageType": "graph",
"graphServerTag": "GraphHandler"
},
"dynamoDB": {
"storageType": "dynamoDB",
"tableName": "PaymentMethodRecords",
"serviceTag": "PaymentMethodManager"
}
},
"fieldNames": {},
"generatedBy": "userGenerated"
}
userPaymentMethodGeneric
- ExtendObjType:userPaymentMethod
{
"objectType": "userPaymentMethodGeneric",
"extendObjType": {
"serviceTag": "PaymentMethodManager",
"objectType": "userPaymentMethod"
},
"addOnDataStructure": [
{
"type": "propertyValue"
}
],
"storageResources": {
"graph": {
"storageType": "graph",
"graphServerTag": "GraphHandler"
},
"dynamoDB": {
"storageType": "dynamoDB",
"tableName": "UserPaymentMethodsRecords",
"serviceTag": "PaymentMethodManager"
}
},
"fieldNames": {},
"generatedBy": "userGenerated"
}
userPaymentMethodGenericSalePropertyValue
{
"objectType": "userPaymentMethodGenericSalePropertyValue",
"addOnDataStructure": [
{
"type": "translation"
}
],
"canDelete": true,
"storageResources": {
"graph": {
"storageType": "graph",
"graphServerTag": "GraphHandler"
}
},
"fieldNames": {
"userPaymentMethodGenericSalePropertyValueId": {
"type": "string",
"requiredOnCreate": false,
"optionalOnCreate": false,
"canUpdate": false,
"randomOnCreate": true,
"validation": {
"pattern": "^[a-zA-Z0-9-_]+$"
},
"storageResourceTags": [
"graph"
]
}
},
"identifiers": [
{
"type": "identifier",
"fieldName": "userPaymentMethodGenericSalePropertyValueId"
}
],
"generatedBy": "userGenerated"
}
userPaymentMethodGenericSalePropertyLabel
{
"objectType": "userPaymentMethodGenericSalePropertyLabel",
"addOnDataStructure": [
{
"type": "translation"
}
],
"canDelete": true,
"storageResources": {
"graph": {
"storageType": "graph",
"graphServerTag": "GraphHandler"
}
},
"fieldNames": {
"userPaymentMethodGenericSalePropertyLabelId": {
"type": "string",
"requiredOnCreate": false,
"optionalOnCreate": false,
"canUpdate": false,
"randomOnCreate": true,
"validation": {
"pattern": "^[a-zA-Z0-9-_]+$"
},
"storageResourceTags": [
"graph"
]
}
},
"identifiers": [
{
"type": "identifier",
"fieldName": "userPaymentMethodGenericSalePropertyLabelId"
}
],
"generatedBy": "userGenerated"
}
property
paymentMethodGenericPropertyLabel
{
"objectType": "paymentMethodGenericPropertyLabel",
"addOnDataStructure": [
{
"type": "translation"
}
],
"canDelete": true,
"storageResources": {
"graph": {
"storageType": "graph",
"graphServerTag": "GraphHandler"
}
},
"fieldNames": {
"paymentMethodGenericPropertyLabelId": {
"type": "string",
"requiredOnCreate": false,
"optionalOnCreate": false,
"canUpdate": false,
"randomOnCreate": true,
"validation": {
"pattern": "^[a-zA-Z0-9-_]+$"
},
"storageResourceTags": [
"graph"
]
}
},
"identifiers": [
{
"type": "identifier",
"fieldName": "paymentMethodGenericPropertyLabelId"
}
],
"generatedBy": "userGenerated"
}
paymentMethodGenericPropertyValue
{
"objectType": "paymentMethodGenericPropertyValue",
"addOnDataStructure": [
{
"type": "translation"
}
],
"canDelete": true,
"storageResources": {
"graph": {
"storageType": "graph",
"graphServerTag": "GraphHandler"
}
},
"fieldNames": {
"paymentMethodGenericPropertyValueId": {
"type": "string",
"requiredOnCreate": false,
"optionalOnCreate": false,
"canUpdate": false,
"randomOnCreate": true,
"validation": {
"pattern": "^[a-zA-Z0-9-_]+$"
},
"storageResourceTags": [
"graph"
]
}
},
"identifiers": [
{
"type": "identifier",
"fieldName": "paymentMethodGenericPropertyValueId"
}
],
"generatedBy": "userGenerated"
}
userPaymentMethodGenericPropertyLabel
{
"objectType": "userPaymentMethodGenericPropertyLabel",
"addOnDataStructure": [
{
"type": "translation"
}
],
"canDelete": true,
"storageResources": {
"graph": {
"storageType": "graph",
"graphServerTag": "GraphHandler"
}
},
"fieldNames": {
"userPaymentMethodGenericPropertyLabelId": {
"type": "string",
"requiredOnCreate": false,
"optionalOnCreate": false,
"canUpdate": false,
"randomOnCreate": true,
"validation": {
"pattern": "^[a-zA-Z0-9-_]+$"
},
"storageResourceTags": [
"graph"
]
}
},
"identifiers": [
{
"type": "identifier",
"fieldName": "userPaymentMethodGenericPropertyLabelId"
}
],
"generatedBy": "userGenerated"
}
userPaymentMethodGenericPropertyValue
{
"objectType": "userPaymentMethodGenericPropertyValue",
"addOnDataStructure": [
{
"type": "translation"
}
],
"canDelete": true,
"storageResources": {
"graph": {
"storageType": "graph",
"graphServerTag": "GraphHandler"
}
},
"fieldNames": {
"userPaymentMethodGenericPropertyValueId": {
"type": "string",
"requiredOnCreate": false,
"optionalOnCreate": false,
"canUpdate": false,
"randomOnCreate": true,
"validation": {
"pattern": "^[a-zA-Z0-9-_]+$"
},
"storageResourceTags": [
"graph"
]
}
},
"identifiers": [
{
"type": "identifier",
"fieldName": "userPaymentMethodGenericPropertyValueId"
}
],
"generatedBy": "userGenerated"
}
RelationshipSchemas
disabledPaymentMethodGenericPropertyValue
{
"relationshipServiceTag": "PaymentMethodGeneric",
"fieldNames": {},
"storageResources": {
"graph": {
"storageType": "graph",
"graphServerTag": "GraphHandler"
}
},
"links": [
{
"storageResourceTags": [
"graph"
],
"from": {
"objType": {
"objectType": "paymentMethodGeneric",
"serviceTag": "PaymentMethodGeneric"
},
"linkType": "one",
"direction": "from",
"requiredOnCreate": false,
"handler": false
},
"to": {
"objType": {
"objectType": "paymentMethodGenericPropertyValue",
"serviceTag": "PaymentMethodGeneric"
},
"linkType": "many",
"direction": "to",
"requiredOnCreate": false,
"handler": false
},
"canDelete": false
}
],
"canMove": true
"canChangeToRelTypes": [
{
serviceTag:"PaymentMethodGeneric",
relationshipTag: "hasPaymentMethodGenericPropertyValue"
},
]
}
disabledUserPaymentMethodGenericPropertyValue
{
"relationshipServiceTag": "PaymentMethodGeneric",
"fieldNames": {},
"storageResources": {
"graph": {
"storageType": "graph",
"graphServerTag": "GraphHandler"
}
},
"links": [
{
"storageResourceTags": [
"graph"
],
"from": {
"objType": {
"objectType": "userPaymentMethodGeneric",
"serviceTag": "PaymentMethodGeneric"
},
"linkType": "one",
"direction": "from",
"requiredOnCreate": false,
"handler": false
},
"to": {
"objType": {
"objectType": "userPaymentMethodGenericPropertyValue",
"serviceTag": "PaymentMethodGeneric"
},
"linkType": "many",
"direction": "to",
"requiredOnCreate": false,
"handler": false
},
"canDelete": false
}
],
"canMove": true
}
disabledUserPaymentMethodGenericSalePropertyValue
{
"relationshipServiceTag": "PaymentMethodGeneric",
"fieldNames": {},
"storageResources": {
"graph": {
"storageType": "graph",
"graphServerTag": "GraphHandler"
}
},
"links": [
{
"storageResourceTags": [
"graph"
],
"from": {
"objType": {
"objectType": "userPaymentMethodGeneric",
"serviceTag": "PaymentMethodGeneric"
},
"linkType": "one",
"direction": "from",
"requiredOnCreate": false,
"handler": false
},
"to": {
"objType": {
"objectType": "userPaymentMethodGenericSalePropertyValue",
"serviceTag": "PaymentMethodGeneric"
},
"linkType": "many",
"direction": "to",
"requiredOnCreate": false,
"handler": false
},
"canDelete": false
}
],
"canChangeToRelTypes": [
{
"serviceTag": "PaymentMethodGeneric",
"relationshipTag": "hasUserPaymentMethodGenericSalePropertyValue"
}
],
"canMove": false
}
hasPaymentMethodGenericPropertyValue
{
"relationshipServiceTag": "PaymentMethodGeneric",
"fieldNames": {},
"storageResources": {
"graph": {
"storageType": "graph",
"graphServerTag": "GraphHandler"
}
},
"links": [
{
"storageResourceTags": [
"graph"
],
"from": {
"objType": {
"objectType": "paymentMethodGeneric",
"serviceTag": "PaymentMethodGeneric"
},
"linkType": "one",
"direction": "from",
"requiredOnCreate": false,
"handler": false
},
"to": {
"objType": {
"objectType": "paymentMethodGenericPropertyValue",
"serviceTag": "PaymentMethodGeneric"
},
"linkType": "many",
"direction": "to",
"requiredOnCreate": true,
"handler": false
},
"canDelete": false
}
],
"canChangeToRelTypes": [
{
"serviceTag": "PaymentMethodGeneric",
"relationshipTag": "disabledPaymentMethodGenericPropertyValue"
}
],
"canMove": false
}
hasUserPaymentMethodGenericPropertyValue
{
"relationshipServiceTag": "PaymentMethodGeneric",
"fieldNames": {},
"storageResources": {
"graph": {
"storageType": "graph",
"graphServerTag": "GraphHandler"
}
},
"links": [
{
"storageResourceTags": [
"graph"
],
"from": {
"objType": {
"objectType": "userPaymentMethodGeneric",
"serviceTag": "PaymentMethodGeneric"
},
"linkType": "one",
"direction": "from",
"requiredOnCreate": false,
"handler": false
},
"to": {
"objType": {
"objectType": "userPaymentMethodGenericPropertyValue",
"serviceTag": "PaymentMethodGeneric"
},
"linkType": "many",
"direction": "to",
"requiredOnCreate": true,
"handler": false
},
"canDelete": false
}
],
"canChangeToRelTypes": [
{
"serviceTag": "PaymentMethodGeneric",
"relationshipTag": "disabledUserPaymentMethodGenericPropertyValue"
}
],
"canMove": false
}
hasUserPaymentMethodGenericSalePropertyValue
{
"relationshipServiceTag": "PaymentMethodGeneric",
"fieldNames": {},
"storageResources": {
"graph": {
"storageType": "graph",
"graphServerTag": "GraphHandler"
}
},
"links": [
{
"storageResourceTags": [
"graph"
],
"from": {
"objType": {
"objectType": "userPaymentMethodGeneric",
"serviceTag": "PaymentMethodGeneric"
},
"linkType": "one",
"direction": "from",
"requiredOnCreate": false,
"handler": false
},
"to": {
"objType": {
"objectType": "userPaymentMethodGenericSalePropertyValue",
"serviceTag": "PaymentMethodGeneric"
},
"linkType": "many",
"direction": "to",
"requiredOnCreate": true,
"handler": false
},
"canDelete": false
}
],
"canChangeToRelTypes": [
{
"serviceTag": "PaymentMethodGeneric",
"relationshipTag": "disabledUserPaymentMethodGenericSalePropertyValue"
}
],
"canMove": false
}
isPaymentMethodGenericPropertyLabel
{
"relationshipServiceTag": "PaymentMethodGeneric",
"fieldNames": {},
"storageResources": {
"graph": {
"storageType": "graph",
"graphServerTag": "GraphHandler"
}
},
"links": [
{
"storageResourceTags": [
"graph"
],
"from": {
"objType": {
"objectType": "paymentMethodGenericPropertyValue",
"serviceTag": "PaymentMethodGeneric"
},
"linkType": "many",
"direction": "from",
"requiredOnCreate": true,
"handler": false
},
"to": {
"objType": {
"objectType": "paymentMethodGenericPropertyLabel",
"serviceTag": "PaymentMethodGeneric"
},
"linkType": "one",
"direction": "to",
"requiredOnCreate": false,
"handler": false
},
"canDelete": false
}
],
"canMove": false
}
isUserPaymentMethodGenericPropertyLabel
{
"relationshipServiceTag": "PaymentMethodGeneric",
"fieldNames": {},
"storageResources": {
"graph": {
"storageType": "graph",
"graphServerTag": "GraphHandler"
}
},
"links": [
{
"storageResourceTags": [
"graph"
],
"from": {
"objType": {
"objectType": "userPaymentMethodGenericPropertyValue",
"serviceTag": "PaymentMethodGeneric"
},
"linkType": "many",
"direction": "from",
"requiredOnCreate": true,
"handler": false
},
"to": {
"objType": {
"objectType": "userPaymentMethodGenericPropertyLabel",
"serviceTag": "PaymentMethodGeneric"
},
"linkType": "one",
"direction": "to",
"requiredOnCreate": false,
"handler": false
},
"canDelete": false
}
],
"canMove": false
}
isUserPaymentMethodGenericSalePropertyLabel
{
"relationshipServiceTag": "PaymentMethodGeneric",
"fieldNames": {},
"storageResources": {
"graph": {
"storageType": "graph",
"graphServerTag": "GraphHandler"
}
},
"links": [
{
"storageResourceTags": [
"graph"
],
"from": {
"objType": {
"objectType": "userPaymentMethodGenericSalePropertyValue",
"serviceTag": "PaymentMethodGeneric"
},
"linkType": "many",
"direction": "from",
"requiredOnCreate": true,
"handler": false
},
"to": {
"objType": {
"objectType": "userPaymentMethodGenericSalePropertyLabel",
"serviceTag": "PaymentMethodGeneric"
},
"linkType": "one",
"direction": "to",
"requiredOnCreate": false,
"handler": false
},
"canDelete": false
}
],
"canMove": false
}
Basic node schemas
{
nodeLabel: "{PaymentMethodGenericLib.PAYMENTMETHOD_GRAPH_NODE_LABEL}", // "paymentMethod"
schema: {
identifier: true,
restrictProperties: true,
restrictRelationships: true,
properties: {
paymentMethodId: {
identifier: true,
},
paymentMethodHandlerServiceNameTag: {
immutable: true,
},
},
}
}
Schema comes from BasicNodeSchemaLib
- paymentMethodPropertyLabel
- paymentMethodProperty
- paymentMethodSalePropertyLabel
- paymentMethodSaleProperty
Complex Filter requests
{
filterType: "handlerPaymentMethod" //unique id is paymentMethodId
type: "group",
elements:
[
{
type: "logical",
logicalTag: "currencyId",
comparison: "equals",
value: "xx"
},
{
type: "complexFilter",
complexFilter: {
filterType: "paymentMethodProperty",
// see [[NPM module - Izara Core - Property Node|Complex Filter requests]]
}
},
{
type: "complexFilter",
complexFilter: {
filterType: "paymentMethodNameTranslation" //unique id is paymentMethodId
type: "group",
elements:
[
{
// see [[Service - Translations|Complex Filter requests]]
type: "logical",
logicalTag: "textTag_languageId_text",
resultType: "paymentMethod",
textTag: "paymentMethodName",
languageId: "en",
text: "Is a great term",
subjectIdentifierPropertyName: "paymentMethodId",
caseSensitive: true
},
]
}
},
...
]
}
{
filterType: "handlerUserPaymentMethod" //unique id is userPaymentMethodId
type: "group",
elements:
[
{
type: "logical",
logicalTag: "paymentMethodId",
comparison: "equals",
value: "xx"
},
{
type: "complexFilter",
complexFilter: {
filterType: "paymentMethod",
// see above
}
},
{
type: "complexFilter",
complexFilter: {
filterType: "userPaymentMethodProperty",
// see [[NPM module - Izara Core - Property Node|Complex Filter requests]]
}
},
{
type: "complexFilter",
complexFilter: {
filterType: "userPaymentMethodSaleProperty",
// see [[NPM module - Izara Core - Property Node|Complex Filter requests]]
}
},
...
]
}
Data structure notes
- Users can create new paymentMethods which are uniquely identified by their translation
- Users can create userPaymentMethod nodes for their account which connect to paymentMethods, one user can have multiple userPaymentMethod links to the same paymentMethod, eg different Bank Transfer nodes for different bank accounts, which can be applied to sell offers in any combination