Skip to content

Instantly share code, notes, and snippets.

@cardoso
Last active September 29, 2020 00:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cardoso/a0a04ca80cc2d2c159fc1f7b791c6e79 to your computer and use it in GitHub Desktop.
Save cardoso/a0a04ca80cc2d2c159fc1f7b791c6e79 to your computer and use it in GitHub Desktop.
import AWSLambdaEvents
import AWSLambdaRuntime
import NIO
import Foundation
#if canImport(FoundationNetworking)
import FoundationNetworking
#endif
Lambda.run { (context: Lambda.Context, event: APIGateway.Request, callback: @escaping (Result<APIGateway.Response, Error>) -> Void) in
guard
let data = event.body?.data(using: .utf8),
let json = try? JSONSerialization.jsonObject(with: data, options: []) as? [String: Any],
var message = json["message"] as? [String: Any]
else {
callback(.success(APIGateway.Response(statusCode: .ok)))
return
}
// rewrite message's text with redacted version
message["text"] = redactCreditCardNumbers(from: text)
let body = ["message": message]
let bodyData = try! JSONSerialization.data(withJSONObject: body)
let string = String(data: bodyData, encoding: .utf8)
callback(.success(APIGateway.Response(statusCode: .ok, body: string)))
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment