Files
Sébastien Stormacq e58d89148c Replace standard documents and processes with AWS ones (#574)
- Adjust notice, security reporting, code of conduct, contribution
process to the standard AWS documents
- Adjust GitHub issue templates to AWS standard ones.
- Adjust the license header in all source files

---------

Co-authored-by: Sebastien Stormacq <stormacq@amazon.lu>
2025-10-21 23:27:30 +02:00

50 lines
1.4 KiB
Swift

//===----------------------------------------------------------------------===//
//
// This source file is part of the SwiftAWSLambdaRuntime open source project
//
// Copyright SwiftAWSLambdaRuntime project authors
// Copyright (c) Amazon.com, Inc. or its affiliates.
// Licensed under Apache License v2.0
//
// See LICENSE.txt for license information
// See CONTRIBUTORS.txt for the list of SwiftAWSLambdaRuntime project authors
//
// SPDX-License-Identifier: Apache-2.0
//
//===----------------------------------------------------------------------===//
import AWSLambdaRuntime
// the data structure to represent the input parameter
struct Request: Decodable {
let text: String
}
// the data structure to represent the response parameter
struct Response: Encodable {
let text: String
let isPalindrome: Bool
let message: String
}
// the business function
func isPalindrome(_ text: String) -> Bool {
let cleanedText = text.lowercased().filter { $0.isLetter }
return cleanedText == String(cleanedText.reversed())
}
// the lambda handler function
let runtime = LambdaRuntime {
(event: Request, context: LambdaContext) -> Response in
let result = isPalindrome(event.text)
return Response(
text: event.text,
isPalindrome: result,
message: "Your text is \(result ? "a" : "not a") palindrome"
)
}
// start the runtime
try await runtime.run()