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.7 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 AWSLambdaEvents
import AWSLambdaRuntime
#if canImport(FoundationEssentials)
import FoundationEssentials
#else
import Foundation
#endif
public struct MyHandler: Sendable {
public func handler(event: APIGatewayV2Request, context: LambdaContext) async throws -> APIGatewayV2Response {
context.logger.debug("HTTP API Message received")
context.logger.trace("Event: \(event)")
var header = HTTPHeaders()
header["content-type"] = "application/json"
// API Gateway sends text or URL encoded data as a Base64 encoded string
if let base64EncodedString = event.body,
let decodedData = Data(base64Encoded: base64EncodedString),
let decodedString = String(data: decodedData, encoding: .utf8)
{
// call our business code to process the payload and return a response
return APIGatewayV2Response(statusCode: .ok, headers: header, body: decodedString.uppercasedFirst())
} else {
return APIGatewayV2Response(statusCode: .badRequest)
}
}
}
let runtime = LambdaRuntime(body: MyHandler().handler)
try await runtime.run()