Skip to content
This repository was archived by the owner on Mar 19, 2024. It is now read-only.

Commit 3257df2

Browse files
Update Examples with SwiftNIO 2.0
1 parent 58a1108 commit 3257df2

File tree

9 files changed

+90
-43
lines changed

9 files changed

+90
-43
lines changed

Examples/HTTPSRequest/Package.resolved

Lines changed: 11 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Examples/HTTPSRequest/Package.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ let package = Package(
88
dependencies: [
99
// Dependencies declare other packages that this package depends on.
1010
//.package(path: "../../../aws-lambda-swift-sprinter-nio-plugin"),
11-
.package(url: "https://github.com/swift-sprinter/aws-lambda-swift-sprinter-nio-plugin", from: "1.0.0-alpha.3"),
11+
.package(url: "https://github.com/Andrea-Scuderi/aws-lambda-swift-sprinter-nio-plugin", from: "1.0.0-alpha.3"),
1212
.package(url: "https://github.com/apple/swift-log.git", from: "1.0.0"),
1313
],
1414
targets: [

Examples/HTTPSRequest/Sources/HTTPSRequest/main.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@ struct Response: Codable {
3232
let content: String
3333
}
3434

35+
enum MyError: Error {
36+
case invalidParameters
37+
}
38+
3539
let logger = Logger(label: "AWS.Lambda.HTTPSRequest")
3640

3741
/**
@@ -60,10 +64,6 @@ let syncCodableNIOLambda: SyncCodableNIOLambda<Event, Response> = { (event, cont
6064
return future
6165
}
6266

63-
enum MyError: Error {
64-
case invalidParameters
65-
}
66-
6767
/**
6868
How to use the `SyncDictionaryNIOLambda` lambda handler.
6969

Examples/HelloWorld/Package.resolved

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Examples/HelloWorld/Package.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ let package = Package(
88
dependencies: [
99
// Dependencies declare other packages that this package depends on.
1010
//.package(path: "../../../aws-lambda-swift-sprinter-core"),
11-
.package(url: "https://github.com/swift-sprinter/aws-lambda-swift-sprinter-core", from: "1.0.0-alpha.2")
11+
.package(url: "https://github.com/swift-sprinter/aws-lambda-swift-sprinter-core", from: "1.0.0-alpha.3")
1212
],
1313
targets: [
1414
// Targets are the basic building blocks of a package. A target can define a module or a test suite.

Examples/S3Test/Package.resolved

Lines changed: 30 additions & 12 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Examples/S3Test/Package.swift

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@ let package = Package(
88
// Dependencies declare other packages that this package depends on.
99
// .package(url: /* package url */, from: "1.0.0"),
1010
//.package(path: "../../../aws-lambda-swift-sprinter-core"),
11-
.package(url: "https://github.com/swift-sprinter/aws-lambda-swift-sprinter-core", from: "1.0.0-alpha.2"),
11+
//.package(url: "https://github.com/swift-sprinter/aws-lambda-swift-sprinter-core", from: "1.0.0-alpha.3"),
12+
//.package(path: "../../../aws-lambda-swift-sprinter-nio-plugin"),
13+
.package(url: "https://github.com/Andrea-Scuderi/aws-lambda-swift-sprinter-nio-plugin", from: "1.0.0-alpha.3"),
1214
.package(url: "https://github.com/swift-aws/aws-sdk-swift.git", from: "4.0.0-rc1"),
1315
.package(url: "https://github.com/apple/swift-log.git", from: "1.0.0"),
1416
],
@@ -17,7 +19,7 @@ let package = Package(
1719
// Targets can depend on other targets in this package, and on products in packages which this package depends on.
1820
.target(
1921
name: "S3Test",
20-
dependencies: ["LambdaSwiftSprinter", "S3", "Logging"]
22+
dependencies: ["LambdaSwiftSprinterNioPlugin", "S3", "Logging"]
2123
),
2224
.testTarget(
2325
name: "S3TestTests",

Examples/S3Test/Sources/S3Test/main.swift

Lines changed: 36 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,11 @@ import Foundation
1616
#if canImport(FoundationNetworking)
1717
import FoundationNetworking
1818
#endif
19-
import LambdaSwiftSprinter
19+
import LambdaSwiftSprinterNioPlugin
2020
import Logging
2121
import S3
22+
import NIO
23+
import NIOFoundationCompat
2224

2325
struct Bucket: Codable {
2426
let name: String
@@ -29,32 +31,48 @@ struct Response: Codable {
2931
let value: String?
3032
}
3133

32-
let s3 = S3(region: .euwest1)
34+
let s3 = S3(region: .useast1)
3335

3436
let logger = Logger(label: "AWS.Lambda.S3Test")
3537

36-
let getObject: AsyncCodableLambda<Bucket, Response> = { event, _, completion in
37-
38+
let getObject: SyncCodableNIOLambda<Bucket, Response> = { (event, context) throws -> EventLoopFuture<Response> in
39+
3840
let getObjectRequest = S3.GetObjectRequest(bucket: event.name, key: event.key)
39-
do {
40-
let response = try s3.getObject(getObjectRequest).wait()
41-
42-
guard let body = response.body else {
43-
logger.info("Body is empty")
44-
completion(.success(Response(value: "")))
45-
return
41+
let future = s3.getObject(getObjectRequest)
42+
.flatMapThrowing { (response) throws -> String in
43+
guard let body = response.body,
44+
let value = String(data: body, encoding: .utf8) else {
45+
return ""
46+
}
47+
return value
48+
}.map { content -> Response in
49+
return Response(value: content)
4650
}
47-
let value = String(data: body, encoding: .utf8)
48-
completion(.success(Response(value: value)))
49-
} catch {
50-
completion(.failure(error))
51-
}
51+
return future
5252
}
5353

54+
//let getObject: AsyncCodableNIOLambda<Bucket, Response> = { event, _, completion in
55+
//
56+
// let getObjectRequest = S3.GetObjectRequest(bucket: event.name, key: event.key)
57+
// do {
58+
// let response = try s3.getObject(getObjectRequest).wait()
59+
//
60+
// guard let body = response.body else {
61+
// logger.info("Body is empty")
62+
// completion(.success(Response(value: "")))
63+
// return
64+
// }
65+
// let value = String(data: body, encoding: .utf8)
66+
// completion(.success(Response(value: value)))
67+
// } catch {
68+
// completion(.failure(error))
69+
// }
70+
//}
71+
5472
do {
55-
let sprinter = try SprinterCURL()
73+
let sprinter = try SprinterNIO()
5674
sprinter.register(handler: "getObject", lambda: getObject)
5775
try sprinter.run()
5876
} catch {
5977
logger.error("\(String(describing: error))")
60-
}
78+
}

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# aws-lambda-swift-sprinter
22

3-
[![Swift 5](https://img.shields.io/badge/Swift-5.0-blue.svg)](https://swift.org/download/) [![Swift 5.1.2](https://img.shields.io/badge/Swift-5.1.2-blue.svg)](https://swift.org/download/) ![](https://img.shields.io/badge/version-1.0.0--alpha.2-red) ![](https://travis-ci.com/swift-sprinter/aws-lambda-swift-sprinter.svg?branch=master)
3+
[![Swift 5](https://img.shields.io/badge/Swift-5.0-blue.svg)](https://swift.org/download/) [![Swift 5.1.2](https://img.shields.io/badge/Swift-5.1.2-blue.svg)](https://swift.org/download/) ![](https://img.shields.io/badge/version-1.0.0--alpha.3-red) ![](https://travis-ci.com/swift-sprinter/aws-lambda-swift-sprinter.svg?branch=master)
44

55
![](./images/aws-lambda-swift-sprinter.png)
66

0 commit comments

Comments
 (0)