mirror of
https://codeberg.org/keyoxide/doipjs.git
synced 2024-12-22 14:39:28 -07:00
Allows multiple claim methods
This commit is contained in:
parent
37913c9327
commit
8a1f8ad586
2 changed files with 37 additions and 22 deletions
|
@ -200,33 +200,50 @@ const run = async (proofData, claimData, fingerprint) => {
|
|||
errors: []
|
||||
}
|
||||
|
||||
const claimMethods = Array.isArray(claimData.claim)
|
||||
? claimData.claim
|
||||
: [claimData.claim]
|
||||
|
||||
switch (claimData.proof.request.format) {
|
||||
case E.ProofFormat.JSON:
|
||||
for (let index = 0; index < claimMethods.length; index++) {
|
||||
const claimMethod = claimMethods[index]
|
||||
try {
|
||||
res.result = await runJSON(
|
||||
res.result = res.result || await runJSON(
|
||||
proofData,
|
||||
claimData.claim.path,
|
||||
claimMethod.path,
|
||||
fingerprint,
|
||||
claimData.claim.format,
|
||||
claimData.claim.relation
|
||||
claimMethod.format,
|
||||
claimMethod.relation
|
||||
)
|
||||
res.completed = true
|
||||
} catch (error) {
|
||||
res.errors.push(error.message ? error.message : error)
|
||||
}
|
||||
}
|
||||
res.completed = true
|
||||
break
|
||||
case E.ProofFormat.TEXT:
|
||||
for (let index = 0; index < claimMethods.length; index++) {
|
||||
const claimMethod = claimMethods[index]
|
||||
try {
|
||||
res.result = await containsProof(proofData,
|
||||
res.result = res.result || await containsProof(
|
||||
proofData,
|
||||
fingerprint,
|
||||
claimData.claim.format)
|
||||
res.completed = true
|
||||
claimMethod.format
|
||||
)
|
||||
} catch (error) {
|
||||
res.errors.push('err_unknown_text_verification')
|
||||
}
|
||||
}
|
||||
res.completed = true
|
||||
break
|
||||
}
|
||||
|
||||
// Reset the errors if one of the claim methods was successful
|
||||
if (res.result) {
|
||||
res.errors = []
|
||||
}
|
||||
|
||||
return res
|
||||
}
|
||||
|
||||
|
|
|
@ -49,10 +49,8 @@ const pattern = {
|
|||
data: _.isObject,
|
||||
},
|
||||
},
|
||||
claim: {
|
||||
format: _.isInteger,
|
||||
relation: _.isInteger,
|
||||
path: _.isArray,
|
||||
claim: (x) => {
|
||||
return _.isObject(x) || _.isArray(x)
|
||||
},
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue