## Check authorization #set ($isAllowed = false) #set ($userGroups = $util.defaultIfNull($ctx.identity.claims.get("cognito:groups"), [])) #set ($allowedGroups = ["AdminGroup"]) #foreach ($userGroup in $userGroups) #if ($allowedGroups.contains($userGroup)) #set ($isAllowed = true) #break #end #end ## Throw authorized if the user is not authorized. #if ($isAllowed == false) $util.unauthorized() #end #set ($update = {}) ## Check validation #if ($ctx.args.sms and $ctx.args.sms != "") #if (!$util.matches("^((\+\d{1,2}\s)?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4})(,\s*((\+\d{1,2}\s)?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}))*$", $ctx.args.sms)) $util.error("SMS No. must be a comma-separated list of valid phone numbers.") #end #end #if ($ctx.args.email and $ctx.args.email != "") #if (!$util.matches("^([_a-z0-9-]+(\.[_a-z0-9-]+)*(\+[a-z0-9-]+)?@\w+([\.-]?\w+)*(\.\w{2,3})+)(,\s*([_a-z0-9-]+(\.[_a-z0-9-]+)*(\+[a-z0-9-]+)?@\w+([\.-]?\w+)*(\.\w{2,3})+))*$", $ctx.args.email)) $util.error("E-Mail must be a comma-separated list of valid E-Mail addresses.") #end #end ## Set updatedAt #set ($updatedAt = $util.defaultIfNull($ctx.args.updatedAt, $util.time.nowISO8601())) #set ($expression = "SET") #set ($expressionValues = {}) ## Set expression and expressionValues #if ($ctx.args.sms) #set ($expression = "$expression sms = :sms,") $util.qr($expressionValues.put(":sms", $util.dynamodb.toDynamoDB($ctx.args.sms))) #end #if ($ctx.args.email) #set ($expression = "$expression email = :email,") $util.qr($expressionValues.put(":email", $util.dynamodb.toDynamoDB($ctx.args.email))) #end #if ($ctx.args.rootCauses) #set ($expression = "$expression rootCauses = :rootCauses,") $util.qr($expressionValues.put(":rootCauses", $util.dynamodb.toDynamoDB($ctx.args.rootCauses))) #end #if ($ctx.args.eventImgKey) #set ($expression = "$expression eventImgKey = :eventImgKey,") $util.qr($expressionValues.put(":eventImgKey", $util.dynamodb.toDynamoDB($ctx.args.eventImgKey))) #end #if ($ctx.args.alias) #set ($expression = "$expression alias = :alias,") $util.qr($expressionValues.put(":alias", $util.dynamodb.toDynamoDB($ctx.args.alias))) #end $util.qr($expressionValues.put(":version", $util.dynamodb.toDynamoDB($util.defaultIfNull($ctx.args.version, 1)))) $util.qr($expressionValues.put(":updatedAt", $util.dynamodb.toDynamoDB($updatedAt))) { "version": "2017-02-28", "operation": "UpdateItem", "key": { "id": $util.dynamodb.toDynamoDBJson($ctx.args.id), "type": $util.dynamodb.toDynamoDBJson("EVENT") }, "update": { "expression": "$expression version = :version, updatedAt = :updatedAt", "expressionValues": $util.toJson($expressionValues) } }