Skip to content

Commit

Permalink
fix projects resolver
Browse files Browse the repository at this point in the history
  • Loading branch information
mtrenker committed Jun 21, 2020
1 parent 446bf8d commit fa6fb99
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 4 deletions.
2 changes: 1 addition & 1 deletion cdk/resources/schema.graphql
Expand Up @@ -6,7 +6,7 @@ scalar AWSJSON

type Query {
page(input: PageInput!): Page
@aws_api_key
@aws_api_key @aws_cognito_user_pools
projects: ProjectConnection!
trackings(query: TrackingQuery): TrackingConnection!
}
Expand Down
21 changes: 18 additions & 3 deletions cdk/stacks/ApiStack.ts
Expand Up @@ -2,7 +2,7 @@ import {
Stack, App, StackProps, CfnOutput, Fn,
} from '@aws-cdk/core';
import {
GraphQLApi, DynamoDbDataSource, MappingTemplate, UserPoolDefaultAction, CfnApiKey, AuthorizationType, KeyCondition,
GraphQLApi, DynamoDbDataSource, MappingTemplate, UserPoolDefaultAction, CfnApiKey, AuthorizationType, KeyCondition, FieldLogLevel,
} from '@aws-cdk/aws-appsync';
import { UserPool } from '@aws-cdk/aws-cognito';
import { Table, ITable } from '@aws-cdk/aws-dynamodb';
Expand All @@ -26,6 +26,9 @@ export class ApiStack extends Stack {

const api = new GraphQLApi(this, 'GraphQLApi', {
name: 'prod.api.clean.dev',
logConfig: {
fieldLogLevel: FieldLogLevel.ALL
},
schemaDefinitionFile: 'cdk/resources/schema.graphql',
authorizationConfig: {
defaultAuthorization: {
Expand Down Expand Up @@ -94,11 +97,23 @@ export class ApiStack extends Stack {
}

static addProjectsResolver(queryDataSource: DynamoDbDataSource): void {
const keyCondition = KeyCondition.beginsWith('id', "project-")
// const keyCondition = KeyCondition.beginsWith('id', 'project')
queryDataSource.createResolver({
fieldName: 'projects',
typeName: 'Query',
requestMappingTemplate: MappingTemplate.dynamoDbQuery(keyCondition),
requestMappingTemplate: MappingTemplate.fromString(`
{
"version" : "2017-02-28",
"operation" : "Query",
"query":{
"expression": "pk = :user AND begins_with(id, :id)",
"expressionValues": {
":id": $util.dynamodb.toDynamoDBJson("project-"),
":user": $util.dynamodb.toDynamoDBJson($ctx.identity.sub)
}
},
}
`),
responseMappingTemplate: MappingTemplate.fromString(`
{
"items": $util.toJson($ctx.result.items),
Expand Down

0 comments on commit fa6fb99

Please sign in to comment.