## [Start] Set query expression** #set( $modelQueryExpression = {} ) ## [End] Validate key arguments. ** #if( !$util.isNull($ctx.args.name) ) #set( $modelQueryExpression.expression = "#name = :name" ) #set( $modelQueryExpression.expressionNames = { "#name": "name" } ) #set( $modelQueryExpression.expressionValues = { ":name": { "S": "$ctx.args.name" } } ) #end ## [Start] Applying Key Condition ** #if( !$util.isNull($ctx.args.createdAt) && !$util.isNull($ctx.args.createdAt.beginsWith) ) #set( $modelQueryExpression.expression = "$modelQueryExpression.expression AND begins_with(#sortKey, :sortKey)" ) $util.qr($modelQueryExpression.expressionNames.put("#sortKey", "createdAt")) $util.qr($modelQueryExpression.expressionValues.put(":sortKey", { "S": "$ctx.args.createdAt.beginsWith" })) #end #if( !$util.isNull($ctx.args.createdAt) && !$util.isNull($ctx.args.createdAt.between) ) #set( $modelQueryExpression.expression = "$modelQueryExpression.expression AND #sortKey BETWEEN :sortKey0 AND :sortKey1" ) $util.qr($modelQueryExpression.expressionNames.put("#sortKey", "createdAt")) $util.qr($modelQueryExpression.expressionValues.put(":sortKey0", { "S": "$ctx.args.createdAt.between[0]" })) $util.qr($modelQueryExpression.expressionValues.put(":sortKey1", { "S": "$ctx.args.createdAt.between[1]" })) #end #if( !$util.isNull($ctx.args.createdAt) && !$util.isNull($ctx.args.createdAt.eq) ) #set( $modelQueryExpression.expression = "$modelQueryExpression.expression AND #sortKey = :sortKey" ) $util.qr($modelQueryExpression.expressionNames.put("#sortKey", "createdAt")) $util.qr($modelQueryExpression.expressionValues.put(":sortKey", { "S": "$ctx.args.createdAt.eq" })) #end #if( !$util.isNull($ctx.args.createdAt) && !$util.isNull($ctx.args.createdAt.lt) ) #set( $modelQueryExpression.expression = "$modelQueryExpression.expression AND #sortKey < :sortKey" ) $util.qr($modelQueryExpression.expressionNames.put("#sortKey", "createdAt")) $util.qr($modelQueryExpression.expressionValues.put(":sortKey", { "S": "$ctx.args.createdAt.lt" })) #end #if( !$util.isNull($ctx.args.createdAt) && !$util.isNull($ctx.args.createdAt.le) ) #set( $modelQueryExpression.expression = "$modelQueryExpression.expression AND #sortKey <= :sortKey" ) $util.qr($modelQueryExpression.expressionNames.put("#sortKey", "createdAt")) $util.qr($modelQueryExpression.expressionValues.put(":sortKey", { "S": "$ctx.args.createdAt.le" })) #end #if( !$util.isNull($ctx.args.createdAt) && !$util.isNull($ctx.args.createdAt.gt) ) #set( $modelQueryExpression.expression = "$modelQueryExpression.expression AND #sortKey > :sortKey" ) $util.qr($modelQueryExpression.expressionNames.put("#sortKey", "createdAt")) $util.qr($modelQueryExpression.expressionValues.put(":sortKey", { "S": "$ctx.args.createdAt.gt" })) #end #if( !$util.isNull($ctx.args.createdAt) && !$util.isNull($ctx.args.createdAt.ge) ) #set( $modelQueryExpression.expression = "$modelQueryExpression.expression AND #sortKey >= :sortKey" ) $util.qr($modelQueryExpression.expressionNames.put("#sortKey", "createdAt")) $util.qr($modelQueryExpression.expressionValues.put(":sortKey", { "S": "$ctx.args.createdAt.ge" })) #end ## [End] Applying Key Condition ** ## [End] Set query expression ** #set( $limit = $util.defaultIfNull($context.args.limit, 100) ) #set( $QueryRequest = { "version": "2018-05-29", "operation": "Query", "limit": $limit, "query": $modelQueryExpression } ) #if( !$util.isNull($ctx.args.sortDirection) && $ctx.args.sortDirection == "DESC" ) #set( $QueryRequest.scanIndexForward = false ) #else #set( $QueryRequest.scanIndexForward = true ) #end #if( $context.args.nextToken ) #set( $QueryRequest.nextToken = $context.args.nextToken ) #end #if( $context.args.filter ) #set( $QueryRequest.filter = $util.parseJson("$util.transform.toDynamoDBFilterExpression($ctx.args.filter)") ) #end $util.toJson($QueryRequest)