diff --git a/EdgeAgentSDK/EdgeAgent/Sources/EdgeAgent+Credentials.swift b/EdgeAgentSDK/EdgeAgent/Sources/EdgeAgent+Credentials.swift index 83df378b..1ce6c0e8 100644 --- a/EdgeAgentSDK/EdgeAgent/Sources/EdgeAgent+Credentials.swift +++ b/EdgeAgentSDK/EdgeAgent/Sources/EdgeAgent+Credentials.swift @@ -48,7 +48,7 @@ public extension EdgeAgent { ) let rqstStr = try request.tryToString() - Logger(label: "").log(level: .info, "Request: \(rqstStr)") + logger.debug(message: "Request: \(rqstStr)") let attachment: AttachmentDescriptor switch type { case .jwt: diff --git a/EdgeAgentSDK/EdgeAgent/Tests/AnoncredsPresentationFlowTest.swift b/EdgeAgentSDK/EdgeAgent/Tests/AnoncredsPresentationFlowTest.swift index 8db45400..2278d57d 100644 --- a/EdgeAgentSDK/EdgeAgent/Tests/AnoncredsPresentationFlowTest.swift +++ b/EdgeAgentSDK/EdgeAgent/Tests/AnoncredsPresentationFlowTest.swift @@ -40,7 +40,8 @@ final class AnoncredsPresentationFlowTest: XCTestCase { fromDID: DID(method: "test", methodId: "alice"), toDID: DID(method: "test", methodId: "bob"), claimFilters: [ - .init(paths: [], type: "sex") + .init(paths: [], type: "sex"), + .init(paths: [], type: "age", const: "20", pattern: ">=") ] ) diff --git a/EdgeAgentSDK/Pollux/Sources/PolluxImpl+Presentation.swift b/EdgeAgentSDK/Pollux/Sources/PolluxImpl+Presentation.swift index 0f18893b..ff027af9 100644 --- a/EdgeAgentSDK/Pollux/Sources/PolluxImpl+Presentation.swift +++ b/EdgeAgentSDK/Pollux/Sources/PolluxImpl+Presentation.swift @@ -54,15 +54,34 @@ extension PolluxImpl { .reduce([String: AnoncredsPresentationRequest.RequestedAttribute](), { partialResult, filter in var dic = partialResult let key = filter.name ?? filter.type + guard filter.pattern == nil else { + return dic + } dic[key] = AnoncredsPresentationRequest.RequestedAttribute(name: key, restrictions: []) return dic }) + + let requestedPredicates = claimFilters + .reduce([String: AnoncredsPresentationRequest.RequestedPredicate](), { partialResult, filter in + var dic = partialResult + guard + let pType = filter.pattern, + let pValueStr = filter.const, + let pValue = Int(pValueStr) + else { + return dic + } + let key = filter.name ?? filter.type + dic[key] = AnoncredsPresentationRequest.RequestedPredicate(name: key, pType: pType, pValue: pValue) + return dic + }) + let anoncredsPresentation = AnoncredsPresentationRequest( nonce: try Nonce().getValue(), name: name, version: version, requestedAttributes: requestedFields, - requestedPredicates: [:] + requestedPredicates: requestedPredicates ) return try JSONEncoder.didComm().encode(anoncredsPresentation)