我有以下架构:
input CreateEventInput {
userID: String!
eventID: ID!
type: String!
data: String
dateTime: AWSDateTime!
}
type Mutation {
createEvent(input: CreateEventInput!): event
}
type Subscription {
onCreateEvent(): event
@aws_subscribe(mutations: ["createEvent"])
createEvent
解析器设置userID
如下:
"key" : {
"userID" : $util.dynamodb.toDynamoDBJson($context.identity.username),
"eventID" : $util.dynamodb.toDynamoDBJson($util.autoId())
}
我想限制订阅,以便仅将记录userID = $context.identity.username
返回给用户。
有谁知道如何设置这个?我想我需要一个关于订阅的解析器,但我找不到一个明确的例子,你有一个主分区键 ( userID
) 和主排序键 ( eventID
)。
我非常感谢任何帮助或指导。如果需要,我可以更改架构或数据库。
更新:
我相信我可以将订阅响应映射模板设置为:
#if(${context.identity.username} != ${context.arguments.userID})
$utils.unauthorized()
#else
##User is authorized, but we return null to continue
null
#end
但是,我不知道在请求映射模板中放什么。