Files
swift-aws-lambda-runtime/Examples/Tutorial/Sources/main.swift
T
Sébastien Stormacq 2669009d3b Update the tutorial for v2 (#450)
Update the text, code sample, and screenshots for runtime v2

Address
https://github.com/swift-server/swift-aws-lambda-runtime/issues/371
2025-01-04 10:54:37 +01:00

49 lines
1.3 KiB
Swift

//===----------------------------------------------------------------------===//
//
// This source file is part of the SwiftAWSLambdaRuntime open source project
//
// Copyright (c) 2025 Apple Inc. and the SwiftAWSLambdaRuntime project authors
// 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()