diff --git a/Example/.gitignore b/Example/.gitignore new file mode 100644 index 0000000..02c0875 --- /dev/null +++ b/Example/.gitignore @@ -0,0 +1,4 @@ +.DS_Store +/.build +/Packages +/*.xcodeproj diff --git a/Example/Package.resolved b/Example/Package.resolved new file mode 100644 index 0000000..5cefbe8 --- /dev/null +++ b/Example/Package.resolved @@ -0,0 +1,8 @@ +{ + "object": { + "pins": [ + + ] + }, + "version": 1 +} diff --git a/Example/Package.swift b/Example/Package.swift new file mode 100644 index 0000000..9ded78e --- /dev/null +++ b/Example/Package.swift @@ -0,0 +1,16 @@ +// swift-tools-version:4.2 +// The swift-tools-version declares the minimum version of Swift required to build this package. + +import PackageDescription + +let package = Package( + name: "Example", + dependencies: [ + .package(path: "../"), + ], + targets: [ + .target( + name: "Example", + dependencies: ["AWSLambdaRuntime"]), + ] +) diff --git a/Example/README.md b/Example/README.md new file mode 100644 index 0000000..47e66f7 --- /dev/null +++ b/Example/README.md @@ -0,0 +1,3 @@ +# Example + +A description of this package. diff --git a/Example/Sources/Example/main.swift b/Example/Sources/Example/main.swift new file mode 100644 index 0000000..2c39999 --- /dev/null +++ b/Example/Sources/Example/main.swift @@ -0,0 +1,26 @@ +import Foundation +import AWSLambdaRuntime + +struct User: Decodable { + let firstName: String +} + +enum GreetingError: String, LambdaError { + var message: String { + switch self { + case .invalidPayload: + return "Payload is invalid" + } + } + + case invalidPayload +} + +run { context -> Result in + guard let data = context.payload, + let user = try? JSONDecoder().decode(User.self, from: data) else { + return .failure(error: .invalidPayload) + } + let payload = try! JSONSerialization.data(withJSONObject: ["message": "Hello \(user.firstName)"]) + return .success(payload: payload, contentType: "application/json") +}