2019-03-11 22:48:17 +01:00
|
|
|
import { DDO } from "../ddo/DDO"
|
|
|
|
import { ServiceAgreementTemplateCondition, ServiceAgreementTemplateParameter } from "../ddo/ServiceAgreementTemplate"
|
|
|
|
|
|
|
|
function fillParameterWithDDO(parameter: ServiceAgreementTemplateParameter, ddo: DDO): ServiceAgreementTemplateParameter {
|
2019-03-14 21:28:51 +01:00
|
|
|
const getValue = (name) => {
|
2019-03-11 22:48:17 +01:00
|
|
|
switch (name) {
|
|
|
|
case "amount":
|
|
|
|
case "price":
|
2019-05-29 15:52:35 +02:00
|
|
|
return String(ddo.findServiceByType("Metadata").metadata.base.price)
|
2019-03-11 22:48:17 +01:00
|
|
|
case "assetId":
|
|
|
|
case "documentId":
|
|
|
|
case "documentKeyId":
|
|
|
|
return ddo.shortId()
|
2019-04-29 13:31:03 +02:00
|
|
|
case "rewardAddress":
|
|
|
|
return ddo.publicKey[0].owner
|
2019-03-11 22:48:17 +01:00
|
|
|
}
|
|
|
|
|
2019-03-12 13:49:11 +01:00
|
|
|
return ""
|
2019-03-11 22:48:17 +01:00
|
|
|
}
|
|
|
|
const value = getValue(parameter.name.replace(/^_/, ""))
|
|
|
|
|
2019-05-29 15:52:35 +02:00
|
|
|
return {...parameter, value}
|
2019-03-11 22:48:17 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Fill some static parameters that depends on the metadata.
|
|
|
|
* @param {ServiceAgreementTemplateCondition[]} conditions Conditions to fill.
|
|
|
|
* @param {DDO} ddo DDO related to this conditions.
|
|
|
|
* @return {ServiceAgreementTemplateCondition[]} Filled conditions.
|
|
|
|
*/
|
|
|
|
export function fillConditionsWithDDO(conditions: ServiceAgreementTemplateCondition[], ddo: DDO): ServiceAgreementTemplateCondition[] {
|
|
|
|
return conditions
|
2019-03-14 21:28:51 +01:00
|
|
|
.map((condition) => ({
|
2019-03-11 22:48:17 +01:00
|
|
|
...condition,
|
|
|
|
parameters: condition.parameters
|
2019-03-14 21:28:51 +01:00
|
|
|
.map((parameter) => ({
|
|
|
|
...fillParameterWithDDO(parameter, ddo),
|
|
|
|
})),
|
2019-03-11 22:48:17 +01:00
|
|
|
}))
|
|
|
|
}
|